class FastVersioning::ValueChange
Public Class Methods
new(version:)
click to toggle source
# File lib/fast_versioning/value_change.rb, line 3 def initialize(version:) @version = version @item = version.item end
Public Instance Methods
value_became(name)
click to toggle source
# File lib/fast_versioning/value_change.rb, line 16 def value_became(name) if can_use_changeset?(name) @version.changeset[name][1] else item_became.send(name) end end
value_was(name)
click to toggle source
# File lib/fast_versioning/value_change.rb, line 8 def value_was(name) if can_use_changeset?(name) @version.changeset[name][0] else item_was.send(name) end end
Private Instance Methods
can_use_changeset?(name)
click to toggle source
# File lib/fast_versioning/value_change.rb, line 26 def can_use_changeset?(name) @version.respond_to?(:changeset) && @version.changeset[name].present? end
item_became()
click to toggle source
TODO: support different paper_trail versions
# File lib/fast_versioning/value_change.rb, line 36 def item_became @item_became ||= @version.next.present? ? @version.next.reify(dup: true) : @item end
item_was()
click to toggle source
TODO: support different paper_trail versions
# File lib/fast_versioning/value_change.rb, line 31 def item_was @item_was ||= @version.reify(dup: true) || @item.class.new end