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,6 +1,5 @@
# 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
@ -17,4 +16,3 @@ if defined?(::ActiveRecord)
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