Class: SpecsProcessor

Inherits:
Parser::AST::Processor
  • Object
show all
Defined in:
lib/ducalis/documentation.rb

Overview

This class could be used to dynamically generate documentation from cops spec. It recognizes bad and good examples by signal words like raises. Additional information for documentation could be passed by setting DETAILS constant.

Constant Summary collapse

LINE_BEGIN_OPEN_SQUARE_BRACKET =

“/[/1, 2, 3]n”

/\A\[/.freeze
CLOSE_SQUARE_BRACKET_END_LINE =

“[1, 2, 3/]n/”

/\]\z/.freeze
LINE_BEGIN_QUOTE =

“/‘/idddqd’,”

/\A[\'|\"]/.freeze
QUOTE_COMMA_END_LINE =

“‘iddqd/’,/”

/[\'|\"]\,?\z/.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSpecsProcessor

Returns a new instance of SpecsProcessor.



16
17
18
19
20
# File 'lib/ducalis/documentation.rb', line 16

def initialize(*)
  super
  @cases = []
  @nesting = []
end

Instance Attribute Details

#casesObject (readonly)

Returns the value of attribute cases.



9
10
11
# File 'lib/ducalis/documentation.rb', line 9

def cases
  @cases
end

Instance Method Details

#on_send(node) ⇒ Object



28
29
30
31
32
# File 'lib/ducalis/documentation.rb', line 28

def on_send(node)
  _, name, _body = *node
  cases << [current_it, source_code(node)] if name == :inspect_source
  super
end

#process(node) ⇒ Object



22
23
24
25
26
# File 'lib/ducalis/documentation.rb', line 22

def process(node)
  @nesting.push(node)
  super
  @nesting.pop
end