Class: Wordz::Generator

Inherits:
Object
  • Object
show all
Includes:
PostProcessor
Defined in:
lib/wordz/generator.rb

Defined Under Namespace

Classes: UndefinedMacroError, UndefinedReceiverError

Constant Summary collapse

ROOT_NODE =
"<root>".freeze

Constants included from PostProcessor

PostProcessor::NO_SPACE_BEFORE, PostProcessor::POST_PROCESSED_PHRASES

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grammar = {}, subjects: {}) ⇒ Generator

Returns a new instance of Generator.



11
12
13
14
15
# File 'lib/wordz/generator.rb', line 11

def initialize(grammar = {}, subjects: {})
  @output = []
  @subjects = subjects
  @grammar = grammar
end

Instance Attribute Details

#grammarObject (readonly)

Returns the value of attribute grammar.



7
8
9
# File 'lib/wordz/generator.rb', line 7

def grammar
  @grammar
end

#outputObject (readonly)

Returns the value of attribute output.



7
8
9
# File 'lib/wordz/generator.rb', line 7

def output
  @output
end

#subjectsObject (readonly)

Returns the value of attribute subjects.



7
8
9
# File 'lib/wordz/generator.rb', line 7

def subjects
  @subjects
end

Instance Method Details

#generate(root_node = ROOT_NODE) ⇒ Object



17
18
19
# File 'lib/wordz/generator.rb', line 17

def generate(root_node = ROOT_NODE)
  post_process(generate_list(root_node))
end