Module: RailsRoutable

Included in:
ActiveEndpoint::Request, ActiveEndpoint::Routes::Matcher
Defined in:
lib/active_endpoint/concerns/rails_routable.rb

Constant Summary collapse

ACTION_KEYS =
[
  :controller,
  :action
].freeze

Instance Method Summary collapse

Instance Method Details

#rails_action(request) ⇒ Object



32
33
34
35
36
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 32

def rails_action(request)
  rails_routes.recognize_path(request.path, method: request.method)
rescue ActionController::RoutingError
  nil
end

#rails_action?(request) ⇒ Boolean

Returns:



7
8
9
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 7

def rails_action?(request)
  rails_action(request).present?
end

#rails_endpoint(request) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 19

def rails_endpoint(request)
  action = rails_action(request)
  return unless action
  action.select do |key, _value|
    ACTION_KEYS.include?(key)
  end
end

#rails_endpoint_name(action) ⇒ Object



27
28
29
30
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 27

def rails_endpoint_name(action)
  return unless action
  "#{action[:controller]}##{action[:action]}"
end

#rails_request_params(request) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 11

def rails_request_params(request)
  action = rails_action(request)
  return unless action
  action.reject do |key, _value|
    ACTION_KEYS.include?(key)
  end
end

#rails_route_pattern(request) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 38

def rails_route_pattern(request)
  rails_routes.router.recognize(request) do |route|
    return route.path.spec.to_s
  end
rescue ActionController::RoutingError
  nil
end

#rails_routesObject



46
47
48
# File 'lib/active_endpoint/concerns/rails_routable.rb', line 46

def rails_routes
  ::Rails.application.routes
end