Instances of this class handle processing a set of filters for a given renderer and page. Note: The instance is passed as the second argument to filters
that require two parameters and can be used to access information on the renderer, page, or filters being processed.
Process arguments through a single filter
# File lib/webby/filters.rb, line 69 def _handle(filter, handler, *args) result = handler.call(*args) @processed += 1 result rescue StandardError => err raise ::Webby::Error, "#{filter} filter error: #{err.message.inspect}" end
The name of the current filter
# File lib/webby/filters.rb, line 64 def current_filter filters[@processed] end
The list of filters yet to be processed
# File lib/webby/filters.rb, line 59 def remaining_filters filters[@processed..-1] end
# File lib/webby/filters.rb, line 44 def start_for(input) @prev_cursor = @renderer.instance_variable_get(:@_cursor) @renderer.instance_variable_set(:@_cursor, self) filters.inject(input) do |result, filter| handler = Filters[filter] raise ::Webby::Error, "unknown filter: #{filter.inspect}" if handler.nil? args = [result, self][0, handler.arity] _handle(filter, handler, *args) end ensure @renderer.instance_variable_set(:@_cursor, @prev_cursor) end
Generated with the Darkfish Rdoc Generator 2.