module PaperTrail::VersionModel

Constants

DISPLAY_NAME_METHODS

Public Instance Methods

extract(*keys) click to toggle source
# File lib/paper_trail/related_changes/version_model.rb, line 18
def extract(*keys)
  result = keys.map do |key|
    (object_changes || {})[key.to_s]&.last || (object || {})[key.to_s]
  end
  return result if keys.count > 1
  result.first
end
model_class() click to toggle source
# File lib/paper_trail/related_changes/version_model.rb, line 14
def model_class
  item_type.constantize
end
name() click to toggle source
# File lib/paper_trail/related_changes/version_model.rb, line 8
def name
  call_by_name(self.next&.reify || live_record)
rescue StandardError
  call_by_name(live_record)
end

Private Instance Methods

call_by_name(record) click to toggle source
# File lib/paper_trail/related_changes/version_model.rb, line 32
def call_by_name(record)
  DISPLAY_NAME_METHODS.map { |meth| record.try(meth) }.compact.first
end
live_record() click to toggle source
# File lib/paper_trail/related_changes/version_model.rb, line 28
def live_record
  model_class.find_by(id: item_id)
end