module EntityStore::Event::ClassMethods

Public Instance Methods

entity_value_attribute(name, klass) click to toggle source
# 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) click to toggle source
# 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