Class: Docit::Ai::DocBlockValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/docit/ai/doc_block_validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(controller:, action:, doc_block:) ⇒ DocBlockValidator

Returns a new instance of DocBlockValidator.



8
9
10
11
12
# File 'lib/docit/ai/doc_block_validator.rb', line 8

def initialize(controller:, action:, doc_block:)
  @controller = controller
  @action = action.to_sym
  @doc_block = doc_block
end

Instance Method Details

#validate!Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/docit/ai/doc_block_validator.rb', line 14

def validate!
  doc_module = Module.new
  doc_module.extend(Docit::DocFile)
  doc_module.module_eval(@doc_block, "(generated Docit block)", 1)

  validate_actions!(doc_module.actions)

  operation = Docit::Operation.new(controller: @controller, action: @action)
  operation.instance_eval(&doc_module[@action])

  true
rescue SyntaxError, StandardError => e
  raise InvalidDocBlockError, error_message_for(e)
end