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