0

我想在一个非 Rails Ruby 项目中使用distance_of_time_in_wordsdate_helper.rb Rails 文件中的方法(参见Github )。

我怎样才能包括它?它需要其他文件,那么如何包含它们?

我不想包含所有 Rails,因为这会减慢开发过程。

红宝石 1.9.3

4

2 回答 2

3

这种方法,distance_of_time_in_wordsactionpack/lib/action_view/helpers/date_helper.rb. 所以你应该require 'action_view'加载action_view/helpers这个方法。并且该方法在 module 中定义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 翻译。为了支持破解,你可能可以翻译这个测试套件.

为什么我要这样做而不是使用 gem?因为它只是一个巨大的依赖。它是如此巨大,以至于您实际上注意到它加载了所有代码。我宁愿撕掉这个方法并破解它来工作,而不是依赖所有这些(再次假设这是你从 lib 中唯一想要的东西)。

于 2012-09-07T05:19:21.713 回答