class JSRailsRoutes::RouteSet

Encapsulate a set of routes

Attributes

name[R]

@return [String]

route_set[R]

@return [ActionDispatch::Routing::RouteSet]

routes[R]

@return [Array<JSRailsRoutes::Route>]

Public Class Methods

correct_matching_route_set_list() click to toggle source

@return [Array<JSRailsRoutes::RouteSet>]

# File lib/js_rails_routes/route_set.rb, line 11
def self.correct_matching_route_set_list
  [
    RouteSet.new('Rails', ::Rails.application.routes),
    ::Rails::Engine.subclasses.map do |engine|
      RouteSet.new(engine.name, engine.routes)
    end
  ].flatten.select(&:match?)
end
new(name, routes) click to toggle source

@param name [String] engine name @param routes [ActionDispatch::Routing::RouteSet]

# File lib/js_rails_routes/route_set.rb, line 36
def initialize(name, routes)
  @name = name
  @route_set = route_set
  @routes = routes.routes
                  .select(&:name)
                  .map { |route| Route.new(route) }
                  .select(&:match?)
end

Public Instance Methods

match?() click to toggle source

@return [Boolean]

# File lib/js_rails_routes/route_set.rb, line 46
def match?
  name !~ config.exclude_engines && routes.present? && config.route_set_filter.call(self)
end

Private Instance Methods

config() click to toggle source

@return [JSRailsRoutes::Configuration]

# File lib/js_rails_routes/route_set.rb, line 53
def config
  JSRailsRoutes.config
end