Class: DocTemplate::Tags::AnswerSpaceTag

Inherits:
BaseTag
  • Object
show all
Defined in:
lib/doc_template/tags/answer_space_tag.rb

Constant Summary collapse

SPACE_SIZE =
{
  s: 5, # small = 5 lines
  m: 10, # medium = 10 lines
  l: 20 # large = 20 lines
}.freeze
TAG_NAME =

large = 20 lines

'answer-space'

Constants inherited from BaseTag

BaseTag::SOFT_RETURN_RE, BaseTag::UNICODE_SPACES_RE

Instance Attribute Summary

Attributes inherited from BaseTag

#anchor, #content

Instance Method Summary collapse

Methods inherited from BaseTag

#before_tag, #check_tag_soft_return, #content_until_break, #content_until_materials, #ela2?, #ela6?, #gdoc?, #include_break?, #include_break_for?, #materials, parse, #parse_nested, #parse_template, #placeholder, #placeholder_id, #render, #replace_tag, #tag_data, tag_with_html_regexp, #template_name, #template_path, template_path_for

Instance Method Details

#parse(node, opts = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/doc_template/tags/answer_space_tag.rb', line 13

def parse(node, opts = {})
  num_of_lines = SPACE_SIZE[opts[:value].try(:to_sym)]
  if num_of_lines
    space = '<br>' * num_of_lines
    @content = node.to_html.sub(/\[#{TAG_NAME}:\s?[s|m|l]\]/i, space)
  end
  replace_tag node
  self
end