タグ付けされた質問 「ruby」

Rubyは、マルチプラットフォームのオープンソースの動的オブジェクト指向インタープリタ言語であり、1995年に松本幸宏(Matz)によって作成されました。[ruby]タグは、Ruby言語に関連する質問(構文やライブラリなど)を対象としています。Ruby on Railsの質問は[ruby-on-rails]でタグ付けする必要があります。

10
Rubyに「do…while」ループはありますか?
このコードを使用して、ユーザーが名前を入力できるようにしますが、プログラムは空の文字列を入力するまで配列にそれらを格納します(各名前の後にEnterキーを押す必要があります)。 people = [] info = 'a' # must fill variable with something, otherwise loop won't execute while not info.empty? info = gets.chomp people += [Person.new(info)] if not info.empty? end このコードは、do ... whileループでより見栄えがよくなります。 people = [] do info = gets.chomp people += [Person.new(info)] if not info.empty? while not info.empty? このコードでは、ランダムな文字列に情報を割り当てる必要はありません。 …
452 ruby  loops 

10
RSpec let()を使用する場合
beforeブロックを使用してインスタンス変数を設定する傾向があります。次に、これらの変数を私の例全体で使用します。最近出会いましたlet()。RSpecのドキュメントによると、それは ...メモ化されたヘルパーメソッドを定義します。値は、同じ例の複数の呼び出しにわたってキャッシュされますが、例全体ではキャッシュされません。 これは、beforeブロックでインスタンス変数を使用する場合とどう違うのですか?また、いつlet()vs を使用する必要がありますbefore()か?
447 ruby  rspec 

3
モンキーがインスタンスメソッドにパッチを適用するときに、オーバーライドされたメソッドを新しい実装から呼び出すことができますか?
クラスのメソッドにサルのパッチを適用しているとしましょう。オーバーライドするメソッドからオーバーライドされるメソッドを呼び出すにはどうすればよいですか?すなわち少し何かsuper 例えば class Foo def bar() "Hello" end end class Foo def bar() super() + " World" end end >> Foo.new.bar == "Hello World"


9
クラスとモジュールの違い
私はJavaから来ましたが、今はRubyを使って作業しています。 私がよく知らない言語機能の1つがですmodule。私は正確には何でありmodule、いつそれを使用しますか?なぜa moduleを使用するのclassですか?
437 ruby  class  module 


5
Rubyでのマップと収集の違いは?
私はこれをグーグル化し、パッチの/矛盾した意見を得ました-実際にRuby / Railsの配列でmapa collectを行うことと行うこととの間に違いはありますか? ドキュメントには、いずれかを示唆していないようですが、方法や性能の違いは、おそらくがあるのですか?
428 ruby  arrays  map  collect 

10
Rubyのダブルコロン `::`とは何ですか?
このダブルコロンは何::ですか?例えばFoo::Bar。 私は定義を見つけました: ::定数、インスタンスメソッドとクラスメソッドは、クラスまたはモジュールの外部の任意の場所からアクセスする、クラスまたはモジュール内で定義:可能単項演算子です。 何か::を公​​開するためだけに使用できる場合、スコープ(プライベート、保護)はどのように役立ちますか?
427 ruby  syntax  operators 

7
ルビーブロックから抜け出す方法は?
ここにありBar#do_thingsます: class Bar def do_things Foo.some_method(x) do |x| y = x.do_something return y_is_bad if y.bad? # how do i tell it to stop and return do_things? y.do_something_else end keep_doing_more_things end end そしてここにありFoo#some_methodます: class Foo def self.some_method(targets, &block) targets.each do |target| begin r = yield(target) rescue failed << target end end …
420 ruby 


6
Rubyのincludeとextendの違いは何ですか?
Rubyメタプログラミングに頭を悩ませています。ミックスイン/モジュールは常に私を混乱させます。 include:指定したモジュールメソッドをターゲットクラスのインスタンスメソッドとしてミックスします。 延び:ミックスとして指定されたモジュール方式でクラスメソッドターゲットクラスの 大きな違いはこれですか、それとも大きなドラゴンが潜んでいますか? 例えば module ReusableModule def module_method puts "Module Method: Hi there!" end end class ClassThatIncludes include ReusableModule end class ClassThatExtends extend ReusableModule end puts "Include" ClassThatIncludes.new.module_method # "Module Method: Hi there!" puts "Extend" ClassThatExtends.module_method # "Module Method: Hi there!"
415 ruby  module  include  extend 


11
activerecordレコードを複製する最も簡単な方法は何ですか?
(idに加えて)プロセス内の単一のフィールドを変更して、activerecordレコードのコピーを作成します。これを達成する最も簡単な方法は何ですか? 新しいレコードを作成し、フィールドごとにデータをコピーして各フィールドを反復処理できることに気付きましたが、これを行う簡単な方法があるはずだと思いました... といった: @newrecord=Record.copy(:id) *perhaps?*

7
Rakeタスク内からRakeタスクを実行する方法は?
私はグローバル変数に応じて、2つの方法でプロジェクトをコンパイルするRakefileを持つ$build_typeことができ、:debugまたは:release(結果は別々のディレクトリに行きます): task :build => [:some_other_tasks] do end 次のような、両方の構成でプロジェクトをコンパイルするタスクを作成したいと思います。 task :build_all do [ :debug, :release ].each do |t| $build_type = t # call task :build with all the tasks it depends on (?) end end メソッドのようにタスクを呼び出す方法はありますか?またはどうすれば同様のことを達成できますか?
411 ruby  rake 

16
json gem 'mkmf.rbがrubyのヘッダーファイルを見つけられません'のインストール中にエラーが発生しました
コンテキストとしては、ファイアウォールを備えたリモートサーバー上です。プロキシを介して環境を設定しています。持っていruby 1.8.7ます。gemをインストールしようとすると、 sudo gem install --http-proxy <host address>:<port> json 次のエラーが発生します。 Building native extensions. This could take a while... ERROR: Error installing json: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/json-1.8.1 for inspection. Results …
407 json  ruby  rubygems 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.