@@ -94,12 +94,13 @@ def call(html, context = {}, result = nil)
9494 context = @default_context . merge ( context )
9595 context = context . freeze
9696 result ||= @result_class . new
97- instrument "call_pipeline.html_pipeline" , :filters => @filters . map ( &:name ) do |payload |
97+ payload = default_payload :filters => @filters . map ( &:name ) ,
98+ :doc => html , :context => context , :result => result
99+ instrument "call_pipeline.html_pipeline" , payload do
98100 result [ :output ] =
99101 @filters . inject ( html ) do |doc , filter |
100102 perform_filter ( filter , doc , context , result )
101103 end
102- payload [ :result ] = result
103104 end
104105 result
105106 end
@@ -110,8 +111,9 @@ def call(html, context = {}, result = nil)
110111 #
111112 # Returns the result of the filter.
112113 def perform_filter ( filter , doc , context , result )
113- instrument "call_filter.html_pipeline" , :filter => filter . name do |payload |
114- payload [ :result ] = result
114+ payload = default_payload :filter => filter . name ,
115+ :doc => doc , :context => context , :result => result
116+ instrument "call_filter.html_pipeline" , payload do |payload |
115117 payload [ :output ] = filter . call ( doc , context , result )
116118 end
117119 end
@@ -121,13 +123,22 @@ def perform_filter(filter, doc, context, result)
121123 #
122124 # Returns the result of the provided block.
123125 def instrument ( event , payload = nil )
126+ payload ||= default_payload
124127 return yield ( payload ) unless instrumentation_service
125- payload ||= { }
126128 instrumentation_service . instrument event , payload do |payload |
127129 yield payload
128130 end
129131 end
130132
133+ # Internal: Default payload for instrumentation.
134+ #
135+ # Accepts a Hash of additional payload data to be merged.
136+ #
137+ # Returns a Hash.
138+ def default_payload ( payload = { } )
139+ { :pipeline => self . class . name } . merge ( payload )
140+ end
141+
131142 # Like call but guarantee the value returned is a DocumentFragment.
132143 # Pipelines may return a DocumentFragment or a String. Callers that need a
133144 # DocumentFragment should use this method.
0 commit comments