mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 15:23:06 +00:00
Merge pull request #1352 from bf4/railties
Fix generators (@dgynn); load Railtie only with Rails, ensures caching configured
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
require 'rails/railtie'
|
||||
|
||||
module ActiveModel
|
||||
class Railtie < Rails::Railtie
|
||||
initializer 'active_model_serializers.logger' do
|
||||
ActiveSupport.on_load(:active_model_serializers) do
|
||||
self.logger = ActionController::Base.logger
|
||||
end
|
||||
end
|
||||
|
||||
initializer 'active_model_serializers.caching' do
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
ActiveModelSerializers.config.cache_store = ActionController::Base.cache_store
|
||||
ActiveModelSerializers.config.perform_caching = Rails.configuration.action_controller.perform_caching
|
||||
end
|
||||
end
|
||||
|
||||
initializer 'generators' do |app|
|
||||
app.load_generators
|
||||
require 'generators/serializer/resource_override'
|
||||
end
|
||||
|
||||
if Rails.env.test?
|
||||
ActionController::TestCase.send(:include, ActiveModelSerializers::Test::Schema)
|
||||
ActionController::TestCase.send(:include, ActiveModelSerializers::Test::Serializer)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,33 +1,23 @@
|
||||
require 'active_model'
|
||||
require 'active_support'
|
||||
require 'action_controller'
|
||||
require 'action_controller/railtie'
|
||||
require 'active_support/core_ext/object/with_options'
|
||||
module ActiveModelSerializers
|
||||
mattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
|
||||
|
||||
def self.config
|
||||
ActiveModel::Serializer.config
|
||||
end
|
||||
|
||||
extend ActiveSupport::Autoload
|
||||
autoload :Model
|
||||
autoload :Callbacks
|
||||
autoload :Deserialization
|
||||
autoload :Logging
|
||||
autoload :Test
|
||||
end
|
||||
|
||||
require 'active_model/serializer'
|
||||
require 'active_model/serializable_resource'
|
||||
require 'active_model/serializer/version'
|
||||
class << self; attr_accessor :logger; end
|
||||
self.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))
|
||||
|
||||
require 'action_controller/serialization'
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
ActiveSupport.run_load_hooks(:active_model_serializers, ActiveModelSerializers)
|
||||
include ::ActionController::Serialization
|
||||
ActionDispatch::Reloader.to_prepare do
|
||||
ActiveModel::Serializer.serializers_cache.clear
|
||||
def self.config
|
||||
ActiveModel::Serializer.config
|
||||
end
|
||||
end
|
||||
|
||||
require 'active_model/serializer/railtie'
|
||||
require 'active_model/serializer/version'
|
||||
require 'active_model/serializer'
|
||||
require 'active_model/serializable_resource'
|
||||
require 'active_model_serializers/railtie' if defined?(::Rails)
|
||||
end
|
||||
|
||||
36
lib/active_model_serializers/railtie.rb
Normal file
36
lib/active_model_serializers/railtie.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
require 'rails/railtie'
|
||||
require 'action_controller'
|
||||
require 'action_controller/railtie'
|
||||
require 'action_controller/serialization'
|
||||
|
||||
module ActiveModelSerializers
|
||||
class Railtie < Rails::Railtie
|
||||
config.to_prepare do
|
||||
ActiveModel::Serializer.serializers_cache.clear
|
||||
end
|
||||
|
||||
initializer 'active_model_serializers.action_controller' do
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
include(::ActionController::Serialization)
|
||||
end
|
||||
end
|
||||
|
||||
# This hook is run after the action_controller railtie has set the configuration
|
||||
# based on the *environment* configuration and before any config/initializers are run
|
||||
# and also before eager_loading (if enabled).
|
||||
initializer 'active_model_serializers.set_configs', :after => 'action_controller.set_configs' do
|
||||
ActiveModelSerializers.logger = Rails.configuration.action_controller.logger
|
||||
ActiveModelSerializers.config.cache_store = Rails.configuration.action_controller.cache_store
|
||||
ActiveModelSerializers.config.perform_caching = Rails.configuration.action_controller.perform_caching
|
||||
end
|
||||
|
||||
generators do
|
||||
require 'generators/rails/resource_override'
|
||||
end
|
||||
|
||||
if Rails.env.test?
|
||||
ActionController::TestCase.send(:include, ActiveModelSerializers::Test::Schema)
|
||||
ActionController::TestCase.send(:include, ActiveModelSerializers::Test::Serializer)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -4,9 +4,7 @@ require 'rails/generators/rails/resource/resource_generator'
|
||||
module Rails
|
||||
module Generators
|
||||
class ResourceGenerator
|
||||
def add_serializer
|
||||
invoke 'serializer'
|
||||
end
|
||||
hook_for :serializer, default: true, boolean: true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -15,11 +15,11 @@ module Rails
|
||||
private
|
||||
|
||||
def attributes_names
|
||||
[:id] + attributes.select { |attr| !attr.reference? }.map { |a| a.name.to_sym }
|
||||
[:id] + attributes.reject(&:reference?).map! { |a| a.name.to_sym }
|
||||
end
|
||||
|
||||
def association_names
|
||||
attributes.select { |attr| attr.reference? }.map { |a| a.name.to_sym }
|
||||
attributes.select(&:reference?).map! { |a| a.name.to_sym }
|
||||
end
|
||||
|
||||
def parent_class_name
|
||||
@@ -34,4 +34,3 @@ module Rails
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user