class GrapeApe::API

Constants

REQUIRED_ROUTE_KEYS

Public Class Methods

inherited(subclass) click to toggle source
Calls superclass method
# File lib/grape_ape/api.rb, line 11
def inherited(subclass)
  super
  GrapeApe::API.app_class = subclass.name if defined?(GrapeApe::API)
end
route(methods, paths = %w(/), route_options = {}, &block) click to toggle source
Calls superclass method
# File lib/grape_ape/api.rb, line 16
def route(methods, paths = %w(/), route_options = {}, &block)
  if ape_route?(route_options)
    endpoint_options = {
        :method => methods,
        :path => paths,
        :route_options => (@namespace_description || {}).deep_merge(@last_description || {}).deep_merge(route_options || {})
    }

    endpoints << GrapeApe::Endpoint.new(settings.clone, endpoint_options) do
      message = rpc(env, route_options[:routing_key], {method: route_options[:method], params: params})
      if block
        block.call(message)
      else
        message
      end
    end

    @last_description = nil
    reset_validations!
  else
    super
  end
end

Private Class Methods

ape_route?(route_options) click to toggle source
# File lib/grape_ape/api.rb, line 42
def ape_route?(route_options)
  keys = Set.new(route_options.keys)
  Set[*REQUIRED_ROUTE_KEYS].subset?(keys)
end