lib/fluent/factory.rb in fluent-0.4.0 vs lib/fluent/factory.rb in fluent-0.5.0

- old
+ new

@@ -1,11 +1,13 @@ module Fluent module Factory - # Creates a definition context for actions. + # Creates a definition context for actions. If an existing context + # exists, that context will be re-used. # # @param definition [Class] the name of a definition class + # @param visit [Boolean] true if the context needs to be called into view # @param block [Proc] logic to execute within the context of the definition # @return [Object] instance of the definition def on(definition, visit=false, &block) definition = get_object_for(definition) if definition.is_a? String @@ -16,10 +18,27 @@ @active end alias_method :on_page, :on alias_method :while_on, :on + + # Creates a definition context for actions. Unlike the on() factory, + # on_new will always create a new context and will never re-use an + # existing one. + # + # @param definition [Class] the name of a definition class + # @param visit [Boolean] true if the context needs to be called into view + # @param block [Proc] logic to execute within the context of the definition + # @return [Object] instance of the definition + def on_new(definition, visit=false, &block) + definition = get_object_for(definition) if definition.is_a? String + @active = definition.new(@driver, visit) + block.call @active if block + + @active + end + # Creates a definition context for actions and establishes the # context for display. # # @param definition [Class] the name of a definition class # @param block [Proc] logic to execute within the context of the definition \ No newline at end of file