class R2OAS::Routing::RequestComponent

Public Class Methods

new(request, is_route_engine) click to toggle source
Calls superclass method R2OAS::Base::new
# 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

Public Instance Methods

to_format_name() click to toggle source

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

# 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_name() click to toggle source
# 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_name() click to toggle source

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

# 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

Private Instance Methods

adjust_namespace(namespace) click to toggle source
# File lib/r2-oas/routing/components/request_component.rb, line 63
def adjust_namespace(namespace)
  case namespace_type
  when :dot
    namespace.downcase
  when :underbar
    namespace
  else
    raise "Do not support #{namespace_type}"
  end
end