module ValueObject::Attribute::ClassMethods

Public Instance Methods

value_attribute(attr_name, klass) click to toggle source
# File lib/value_object/attribute.rb, line 8
def value_attribute(attr_name, klass)
  id_attr = "#{attr_name}_id"

  define_method attr_name do
    klass.find self.public_send(id_attr)
  end

  define_method "#{attr_name}=" do |obj|
    self.public_send("#{id_attr}=", obj.key)
  end
end