将gem配置存储在gem的模块中

时间:2016-01-06 15:51:11

标签: ruby rubygems

我的gem公开了一个可以包含在Mongoid映射器类中的模块,以跟踪更改。

我希望用户能够在其类上标记特定字段,以便不同地处理它们。

我的想法是创建一个appendable标志。请参阅以下模块相关部分的概述:

module PendingChanges
    included do

        attr_accessor :__appendable_fields

        private def self.appendable(field)
           self.__appendable_fields << field
        end
    end
end

因此,当用户想要将其文档上的字段标记为&#34;可附加的&#34;他们会这样做:

class Person
   include PendingChanges
   field :name, type: String
   field :emails, type: Array
   appendable :emails <- this is what they would do
end

我似乎无法使其发挥作用,因为__appendable_fields总是nil。另外,我不相信这是&#34; Ruby方式&#34;接近这个?

1 个答案:

答案 0 :(得分:0)

显然,我不得不使用mattr_accessor

我可以使用self.__appendable_fields方法appendable访问它。