class Smartdown::Parser::FlowInterpreter
Attributes
data_module[R]
flow_input[R]
Public Class Methods
new(flow_input, data_module=nil)
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 27 def initialize(flow_input, data_module=nil) @flow_input = pre_parse(flow_input) @data_module = data_module end
Public Instance Methods
interpret()
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 32 def interpret Smartdown::Model::Flow.new(coversheet.name, [coversheet] + questions + outcomes) end
Private Instance Methods
coversheet()
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 37 def coversheet interpret_node(flow_input.coversheet) end
interpret_node(input_data)
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 49 def interpret_node(input_data) Smartdown::Parser::NodeInterpreter.new(input_data.name, input_data.read, options).interpret rescue Parslet::ParseFailed => error raise ParseError.new(input_data.name, error) end
options()
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 59 def options {}.tap do |opts| opts[:data_module] = data_module if data_module end end
outcomes()
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 45 def outcomes flow_input.outcomes.map { |outcome_data| interpret_node(outcome_data) } end
pre_parse(flow_input)
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 55 def pre_parse(flow_input) SnippetPreParser.parse(flow_input) end
questions()
click to toggle source
# File lib/smartdown/parser/flow_interpreter.rb, line 41 def questions flow_input.questions.map { |question_data| interpret_node(question_data) } end