class DocTemplate::Tags::DialogueTag
Constants
- TAG_NAME
- TEMPLATES
Public Instance Methods
parse(node, opts = {})
click to toggle source
# File lib/doc_template/tags/dialogue_tag.rb, line 12 def parse(node, opts = {}) @tags = [] nodes = block_nodes node nodes.map(&:remove) params = { phrases: format_phrases(nodes) } parsed_content = parse_template params, template_name(opts) @content = parse_nested parsed_content, opts replace_tag node self end
Private Instance Methods
format_phrases(nodes)
click to toggle source
# File lib/doc_template/tags/dialogue_tag.rb, line 27 def format_phrases(nodes) delimiter = '{|}' t_re = /T:/ s_re = /S:/ mixed_re = %r{T/S:} nodes.map(&:to_html) .join(delimiter) .sub(t_re, '<strong>Teacher:</strong>') .sub(s_re, '<strong>Student:</strong>') .gsub(mixed_re, '<strong>T/S:</strong>') .gsub(t_re, '<strong>T:</strong>') .gsub(s_re, '<strong>S:</strong>') .squish .split(delimiter) .reject(&:blank?) end