Class: Docbert::Parser::ExampleNode

Inherits:
Object
  • Object
show all
Defined in:
lib/docbert/parser/example_node.rb

Direct Known Subclasses

DefinitionNode

Constant Summary collapse

BLANK_LINE =
Kramdown::Parser::Kramdown::BLANK_LINE
EXAMPLE_KEYWORDS =
'Given|When|Then|And|But|\\||"""'
EXAMPLE_OUTLINE_KEYWORDS =
"#{EXAMPLE_KEYWORDS}|Examples:"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, start_re, keywords, element_factory, fragment) ⇒ ExampleNode

Returns a new instance of ExampleNode.



33
34
35
36
37
38
39
40
41
# File 'lib/docbert/parser/example_node.rb', line 33

def initialize(type, start_re, keywords, element_factory, fragment)
  self.type            = type
  self.start_re        = start_re
  self.body_re         = /(?:\s*(?:#{keywords}).+?\n|#{BLANK_LINE})+/m
  self.element_factory = element_factory
  self.fragment        = fragment

  parse
end

Class Method Details

.as_background(element_factory, fragment) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/docbert/parser/example_node.rb', line 9

def self.as_background(element_factory, fragment)
  new(:example_background,
      EXAMPLE_BACKGROUND_START,
      EXAMPLE_KEYWORDS,
      element_factory,
      fragment)
end

.as_definition(element_factory, fragment) ⇒ Object



17
18
19
# File 'lib/docbert/parser/example_node.rb', line 17

def self.as_definition(element_factory, fragment)
  DefinitionNode.new(element_factory, fragment)
end

.as_example(element_factory, fragment) ⇒ Object



21
22
23
# File 'lib/docbert/parser/example_node.rb', line 21

def self.as_example(element_factory, fragment)
  new(:example, EXAMPLE_START, EXAMPLE_KEYWORDS, element_factory, fragment)
end

.as_example_outline(element_factory, fragment) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/docbert/parser/example_node.rb', line 25

def self.as_example_outline(element_factory, fragment)
  new(:example_outline,
      EXAMPLE_OUTLINE_START,
      EXAMPLE_OUTLINE_KEYWORDS,
      element_factory,
      fragment)
end

Instance Method Details

#to_elementObject



43
44
45
# File 'lib/docbert/parser/example_node.rb', line 43

def to_element
  element
end