Class: Fig::PackageDefinitionTextAssembler

Inherits:
Object
  • Object
show all
Defined in:
lib/fig/package_definition_text_assembler.rb

Overview

Used for building packages for publishing.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePackageDefinitionTextAssembler

Returns a new instance of PackageDefinitionTextAssembler.



11
12
13
14
15
16
17
18
# File 'lib/fig/package_definition_text_assembler.rb', line 11

def initialize()
  @input_statements   = []
  @output_statements  = []
  @header_text        = []
  @footer_text        = []

  return
end

Instance Attribute Details

#input_statementsObject (readonly)

Returns the value of attribute input_statements.



8
9
10
# File 'lib/fig/package_definition_text_assembler.rb', line 8

def input_statements
  @input_statements
end

#output_statementsObject (readonly)

Returns the value of attribute output_statements.



9
10
11
# File 'lib/fig/package_definition_text_assembler.rb', line 9

def output_statements
  @output_statements
end

Instance Method Details

Argument can be a single string or an array of strings



48
49
50
51
52
# File 'lib/fig/package_definition_text_assembler.rb', line 48

def add_footer(text)
  @footer_text << text

  return
end

#add_header(text) ⇒ Object

Argument can be a single string or an array of strings



41
42
43
44
45
# File 'lib/fig/package_definition_text_assembler.rb', line 41

def add_header(text)
  @header_text << text

  return
end

#add_input(statements) ⇒ Object

Argument can either be a single Statement or an array of them.



21
22
23
24
25
26
# File 'lib/fig/package_definition_text_assembler.rb', line 21

def add_input(statements)
  @input_statements << statements
  @input_statements.flatten!

  return
end

#add_output(statements) ⇒ Object

Argument can either be a single Statement or an array of them.



29
30
31
32
33
34
# File 'lib/fig/package_definition_text_assembler.rb', line 29

def add_output(statements)
  @output_statements << statements
  @output_statements.flatten!

  return
end

#assemble_package_definitionObject



54
55
56
57
58
59
60
61
62
# File 'lib/fig/package_definition_text_assembler.rb', line 54

def assemble_package_definition()
  definition =
    [@header_text, unparse_statements(), @footer_text].flatten.join("\n")
  definition.gsub!(/\n{3,}/, "\n\n")
  definition.strip!
  definition << "\n"

  return definition
end

#asset_input_statementsObject



36
37
38
# File 'lib/fig/package_definition_text_assembler.rb', line 36

def asset_input_statements()
  return @input_statements.select { |statement| statement.is_asset? }
end