0

Rails以外のRubyプロジェクトでdistance_of_time_in_wordsdate_helper.rbRailsファイル(Githubを参照)のメソッドを使用したいと思います。

どうすれば含めることができますか?他のファイルが必要なので、それらを含めるにはどうすればよいですか?

開発プロセスが遅くなるため、すべてのRailsを含めたくありません。

Ruby 1.9.3

4

2 に答える 2

3

このメソッドdistance_of_time_in_wordsは、にありactionpack/lib/action_view/helpers/date_helper.rbます。したがって、このメソッドをロードする必要がrequire 'action_view'あります。action_view/helpersそして、メソッドはモジュールActionView::Helpers::DateHelperで定義されているので、クラスに含めることができます。メソッドはインスタンスメソッドです。

require 'action_view'
require 'action_view/helpers'

class Klass
    include ActionView::Helpers::DateHelper
end

c = Klass.new
c.distance_of_time_in_words( ...... )    
于 2012-09-07T02:45:51.060 に答える
2

これだけが必要な場合は、ソース コードを取得してハッキングして依存関係を削除します (これは単なる I18n 翻訳のようです。ハックをサポートするには、おそらくこのテスト スイートを翻訳できます)。 .

ジェムを使用する代わりに、なぜこれを行うのでしょうか? それは非常に大きな依存関係だからです。非常に巨大なので、実際にすべてのコードをロードしていることに気づきます。そのすべてに依存するよりも、メソッドを切り取ってハックして機能させたいと思います(繰り返しますが、ライブラリから必要なものはこれだけだと仮定します)。

于 2012-09-07T05:19:21.713 に答える