Sha256: 4826a1c5accb7905944b47976f6c09839b119962c1f53152dcbf3beb0179f0ad
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
# encoding: utf-8 module Nanoc::Helpers # Provides functionality for filtering parts of an item or a layout. module Filtering require 'nanoc/helpers/capturing' include Nanoc::Helpers::Capturing # Filters the content in the given block and outputs it. This function # does not return anything; instead, the filtered contents is directly # appended to the output buffer (`_erbout`). # # This function has been tested with ERB and Haml. Other filters may not # work correctly. # # @example Running a filter on a part of an item or layout # # <p>Lorem ipsum dolor sit amet...</p> # <% filter :rubypants do %> # <p>Consectetur adipisicing elit...</p> # <% end %> # # @param [Symbol] filter_name The name of the filter to run on the # contents of the block # # @param [Hash] arguments Arguments to pass to the filter # # @return [void] def filter(filter_name, arguments = {}, &block) # Capture block data = capture(&block) # Find filter klass = Nanoc::Filter.named(filter_name) raise Nanoc::Int::Errors::UnknownFilter.new(filter_name) if klass.nil? filter = klass.new(@item_rep.unwrap.assigns) # Filter captured data Nanoc::Int::NotificationCenter.post(:filtering_started, @item_rep.unwrap, filter_name) filtered_data = filter.setup_and_run(data, arguments) Nanoc::Int::NotificationCenter.post(:filtering_ended, @item_rep.unwrap, filter_name) # Append filtered data to buffer buffer = eval('_erbout', block.binding) buffer << filtered_data end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nanoc-4.0.0b2 | lib/nanoc/helpers/filtering.rb |
nanoc-4.0.0b1 | lib/nanoc/helpers/filtering.rb |