module AttrObject::AttrObject

Public Class Methods

attr_object(*fields, klass) click to toggle source
# File lib/attr_object/attr_object.rb, line 22
def attr_object(*fields, klass)
  fields.each do |field|
    # The reader (ex : `user.phone`)
    define_method field do
      obj_attr_manager.get field
    end

    # The writer (ex : `user.phone=`)
    define_method "#{field}=" do |val|
      obj_attr_manager.set klass, field, val
    end
  end
end

Public Instance Methods

obj_attr_manager() click to toggle source
# File lib/attr_object/attr_object.rb, line 6
def obj_attr_manager
  @obj_attr_manager ||= Manager.new
end