module RailsCom::Routes

Public Instance Methods

actions(controller) click to toggle source
# File lib/rails_com/meta/routes.rb, line 8
def actions(controller)
  routes_wrapper.select { |i| i[:controller] == controller.to_s }.map { |i| i[:action] }.uniq
end
controllers() click to toggle source
# File lib/rails_com/meta/routes.rb, line 12
def controllers
  _controllers = routes_wrapper.map { |i| i[:controller] }.compact.uniq
  _controllers - RailsCom.config.ignore_controllers
end
detail(route) click to toggle source
# File lib/rails_com/meta/routes.rb, line 37
def detail(route)
  wrap = ActionDispatch::Routing::RouteWrapper.new(route)
  info = route.defaults

  {
    verb: route.verb,
    path: wrap.path,
    controller: info[:controller],
    action: info[:action]
  }
end
modules() click to toggle source
# File lib/rails_com/meta/routes.rb, line 17
def modules
  controllers.map do |i|
    x = i.split('/')
    if x.size >= 2
      x[0..-2].join('/')
    end
  end.compact.uniq
end
routes() click to toggle source
# File lib/rails_com/meta/routes.rb, line 49
def routes
  @routes ||= Rails.application.routes.routes
end
routes_wrapper() click to toggle source
# File lib/rails_com/meta/routes.rb, line 26
def routes_wrapper
  return @routes_wrapper if @routes_wrapper.present?

  @routes_wrapper = []
  routes.each do |route|
    @routes_wrapper << detail(route)
  end

  @routes_wrapper
end
verbs(controller, action) click to toggle source
# File lib/rails_com/meta/routes.rb, line 4
def verbs(controller, action)
  routes_wrapper.select { |i| i[:controller] == controller.to_s && i[:action] == action.to_s }.map { |i| i[:verb] }.uniq
end