module GlobalSharedDb::Concerns::DataField::ClassMethods

Public Instance Methods

data_fields(*ks) click to toggle source
# File lib/global_shared_db/concerns/data_field.rb, line 12
def data_fields(*ks)
  ks ||= []

  mod = Module.new do
    ks.each do |k|
      _k = k.to_s

      # Read Method
      define_method(_k) do
        self.data && self.data[_k]
      end

      # Write Method
      define_method("#{_k}=") do |v|
        self.data = (self.data || {}).merge(_k => v)
      end
    end
  end

  include mod
end