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

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


6
JSONをRubyハッシュに変換する方法
次の値を保持するJSONオブジェクトがあります。 @value = {"val":"test","val1":"test1","val2":"test2"} Rubyでループして、キーと値のペアを取得します。を使用する@eachと、Rubyハッシュ形式ではないため、オブジェクトを反復処理しません。 @value = {"val"=>"test","val1"=>"test1","val2"=>"test2"} 上記のJSONオブジェクトをRubyハッシュに変換するにはどうすればよいですか?
137 ruby  json  hashmap 

13
StringオブジェクトをHashオブジェクトに変換するにはどうすればよいですか?
ハッシュのような文字列があります: "{ :key_a => { :key_1a => 'value_1a', :key_2a => 'value_2a' }, :key_b => { :key_1b => 'value_1b' } }" ハッシュを取得するにはどうすればよいですか?お気に入り: { :key_a => { :key_1a => 'value_1a', :key_2a => 'value_2a' }, :key_b => { :key_1b => 'value_1b' } } 文字列は、任意の深さのネストを持つことができます。Rubyで有効なハッシュが入力される方法には、すべてのプロパティがあります。
136 ruby 

7
RVM:gemsetのすべてのgemのアンインストール
私はグローバルな宝石とさまざまな宝石セットを持っています。宝石セットのすべての宝石を削除したい。宝石セットをアンインストールする以外に、これを行う方法はありますか?
136 ruby  rvm 

16
Rubyで保護されたプライベートメソッドを単体テストする最良の方法は何ですか?
標準のRuby Test::Unitフレームワークを使用して、Rubyで保護されたメソッドとプライベートメソッドを単体テストする最良の方法は何ですか? 「パブリックメソッドのみをユニットテストする必要があります。ユニットテストが必要な場合は、保護されたメソッドやプライベートメソッドであってはなりません」と誰かがパイプを張って独断的に主張することは間違いありませんが、私はそれについて議論することにあまり興味がありません。私はいくつかの方法持っているこれらのプライベート/保護された方法は、適度に複雑で、良いと正当な理由のために保護またはプライベートを、そしてクラスのパブリック・メソッドが正常に機能してこれらの保護/プライベートメソッドに依存し、したがって、私はテストの方法が必要ですprotected / privateメソッド。 もう1つ...通常は、特定のクラスのすべてのメソッドを1つのファイルに入れ、そのクラスの単体テストを別のファイルに入れます。理想的には、この「保護されたメソッドとプライベートメソッドの単体テスト」機能をメインソースファイルではなく単体テストファイルに実装して、メインソースファイルをできるだけシンプルかつ単純にするための魔法がすべて欲しいです。

3
Railsシリアライズを使用してハッシュをデータベースに保存する
Railsアプリで、ハッシュマッピングIDをいくつかの試行に保存しようとしています。この新しい列に対応するためのデータベースへの移行: class AddMultiWrongToUser < ActiveRecord::Migration def self.up add_column :users, :multi_wrong, :string end def self.down remove_column :users, :multi_wrong end end 私のモデルでは: class User < ActiveRecord::Base serialize :multi_wrong, Hash end しかし、私がレールコンソールを使用してこれをテストすると、次のようになります: user = User.create() user.multi_wrong = {"test"=>"123"} user.save 出力は偽です。ここで何が問題になっていますか?


8
Rubyで文字列をURLエンコードする方法
次のURI::encodeような文字列はどうすればよいですか。 \x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a 次のような形式で取得します。 %124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A RFC 1738に従って? これが私が試したものです: irb(main):123:0> URI::encode "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a" ArgumentError: invalid byte sequence in UTF-8 from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `gsub' from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `escape' from /usr/local/lib/ruby/1.9.1/uri/common.rb:505:in `escape' from (irb):123 from /usr/local/bin/irb:12:in `<main>' また: irb(main):126:0> CGI::escape "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a" ArgumentError: invalid byte sequence in UTF-8 from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `gsub' from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `escape' from (irb):126 from /usr/local/bin/irb:12:in …

4
Ruby配列find_firstオブジェクト?
Arrayドキュメントに何か不足していますか?特定の条件を満たすオブジェクトを1つまで含む配列があります。そのオブジェクトを効率的に見つけたいのですが。ドキュメントから私が持っている最高のアイデアはこれです: candidates = my_array.select { |e| e.satisfies_condition? } found_it = candidates.first if !candidates.empty? しかし、私は2つの理由で満足していません。 select最初のヒットの後で保釈できたとしても、それでアレイ全体をトラバースできました。 候補を平坦化するために、(条件付きの)コード行が必要でした。 どちらの操作も、満足のいくオブジェクトが0または1あることを事前に認識しているため、無駄が多くなります。 私が欲しいのは次のようなものです: array.find_first(block) これは、nil、またはブロックがtrueと評価された最初のオブジェクトを返し、そのオブジェクトでの走査を終了します。 これを自分で書かなければなりませんか?Arrayの他のすばらしいメソッドはすべて、私はそれがそこにあると考えさせ、私はそれを目にしていません。
135 ruby  arrays  performance  find 

5
Rubyクラスの型とcaseステートメント
違いは何ですか case item.class when MyClass # do something here when Array # do something different here when String # do a third thing end そして case item.class when MyClass.class # do something here when Array.class # do something different here when String.class # do a third thing end 何らかの理由で、これらの最初の1つは時々機能し、2つ目は機能しません。また、2つ目は機能し、最初の1つは機能しません。どうして?それを行う「適切な」方法はどれですか?



8
Rubyの自動カウンターはそれぞれですか?
for-eachとカウンターを使用したい: i=0 for blah in blahs puts i.to_s + " " + blah i+=1 end それを行うより良い方法はありますか? 注:blahs配列とハッシュのどちらであるかはわかりませんが、実行blahs[i]しなくてもそれほど魅力的ではありません。またi++、Rubyでの記述方法も教えてください。 技術的には、MattとSqueegyの答えが最初に出てきましたが、私はparadojaに最良の答えを出しています。また、彼の答えにはバージョンに関するメモがありましたが、これはまだ関連があります(私のUbuntu 8.04がRuby 1.8.6を使用している限り)。 使用していたはずですputs "#{i} #{blah}"たくさんより簡潔です。
134 ruby  syntax 


15
Ubuntuへのrmagickのインストール
Ubuntu 10.04でRMagickセットアップを取得しようとしています。ここを見たが喜びはなかった。ImageMagickをソースからコンパイルしてインストールしましたが、RubyGemsを使用してRMagickをインストールしようとしても、ここでの説明は役に立ちませんでした。私はこのエラーを受け取りました: carcher@carcher-laptop:~/Code/temp/RMagick-2.13.1$ sudo gem install rmagick Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/bin/ruby1.8 extconf.rb extconf.rb:1:in `require': no such file to load -- mkmf (LoadError) from extconf.rb:1 Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/rmagick-2.13.1 for inspection. Results …

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