hene

hene.dev

ActiveSupport を pry 上で動かす

ActiveSupport を pry 上で動かす

Active Supportpry 上で動かしてみます。

pry の起動

$ pry
[1] pry(main)>

Active Support

Active Support のすべてのコア拡張機能を読み込みます。

[2] pry(main)> require 'active_support'
=> true
[3] pry(main)> require 'active_support/core_ext'
=> true

active_support/core_ext だけではだめ

先に active_support/core_ext を読み込もうとすると、エラーが発生します。

[1] pry(main)> require 'active_support/core_ext'
NameError: uninitialized constant ActiveSupport::Autoload
from /Users/username/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.2.2/lib/active_support/number_helper.rb:5:in `<module:NumberHelper>'

#try

&.#try は、少し挙動が違います。

参考: Ruby の &. と #try の違い - Secret Garden(Instrumental)

hash から、キー message の値の取り出し方を いろいろ試してみました。

[1] pry(main)> hash = { message: 'test message' }
=> {:message=>"test message"}
[2] pry(main)> hash[:message]
=> "test message"
[3] pry(main)> hash.[] :message
=> "test message"
[4] pry(main)> hash.try(:[], :message)
=> "test message"
[5] pry(main)> hash.try(:[], :message).split(' ')
=> ["test", "message"]
[6] pry(main)> hash.try(:[], :message).try(:split, ' ')
=> ["test", "message"]

Hash

Hash の挙動が気になったので、試してみました。

[1] pry(main)> test = { 'text': 'message' }
=> {:text=>"message"}
[2] pry(main)> test[:text]
=> "message"
[3] pry(main)> test['text']
=> nil
[4] pry(main)> test = { 'text' => 'message' }
=> {"text"=>"message"}
[5] pry(main)> test['text']
=> "message"
[6] pry(main)> test[:text]
=> nil

Rails

Rails では、すべての Active Support を読み込みます。

Rails でよく使っている、blank? present? presence などが Active Suppot の提供するメソッドであることを知りませんでした。

参考

関連記事