class Fig::PackageDefinitionTextAssembler
Used for building packages for publishing.
Attributes
input_statements[R]
output_statements[R]
Public Class Methods
new(emit_as_input_or_to_be_published_values)
click to toggle source
# File lib/fig/package_definition_text_assembler.rb, line 16 def initialize(emit_as_input_or_to_be_published_values) @emit_as_input_or_to_be_published_values = emit_as_input_or_to_be_published_values @input_statements = [] @output_statements = [] @header_text = [] @footer_text = [] return end
Public Instance Methods
add_header(text)
click to toggle source
Argument can be a single string or an array of strings
# File lib/fig/package_definition_text_assembler.rb, line 52 def add_header(text) @header_text << text return end
add_input(statements)
click to toggle source
Argument can either be a single Statement or an array of them.
# File lib/fig/package_definition_text_assembler.rb, line 29 def add_input(statements) @input_statements << statements @input_statements.flatten! return end
add_output(*statements)
click to toggle source
Argument can either be a single Statement or an array of them.
# File lib/fig/package_definition_text_assembler.rb, line 37 def add_output(*statements) # Version gets determined by other statements, not by existing grammar. @output_statements << statements.flatten.reject { |s| s.is_a? Fig::Statement::GrammarVersion } @output_statements.flatten! return end
assemble_package_definition()
click to toggle source
# File lib/fig/package_definition_text_assembler.rb, line 65 def assemble_package_definition() unparsed_statements, explanations = deparse_statements() definition = [@header_text, unparsed_statements, @footer_text].flatten.join("\n") definition.gsub!(/\n{3,}/, "\n\n") definition.strip! definition << "\n" return definition, explanations end
asset_input_statements()
click to toggle source
# File lib/fig/package_definition_text_assembler.rb, line 47 def asset_input_statements() return @input_statements.select { |statement| statement.is_asset? } end
Private Instance Methods
deparse_statements()
click to toggle source
# File lib/fig/package_definition_text_assembler.rb, line 78 def deparse_statements() deparser_class, explanations = Fig::Deparser.class_for_statements( @output_statements, @emit_as_input_or_to_be_published_values ) grammar_statement = Fig::Statement::GrammarVersion.new( nil, %Q<[synthetic statement created in #{__FILE__} line #{__LINE__}]>, %q<Fake grammar version that shouldn't be used because the Deparser should determine what gets emitted.> ) deparser = deparser_class.new @emit_as_input_or_to_be_published_values text = deparser.deparse( [grammar_statement] + @output_statements ) explanations.unshift( "Publishing using the #{deparser.grammar_description} grammar." ) return text, explanations end