class PaperTrail::RelatedChanges::Serializer::BuildDiffs
Attributes
attr[R]
change[R]
diff[R]
record[R]
request_type[R]
Public Class Methods
new(attr, diff, record, request_type, change)
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 72 def initialize(attr, diff, record, request_type, change) @attr = attr.to_sym @diff = diff @record = record @request_type = request_type @change = change end
Public Instance Methods
call()
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 80 def call return call_serializer if custom_serializer change.diffs << default_diff end
Private Instance Methods
attribute()
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 98 def attribute @attribute ||= Attribute.new( name: attr, diff: diff, version: record, request_type: request_type ) end
call_serializer()
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 111 def call_serializer custom_serializer.serialize(attribute, change) end
custom_serializer()
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 107 def custom_serializer RelatedChanges.serializers.detect { |serializer| serializer.match(attribute) } end
default_diff()
click to toggle source
# File lib/paper_trail/related_changes/serializer.rb, line 94 def default_diff Diff.new(attribute: attr, old: diff[0], new: diff[1], rank: 0, meta: record, source: :default) end