using System; using System.Collections.Generic; using System.IO; namespace Mustache { /// /// Generates the text for a tag that is replaced with its generated text. /// internal sealed class InlineGenerator : IGenerator { private readonly TagDefinition _definition; private readonly ArgumentCollection _arguments; /// /// Initializes a new instance of an InlineGenerator. /// /// The tag to render the text for. /// The arguments passed to the tag. public InlineGenerator(TagDefinition definition, ArgumentCollection arguments) { _definition = definition; _arguments = arguments; } void IGenerator.GetText(TextWriter writer, Scope scope, Scope context, Action postProcessor) { var arguments = GetArguments(scope, context); _definition.GetText(writer, arguments, context); } private Dictionary GetArguments(Scope scope, Scope context) { if (_definition.IsSetter) { return _arguments.GetArgumentKeyNames(); } else { return _arguments.GetArguments(scope, context); } } } }