Module: EntityStore::Event::ClassMethods

Defined in:
lib/entity_store/event.rb

Instance Method Summary collapse

Instance Method Details

#entity_value_attribute(name, klass) ⇒ Object



44
45
46
47
48
49
# File 'lib/entity_store/event.rb', line 44

def entity_value_attribute(name, klass)
  define_method(name) { instance_variable_get("@#{name}") }
  define_method("#{name}=") do |value|
    instance_variable_set("@#{name}", value.is_a?(Hash) ? klass.new(value) : value)
  end
end

#time_attribute(*names) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/entity_store/event.rb', line 25

def time_attribute(*names)
  class_eval do
    names.each do |name|
      define_method "#{name}=" do |value|
        if value.kind_of?(String)
          new_value = TimeFactory.parse(value)
        else
          new_value = value
        end

        instance_variable_set "@#{name}", new_value
      end
      define_method name do
        instance_variable_get "@#{name}"
      end
    end
  end
end