Module: GlobalSharedDb::Concerns::DataField::ClassMethods

Defined in:
lib/global_shared_db/concerns/data_field.rb

Instance Method Summary collapse

Instance Method Details

#data_fields(*ks) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 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