class Smartdown::Parser::SnippetPreParser
Attributes
input_data[R]
Public Class Methods
new(input_data)
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 10 def initialize(input_data) @input_data = input_data end
parse(input_data)
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 24 def self.parse(input_data) self.new(input_data).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 14 def parse InputSet.new({ coversheet: parse_node_input(input_data.coversheet), questions: input_data.questions.map { |question_data| parse_node_input(question_data) }, outcomes: input_data.outcomes.map { |outcome_data| parse_node_input(outcome_data) }, snippets: input_data.snippets, scenario_sets: input_data.scenario_sets, }) end
Private Instance Methods
get_snippet(snippet_name)
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 39 def get_snippet(snippet_name) input_data.snippets.find { |snippet| snippet.name == snippet_name } or raise SnippetNotFound.new(snippet_name) end
parse_content(content)
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 33 def parse_content(content) content.gsub(/\{\{snippet:\W?(.*)\}\}/i) { |_| parse_content(get_snippet($1).read.strip) } end
parse_node_input(node_input)
click to toggle source
# File lib/smartdown/parser/snippet_pre_parser.rb, line 29 def parse_node_input(node_input) InputData.new(node_input.name, parse_content(node_input.read)) end