Sha256: b5500a05a53b93cf1e49e6defdabc5d5777e2933472bbf595ca8ec5591c81597
Contents?: true
Size: 1.12 KB
Versions: 3
Compression:
Stored size: 1.12 KB
Contents
require 'active_support/core_ext' require 'action_dispatch/routing/inspector' require_relative 'mount_route' module Passages # Main DelegateClass used for decoration and discerning if a route is # a "regular" route or a mount route class Route < DelegateClass(ActionDispatch::Routing::RouteWrapper) ATTRIBUTES_FOR_DISPLAY = %w[name verb controller action path].freeze def initialize(route) super(ActionDispatch::Routing::RouteWrapper.new(route)) end class << self def attributes_for_display ATTRIBUTES_FOR_DISPLAY end def from_raw_route(raw_route) mount_class = mount_route_class(raw_route) if mount_class.nil? new(raw_route) else MountRoute.new(raw_route, mount_class) end end private def mount_route_class(route) klass = app_class(route.app) klass if klass.ancestors.include?(Rails::Engine) rescue nil end def app_class(route_app) if route_app.class == Class route_app else route_app.try(:app) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
passages-3.0.0 | lib/passages/route.rb |
passages-2.2.0 | lib/passages/route.rb |
passages-2.1.0 | lib/passages/route.rb |