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, option: {}) ⇒ 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, option: {})
  # read attr
  define_method name do
    value = hashed_ext.send(name.to_s) || default_value
    cast(value, cast_type, option)
  end

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

#loose_attr_column_nameObject



29
30
31
# File 'lib/loose_attr/active_record_ext.rb', line 29

def loose_attr_column_name
  @loose_attr_column_name ||= 'ext_field'
end

#modify_loose_attr_column_name(name) ⇒ Object



25
26
27
# File 'lib/loose_attr/active_record_ext.rb', line 25

def modify_loose_attr_column_name(name)
  @loose_attr_column_name = name.to_sym
end