module EasyModel::ColumnForActiveModel

テーブルに存在しないカラムを定義する機能を提供する.

詳細

attr_accessor による属性定義とは異なり, データ型及びデフォルト値を指定することが可能.

Public Class Methods

included(base) click to toggle source
# File lib/easy_model/column_for_active_model.rb, line 14
def self.included(base)
  base.send(:include, ActiveModel::Model)
  base.send(:include, ActiveModel::Dirty)
  base.send(:include, ActiveModel::Serializers::Xml)
  base.send(:include, ActiveRecord::AttributeAssignment)
  base.extend(EasyModel::ColumnForActiveModel::ClassMethods)
end

Public Instance Methods

attribute_names()
attributes()
easy_model_attribute_names() click to toggle source

属性名の配列.

戻り値

EasyModel::ColumnForActiveModel::ClassMethods#column で定義した属性名を文字列配列として返す.

# File lib/easy_model/column_for_active_model.rb, line 28
def easy_model_attribute_names
  self.class.easy_model_attribute_names
end
Also aliased as: attribute_names
easy_model_attributes() click to toggle source

属性名と値を保持するハッシュ.

戻り値

{属性名 => 値} であるハッシュ.

# File lib/easy_model/column_for_active_model.rb, line 39
def easy_model_attributes
  self.class.easy_model_attribute_names.reduce({}) do |map, name|
    map.tap{map[name] = send(name)}
  end
end
Also aliased as: attributes
reset_changes() click to toggle source

属性の変更情報をリセットする.

詳細

属性の変更情報をリセットすると, changed? は false を返すようになる.

# File lib/easy_model/column_for_active_model.rb, line 52
def reset_changes
  @previously_changed = {}
  @changed_attributes = {}
end