Class: RailsApiDoc::Controller::Response::Repository

Inherits:
Object
  • Object
show all
Includes:
RailsApiDoc::Controller::Repo, Headers
Defined in:
lib/rails_api_doc/controller/response/repository.rb

Overview

author: Vadim Shaveiko <@vshaveyko> :nodoc:

Constant Summary

Constants included from Headers

Headers::RESPONSE_HEADERS

Constants included from Headers

Headers::DESC_HEADER, Headers::NAME_HEADER, Headers::SPECIAL_HEADER, Headers::TYPE_HEADER, Headers::VALUE_HEADER

Instance Attribute Summary

Attributes included from RailsApiDoc::Controller::Repo

#repo

Instance Method Summary collapse

Methods included from Headers

#headers

Methods included from RailsApiDoc::Controller::Repo

#[]=, extended, #method_missing, #respond_to_missing?

Constructor Details

#initialize(repo) ⇒ Repository

Returns a new instance of Repository.



9
10
11
# File 'lib/rails_api_doc/controller/response/repository.rb', line 9

def initialize(repo)
  @repo = repo.clone.transform_values(&:deep_dup)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RailsApiDoc::Controller::Repo

Instance Method Details

#action_route(ctrl, action) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/rails_api_doc/controller/response/repository.rb', line 25

def action_route(ctrl, action)
  return unless action_route = action_route_for(ctrl, action)

  {
    method: method(action_route),
    url: url(action_route)
  }
end

#load_attrs(ctrl, action) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/rails_api_doc/controller/response/repository.rb', line 13

def load_attrs(ctrl, action)
  at = load_template(ctrl, action)&.nodes || {}

  at = RailsApiDoc::Model::AttributeMerger.new(at, 'response').merge_action(action: action, ctrl: ctrl)

  at
end

#load_template(ctrl, action) ⇒ Object



21
22
23
# File 'lib/rails_api_doc/controller/response/repository.rb', line 21

def load_template(ctrl, action)
  RailsApiDoc::Controller::Response::RablCompiler.new("#{ctrl.controller_path}/#{action}").compile_source
end