Class: RailsAutodoc::ResponseInferencer

Inherits:
Object
  • Object
show all
Includes:
AstTraversal
Defined in:
lib/rails_autodoc/response_inferencer.rb

Defined Under Namespace

Classes: ResponseHint

Constant Summary collapse

DEFAULT_STATUS =
{
  "GET" => "200",
  "POST" => "201",
  "PUT" => "200",
  "PATCH" => "200",
  "DELETE" => "204"
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(source_path:, class_name:, serializer_registry: Serializers::Registry.new) ⇒ ResponseInferencer

Returns a new instance of ResponseInferencer.



19
20
21
22
23
24
# File 'lib/rails_autodoc/response_inferencer.rb', line 19

def initialize(source_path:, class_name:, serializer_registry: Serializers::Registry.new)
  @source_path = source_path
  @class_name = class_name
  @serializer_registry = serializer_registry
  @buffer, = Parser::CurrentRuby.parse_file(source_path)
end

Instance Method Details

#responses_for_action(action_name, verb: "GET") ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/rails_autodoc/response_inferencer.rb', line 26

def responses_for_action(action_name, verb: "GET")
  action_node = find_action_node(action_name)
  hints = action_node ? extract_render_hints(action_node) : []

  hints << default_response(verb) if hints.empty?

  hints
end