Keep Logging in the ActiveModelSerializers namespace

This commit is contained in:
Benjamin Fleischer
2015-11-08 15:46:08 -06:00
parent 51424963da
commit 21bb306d38
9 changed files with 66 additions and 60 deletions

View File

@@ -2,15 +2,7 @@ require 'set'
module ActiveModel
class SerializableResource
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter, :meta, :meta_key, :links])
extend ActiveModel::Callbacks
define_model_callbacks :render
around_render do |_, block, _|
notify_active_support do
block.call
end
end
include ActiveModelSerializers::Logging
# Primary interface to composing a resource with a serializer and adapter.
# @return the serializable_resource, ready for #as_json/#to_json/#serializable_hash.
@@ -89,13 +81,5 @@ module ActiveModel
protected
attr_reader :resource, :adapter_opts, :serializer_opts
def notify_active_support
event_name = 'render.active_model_serializers'.freeze
payload = { serializer: serializer, adapter: adapter }
ActiveSupport::Notifications.instrument(event_name, payload) do
yield
end
end
end
end

View File

@@ -6,7 +6,6 @@ require 'active_model/serializer/associations'
require 'active_model/serializer/configuration'
require 'active_model/serializer/fieldset'
require 'active_model/serializer/lint'
require 'active_model/serializer/logging'
# ActiveModel::Serializer is an abstract class that is
# reified when subclassed to decorate a resource.
@@ -14,7 +13,6 @@ module ActiveModel
class Serializer
include Configuration
include Associations
include Logging
require 'active_model/serializer/adapter'
# Matches

View File

@@ -1,26 +0,0 @@
module ActiveModel
class Serializer
module Logging
extend ActiveSupport::Concern
class LogSubscriber < ActiveSupport::LogSubscriber
def render(event)
logger.tagged('AMS') do
info do
serializer = event.payload[:serializer]
adapter = event.payload[:adapter]
duration = event.duration.round(2)
"Rendered #{serializer.name} with #{adapter.class} (#{duration}ms)"
end
end
end
def logger
ActiveModelSerializers.logger
end
end
end
end
end
ActiveModel::Serializer::Logging::LogSubscriber.attach_to :active_model_serializers

View File

@@ -1,9 +1,11 @@
require 'active_model_serializers'
require 'rails/railtie'
module ActiveModel
class Railtie < Rails::Railtie
initializer 'active_model_serializers.logger' do
ActiveSupport.on_load(:action_controller) do
ActiveModelSerializers.logger = ActionController::Base.logger
ActiveSupport.on_load(:active_model_serializers) do
self.logger = ActionController::Base.logger
end
end