module LooseAttr::ActiveRecordExt::ClassMethods

Public Instance Methods

loose_attr(name, cast_type: :string, default_value: nil, option: {}) click to toggle source
# 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_name() click to toggle source
# 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) click to toggle source
# 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