lib/nanoc3/base/rule_context.rb in nanoc3-3.0.9 vs lib/nanoc3/base/rule_context.rb in nanoc3-3.1.0a1
- old
+ new
@@ -1,65 +1,78 @@
module Nanoc3
- # Nanoc3::RuleContext provides a context in which compilation and routing
- # rules can be executed. It provides access to the item representation that
- # is being compiled or routed.
- class RuleContext
+ # Provides a context in which compilation and routing rules can be executed.
+ # It provides access to the item representation that is being compiled or
+ # routed.
+ #
+ # The following variables will be available in this rules context:
+ #
+ # * `rep` ({Nanoc3::ItemRep}) - The current item rep
+ # * `item` ({Nanoc3::Item}) - The current item
+ # * `site` ({Nanoc3::Site}) - The site
+ # * `config` ({Hash}) - The site configuration
+ # * `items` ({Array}<{Nanoc3::Item}>) - A list of all items
+ # * `layouts` ({Array}<{Nanoc3::Layout}>) - A list of all layouts
+ class RuleContext < Context
- # Creates a new rule context for the given item representation.
+ # Creates a new rule context for the given iterm representation.
+ #
+ # @param [Nanoc3::ItemRep] rep The item representation for which to create
+ # a new rule context.
def initialize(rep)
- @rep = rep
- end
+ item = rep.item
+ site = item.site
+ config = site.config
+ items = site.items
+ layouts = site.layouts
- # The representation that is currently being processed in this context.
- def rep
- @rep
+ super({
+ :rep => rep,
+ :item => item,
+ :site => site,
+ :config => config,
+ :items => items,
+ :layouts => layouts
+ })
end
- # The item of the representation that is currently being processed in this
- # context.
- def item
- rep.item
- end
-
- # The site of the item representation that is currently being processed in
- # this context.
- def site
- item.site
- end
-
- # The configuration of the site of the item representation that is
- # currently being processed in this context.
- def config
- site.config
- end
-
- # The items in the site of the item representation that is currently being
- # processed in this context.
- def items
- site.items
- end
-
- # The layouts in the site of the item representation that is currently
- # being processed in this context.
- def layouts
- site.layouts
- end
-
- # Filters the current representation (calls #filter with the given
- # arguments on the rep).
+ # Filters the current representation (calls {Nanoc3::ItemRep#filter} with
+ # the given arguments on the rep).
+ #
+ # @see Nanoc3::ItemRep#filter
+ #
+ # @param [Symbol] filter_name The name of the filter to run the item
+ # representations' content through
+ #
+ # @param [Hash] filter_args The filter arguments that should be passed to
+ # the filter's #run method
+ #
+ # @return [void]
def filter(filter_name, filter_args={})
rep.filter(filter_name, filter_args)
end
- # Layouts the current representation (calls #layout with the given
- # arguments on the rep).
+ # Layouts the current representation (calls {Nanoc3::ItemRep#layout} with
+ # the given arguments on the rep).
+ #
+ # @see Nanoc3::ItemRep#layout
+ #
+ # @param [String] layout_identifier The identifier of the layout the ite
+ # should be laid out with
+ #
+ # @return [void]
def layout(layout_identifier)
rep.layout(layout_identifier)
end
- # Creates a snapshot of the current representation (calls #snapshot with
- # the given arguments on the rep).
+ # Creates a snapshot of the current compiled item content. Calls
+ # {Nanoc3::ItemRep#snapshot} with the given arguments on the rep.
+ #
+ # @see Nanoc3::ItemRep#snapshot
+ #
+ # @param [Symbol] snapshot_name The name of the snapshot to create
+ #
+ # @return [void]
def snapshot(snapshot_name)
rep.snapshot(snapshot_name)
end
end