[ruby-list:50392] Re: [質問]ruby SOAP? DLNA機器制御 Action名内の '_' Underscore が取り除かれる
From:
Toshihiko Ichida <dogatana@...>
Date:
2016-09-16 22:08:49 UTC
List:
ruby-list #50392
市田です。
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版』の説明がわかりやすいと思います。