lib/extensions/has_one.rb in fast_jsonapi-1.0.17 vs lib/extensions/has_one.rb in fast_jsonapi-1.1.0

- old
+ new

@@ -1,16 +1,22 @@ -require 'active_record' +# frozen_string_literal: true -::ActiveRecord::Associations::Builder::HasOne.class_eval do - # Based on - # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/collection_association.rb#L50 - # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11 - def self.define_accessors(mixin, reflection) - super - name = reflection.name - mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1 - def #{name.to_s}_id - association(:#{name}).reader.id - end - CODE +begin + require 'active_record' + + ::ActiveRecord::Associations::Builder::HasOne.class_eval do + # Based on + # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/collection_association.rb#L50 + # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11 + def self.define_accessors(mixin, reflection) + super + name = reflection.name + mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1 + def #{name}_id + association(:#{name}).reader.try(:id) + end + CODE + end end +rescue LoadError + # active_record can't be loaded so we shouldn't try to monkey-patch it. end