文書の過去の版を表示しています。
RailsのHash#slice!
から。
例
hash = { a: 1, b: 2, c: 3 } hash.slice!(:a, :b) hash # => {:a=>1, :b=>2}
要するに配列の対応したやつだけ取り出すメソッド。!は破壊的なことをしめす。hash自体が変化している。
def slice!(*keys) omit = slice(*self.keys - keys) # keysは登録ハッシュを出すメソッド。ここでは、[:if, :unless, :on..]などが入っている。*self.keysは引数のこと?引いて…つまりこれらのオプションは無視する、と。 hash = slice(*keys) hash.default = default # hash.defaultは初期値のようだが、defaultはそもそもnilの模様。 hash.default_proc = default_proc if default_proc # procをよくわかっていない。 replace(hash) # ここがメイン。 omit # 画面出力用。副作用にすぎない。 end
String#camelize
proc
hash#default
hash = Hash.new(33) # => {} hash # => {} hash[:a] # => 33 hash.default # => 33