Class: R2OAS::Routing::RequestComponent

Inherits:
BaseComponent show all
Defined in:
lib/r2-oas/routing/components/request_component.rb

Instance Method Summary collapse

Constructor Details

#initialize(request, is_route_engine) ⇒ RequestComponent

Returns a new instance of RequestComponent.



8
9
10
11
12
# File 'lib/r2-oas/routing/components/request_component.rb', line 8

def initialize(request, is_route_engine)
  super()
  @request = request
  @is_route_engine = is_route_engine
end

Instance Method Details

#to_format_nameObject

e.x.) “tasks#index { :format => ”:json“ }”



53
54
55
56
57
58
59
# File 'lib/r2-oas/routing/components/request_component.rb', line 53

def to_format_name
  result = ''
  @request.match(/{\:format=>:(?<format_name>.*)}/) do |md|
    result = md[:format_name] if md[:format_name]
  end
  result
end

#to_schema_nameObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/r2-oas/routing/components/request_component.rb', line 28

def to_schema_name
  if @is_route_engine
    schema_name = @request.split('::').map(&:camelcase).join(ns_div)
  else
    # e.x.) @request = "api/v2/posts#index {:format=>:json}"
    # e.x.) path = "api/v2/post"
    path = @request.split('#').first.singularize
    schema_name = path.split('/').map(&:camelcase).join(ns_div)
  end

  if use_schema_namespace
    schema_name_only = schema_name.split(ns_div).last
    namespace = adjust_namespace(schema_name.split(ns_div)[0..-2].join(ns_div))

    if namespace.present?
      [namespace, schema_name_only].join(ns_div)
    else
      schema_name_only
    end
  else
    schema_name.split(ns_div).last
  end
end

#to_tag_nameObject

e.x.) “tasks#index” => “task” e.x.) “RailsAdmin::Engine” => “rails_amin/engine”



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/r2-oas/routing/components/request_component.rb', line 16

def to_tag_name
  tag_name = if @is_route_engine
               @request.gsub('::', '/').underscore
             else
               @request.split('#').first.singularize
             end

  tag_name = tag_name.split('/').last unless use_tag_namespace

  tag_name
end