Use a Railtie to extend Rails

This commit is contained in:
Guillermo Iguaran 2018-06-07 11:02:00 -05:00 committed by Shishir Kakaraddi
parent 4a333d7276
commit 2b01d8ce70
3 changed files with 30 additions and 17 deletions

View File

@ -1,7 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
if defined?(::ActiveRecord) ::ActiveRecord::Associations::Builder::HasOne.class_eval do
::ActiveRecord::Associations::Builder::HasOne.class_eval do
# Based on # 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/collection_association.rb#L50
# https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11 # https://github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11
@ -16,5 +15,4 @@ if defined?(::ActiveRecord)
end end
CODE CODE
end end
end
end end

View File

@ -2,5 +2,9 @@
module FastJsonapi module FastJsonapi
require 'fast_jsonapi/object_serializer' require 'fast_jsonapi/object_serializer'
if defined?(::Rails)
require 'fast_jsonapi/railtie'
elsif defined?(::ActiveRecord)
require 'extensions/has_one' require 'extensions/has_one'
end
end end

View File

@ -0,0 +1,11 @@
# frozen_string_literal: true
require 'rails/railtie'
class Railtie < Rails::Railtie
initializer 'fast_jsonapi.active_record' do
ActiveSupport.on_load :active_record do
require 'extensions/has_one'
end
end
end