mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
per discussion remove instrumentation altogether
This commit is contained in:
parent
31ba6fbb08
commit
08a182d743
@ -31,14 +31,6 @@ end
|
||||
u = User.new(1, "sam", 10, "about")
|
||||
s = UserSerializer.new(u)
|
||||
|
||||
u2 = User.new(2, "sam", 20, "about")
|
||||
s2 = UserSerializer.new(u2)
|
||||
|
||||
p s2.attributes
|
||||
|
||||
p s.attributes
|
||||
|
||||
|
||||
n = 100000
|
||||
|
||||
Benchmark.bmbm {|x|
|
||||
@ -46,7 +38,6 @@ Benchmark.bmbm {|x|
|
||||
x.report("fast_hash") { n.times { u.fast_hash } }
|
||||
x.report("attributes") { n.times { UserSerializer.new(u).attributes } }
|
||||
x.report("serializable_hash") { n.times { UserSerializer.new(u).serializable_hash } }
|
||||
x.report("serializable_hash_with_instrumentation") { n.times { UserSerializer.new(u).serializable_hash_with_instrumentation } }
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -284,37 +284,13 @@ module ActiveModel
|
||||
|
||||
# Returns a hash representation of the serializable
|
||||
# object without the root.
|
||||
def serializable_hash_without_instrumentation
|
||||
def serializable_hash
|
||||
return nil if @object.nil?
|
||||
@node = attributes
|
||||
include_associations! if _embed
|
||||
@node
|
||||
end
|
||||
|
||||
|
||||
def serializable_hash_with_instrumentation
|
||||
return nil if @object.nil?
|
||||
instrument(:serialize, :serializer => self.class.name) do
|
||||
@node = attributes
|
||||
instrument :associations do
|
||||
include_associations! if _embed
|
||||
end
|
||||
@node
|
||||
end
|
||||
end
|
||||
|
||||
# disable all instrumentation on serializable_hash (performance will be better)
|
||||
def self.disable_instrumentation!
|
||||
alias_method :serializable_hash, :serializable_hash_without_instrumentation
|
||||
end
|
||||
|
||||
# enable instrumentation for serializable_hash (performance may be impacted)
|
||||
def self.enable_instrumentation!
|
||||
alias_method :serializable_hash, :serializable_hash_with_instrumentation
|
||||
end
|
||||
|
||||
disable_instrumentation!
|
||||
|
||||
def include_associations!
|
||||
_associations.each_key do |name|
|
||||
include!(name) if include?(name)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user