Module: LooseAttr::ActiveRecordExt::ClassMethods

Defined in:
lib/loose_attr/active_record_ext.rb

Instance Method Summary collapse

Instance Method Details

#loose_attr(name, cast_type: :string, default_value: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/loose_attr/active_record_ext.rb', line 12

def loose_attr(name, cast_type: :string, default_value: nil)
  # read attr
  define_method name do
    value = hashed_ext.send(name.to_s) || default_value
    cast(value, cast_type)
  end

  # write attr
  define_method "#{name}=" do |value|
    hashed_ext.send("#{name}=", value)
  end
end