module Toys::DSL::Tool

def self.prepare(tool_class, remaining_words, source)

# @private
def self.prepare(tool_class, remaining_words, source)
  tool_class.instance_variable_set(:@__remaining_words, remaining_words)
  tool_class.instance_variable_get(:@__source).push(source)
  yield
ensure
  tool_class.instance_variable_get(:@__source).pop
end