読者です 読者をやめる 読者になる 読者になる

ActiveSupportのメソッドを素のRubyスクリプトで使う

Ruby Rails

今回は、ActiveSupportのyesterdayメソッドを例にやってみます。

ActiveSupportのyesterdayメソッドは、名前空間全部含めると、ActiveSupport::CoreExtensions::Date::Calculations.yesterdayでした。

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/date/calculations.rb

なので、こいつをrequireすればよさそうですね。

ここの、1 How to Load Core Extensionsが参考になります。

http://guides.rubyonrails.org/active_support_core_extensions.html

例えば、active_support/core_ext/object/blank.rbに自分が使いたいメソッドが定義されているなら、

require 'active_support'
require 'active_support/core_ext/object/blank'

こんな感じでcherry-pickingすれば使えるとのことです。

ということで、Date系のCore Extensionsを使えるようにしてみます。

メソッドたちはactive_support/core_ext/date/calculations.rbに定義されているので、

require 'active_support'
require 'active_support/core_ext/date/calcuations.rb'

みたいにすればokですね。これで以下のように使えるようになりました。

Date.yesterday.to_s # => "2015-11-27"

これで素のRubyでも気軽にActiveSupportのこのメソッドほしい...!って時にパパっと使えそうです、便利ー!