From: Toshihiko Ichida Date: 2016-09-17T07:08:49+09:00 Subject: [ruby-list:50392] Re: [質問]ruby SOAP? DLNA機器制御 Action名内の '_' Underscore が取り除かれる 市田です。 On 2016/09/12 14:30, yamataka@u08.itscom.net wrote: > Savonの > https://github.com/savonrb/savon/blob/master/lib/savon/options.rb#L298 > を見たら、:none もあるので、 > c.convert_request_keys_to :none > でも、期待通りの動作になりました。 私は普通に追いかけて行って、 return options[:key_converter] if options[:key_converter].is_a? Proc (https://github.com/savonrb/gyoku/blob/master/lib/gyoku/xml_key.rb#L37) という行に行に行き会ったのですが、よくよく見ると少し下に FORMULAS[key_converter] を返していて、この定数はこの上の方で、 > FORMULAS = { > :lower_camelcase => lambda { |key| LOWER_CAMELCASE.call(key) }, > :camelcase => lambda { |key| CAMELCASE.call(key) }, > :upcase => lambda { |key| UPCASE.call(key) }, > :none => lambda { |key| key } とあるのでした。 :none の場合、このハッシュの値が利用されているということですね。 > c.convert_request_keys_to ->(x) { x } > ->(x) {x} > "->" は、Rubyの文法上どういった意味になるのでしょうか? > (X)は引数、{x} はコードブロックで、xをreturn かなと理解できるのですが... 既に他の方が回答されていますが、上のハッシュと同じ意味となります。 こういった記号列は検索が難しいですが、"ラムダ式"、"アロー演算子"、 "arrow" などと"ruby"で検索するといくつか出てきます。 例えば http://qiita.com/sudahiroshi/items/c51618dec0f56a54670e など。 他の言語でも似たよぅなものがあるので、複数の言語で同時期にプログラミング していると、仮引数の位置とか、-> か => かなどで、混乱します。。 lambda, proc, -> など色々あるわけですが、違いについては『メタプログラミ ングRuby 第2版』の説明がわかりやすいと思います。