# File lib/thor/actions/file_manipulation.rb, line 108
    def template(source, *args, &block)
      config = args.last.is_a?(Hash) ? args.pop : {}
      destination = args.first || source.sub(/#{TEMPLATE_EXTNAME}$/, "")

      source  = File.expand_path(find_in_source_paths(source.to_s))
      context = config.delete(:context) || instance_eval("binding")

      create_file destination, nil, config do
        content = CapturableERB.new(::File.binread(source), nil, "-", "@output_buffer").result(context)
        content = yield(content) if block
        content
      end
    end