文書の過去の版を表示しています。
今日のメソッド
その1
RailsのHash#slice!
から。
def slice!(*keys)
omit = slice(*self.keys - keys) # keysは登録ハッシュを出すメソッド。ここでは、[:if, :unless, :on..]などが入っている。*self.keysは引数のこと?引いて…つまりこれらのオプションは無視する、と。
hash = slice(*keys)
hash.default = default # defaultも保持する必要がある!
hash.default_proc = default_proc if default_proc # procをよくわかっていない。
replace(hash) # ここがメイン。
omit # 画面出力用。副作用にすぎない。
end
slice!
の例
hash = { a: 1, b: 2, c: 3 }
hash.slice!(:a, :b)
hash # => {:a=>1, :b=>2}
要するに配列の対応したやつだけ取り出すメソッド。!は破壊的なことをしめす。hash自体が変化している。
その2
String#camelize
def camelize(first_letter = :upper)
case first_letter
when :upper
ActiveSupport::Inflector.camelize(self, true)
when :lower
ActiveSupport::Inflector.camelize(self, false)
else
raise ArgumentError, "Invalid option, use either :upper or :lower."
end
end
例
"mozilla_firefox".camelize # => MozillaFirefox
"mozilla_firefox".camelize(:lower) # => mozillaFirefox
その3
default-proc
そもそもprocがわかってない。
h = Hash.new { |a| h[a] = a*a } # defaultを定義
p = h.default_proc
p.call(2) # => 4
p.call(10) # => 100
h # => {2=>4, 10=>100}
h = Hash.new { 3 } # defaultを定義
p = h.default_proc
p.call # => 3
4
blog/2020/1101_今日のメソッド.1604198765.txt.gz · 最終更新: 2020/11/01 11:46 by kijima