module Spirit::Render::Processable
Provides methods to attach processors.
Public Instance Methods
postprocess(document)
click to toggle source
# File lib/spirit/render/processable.rb, line 42 def postprocess(document) invoke_callbacks_in_reverse :postprocess, document end
preprocess(document)
click to toggle source
# File lib/spirit/render/processable.rb, line 37 def preprocess(document) instantiate_processors document invoke_callbacks :preprocess, document end
Private Instance Methods
instantiate_processors(document)
click to toggle source
Instantiate processors. {#processors} becomes a hash from classes to instances.
# File lib/spirit/render/processable.rb, line 48 def instantiate_processors(document) processors = self.class.processors.values.flatten.uniq instances = processors.map { |c| [ c, c.new(self, document) ] } self.processors = Hash[instances] end
invoke_callbacks(event, *args)
click to toggle source
# File lib/spirit/render/processable.rb, line 55 def invoke_callbacks(event, *args) processors = processors_for event processors.each { |p| args = p.invoke_callbacks_for event, *args } args end
invoke_callbacks_in_reverse(event, *args)
click to toggle source
# File lib/spirit/render/processable.rb, line 62 def invoke_callbacks_in_reverse(event, *args) processors = processors_for(event).reverse processors.each { |p| args = p.invoke_callbacks_for event, *args } args end
processors_for(event)
click to toggle source
# File lib/spirit/render/processable.rb, line 69 def processors_for(event) classes = self.class.processors[event] || [] classes.map { |c| processors[c] }.compact end