Class: AuditedChangeSet::Change::Field
- Inherits:
-
Object
- Object
- AuditedChangeSet::Change::Field
- Includes:
- Hooks
- Defined in:
- lib/audited_change_set/change.rb
Constant Summary collapse
- @@display_methods =
%w[field_name name to_s]
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#new_value ⇒ Object
readonly
Returns the value of attribute new_value.
-
#old_value ⇒ Object
readonly
Returns the value of attribute old_value.
Instance Method Summary collapse
- #associated_value(val) ⇒ Object
- #association_class ⇒ Object
- #get_associated_object(id) ⇒ Object
-
#initialize(change_type, name, new_val, old_val = nil) ⇒ Field
constructor
A new instance of Field.
- #name_without_id ⇒ Object
- #reflection ⇒ Object
- #transform_value(val) ⇒ Object
Methods included from Hooks
Constructor Details
#initialize(change_type, name, new_val, old_val = nil) ⇒ Field
Returns a new instance of Field.
40 41 42 43 44 |
# File 'lib/audited_change_set/change.rb', line 40 def initialize(change_type, name, new_val, old_val=nil) @change_type = change_type @name = name.to_s @new_value, @old_value = [new_val, old_val].map {|val| transform_value(val) } end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
38 39 40 |
# File 'lib/audited_change_set/change.rb', line 38 def name @name end |
#new_value ⇒ Object (readonly)
Returns the value of attribute new_value.
38 39 40 |
# File 'lib/audited_change_set/change.rb', line 38 def new_value @new_value end |
#old_value ⇒ Object (readonly)
Returns the value of attribute old_value.
38 39 40 |
# File 'lib/audited_change_set/change.rb', line 38 def old_value @old_value end |
Instance Method Details
#associated_value(val) ⇒ Object
50 51 52 53 |
# File 'lib/audited_change_set/change.rb', line 50 def associated_value(val) object = get_associated_object(val) object.send(display_method(object)) end |
#association_class ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/audited_change_set/change.rb', line 55 def association_class @association_class ||= begin if reflection && class_name = reflection.[:class_name] class_name.constantize else name.to_s =~ /(.*)_id$/ $1.camelize.constantize end rescue Exception nil end end |
#get_associated_object(id) ⇒ Object
73 74 75 |
# File 'lib/audited_change_set/change.rb', line 73 def get_associated_object(id) hook(:get_associated_object, id) || association_class.find_by_id(id) end |
#name_without_id ⇒ Object
77 78 79 |
# File 'lib/audited_change_set/change.rb', line 77 def name_without_id name.chomp "_id" end |
#reflection ⇒ Object
68 69 70 71 |
# File 'lib/audited_change_set/change.rb', line 68 def reflection change_class = @change_type.constantize @reflection ||= change_class.reflect_on_association(name_without_id.to_sym) if change_class.respond_to?(:reflect_on_association) end |
#transform_value(val) ⇒ Object
46 47 48 |
# File 'lib/audited_change_set/change.rb', line 46 def transform_value(val) hook(:transform_value, val) || (association_class ? associated_value(val) : val.to_s) end |