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