From c5532f1b7b3164548bda800267b601c061ed23ab Mon Sep 17 00:00:00 2001 From: Paul Padier Date: Fri, 1 Apr 2016 14:42:54 +0900 Subject: [PATCH] Fix Style/MultilineTernaryOperator offenses --- .rubocop_todo.yml | 7 ------- lib/paper_trail/config.rb | 6 ++++-- lib/paper_trail/has_paper_trail.rb | 11 +++++++---- lib/paper_trail/reifier.rb | 9 +++------ lib/paper_trail/version_concern.rb | 9 +++++++++ 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 17b604fc..6ca9825b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,10 +40,3 @@ Style/ModuleFunction: Exclude: - 'lib/paper_trail/serializers/json.rb' - 'lib/paper_trail/serializers/yaml.rb' - -# Offense count: 4 -Style/MultilineTernaryOperator: - Exclude: - - 'lib/paper_trail/config.rb' - - 'lib/paper_trail/has_paper_trail.rb' - - 'lib/paper_trail/reifier.rb' diff --git a/lib/paper_trail/config.rb b/lib/paper_trail/config.rb index ec94c591..95dac70c 100644 --- a/lib/paper_trail/config.rb +++ b/lib/paper_trail/config.rb @@ -33,9 +33,11 @@ module PaperTrail end def track_associations - @track_associations.nil? ? - PaperTrail::VersionAssociation.table_exists? : + if @track_associations.nil? + PaperTrail::VersionAssociation.table_exists? + else @track_associations + end end alias_method :track_associations?, :track_associations diff --git a/lib/paper_trail/has_paper_trail.rb b/lib/paper_trail/has_paper_trail.rb index 94d01204..a1eb2f42 100644 --- a/lib/paper_trail/has_paper_trail.rb +++ b/lib/paper_trail/has_paper_trail.rb @@ -221,10 +221,13 @@ module PaperTrail # Returns the object (not a Version) as it was most recently. def previous_version - preceding_version = source_version ? - source_version.previous : - send(self.class.versions_association_name).last - preceding_version.reify if preceding_version + previous = + if source_version + source_version.previous + else + send(self.class.versions_association_name).last + end + previous.try(:reify) end # Returns the object (not a Version) as it became next. diff --git a/lib/paper_trail/reifier.rb b/lib/paper_trail/reifier.rb index 671b8cc2..7d3edbc3 100644 --- a/lib/paper_trail/reifier.rb +++ b/lib/paper_trail/reifier.rb @@ -17,9 +17,7 @@ module PaperTrail unversioned_attributes: :nil ) - attrs = version.class.object_col_is_json? ? - version.object : - PaperTrail.serializer.load(version.object) + attrs = version.object_deserialized # Normally a polymorphic belongs_to relationship allows us to get the # object we belong to by calling, in this case, `item`. However this @@ -290,9 +288,8 @@ module PaperTrail # def version_reification_class(version, attrs) inheritance_column_name = version.item_type.constantize.inheritance_column - class_name = attrs[inheritance_column_name].blank? ? - version.item_type : - attrs[inheritance_column_name] + inher_col_value = attrs[inheritance_column_name] + class_name = inher_col_value.blank? ? version.item_type : inher_col_value class_name.constantize end diff --git a/lib/paper_trail/version_concern.rb b/lib/paper_trail/version_concern.rb index 3baa7366..978e2aec 100644 --- a/lib/paper_trail/version_concern.rb +++ b/lib/paper_trail/version_concern.rb @@ -176,6 +176,15 @@ module PaperTrail end end + # @api private + def object_deserialized + if self.class.object_col_is_json? + object + else + PaperTrail.serializer.load(object) + end + end + # Restore the item from this version. # # Optionally this can also restore all :has_one and :has_many (including