Sha256: 7299ec6b38114d3c3d7522a6e37b07d4e1c23777e5dfd6df66bf447851cea9a3
Contents?: true
Size: 1.51 KB
Versions: 30
Compression:
Stored size: 1.51 KB
Contents
# frozen_string_literal: true module PgEngine module RouteHelper class NamespaceDeductor def self.request(context) if context.respond_to?(:request) && context.request # Controllers context.request elsif context.respond_to?(:helpers) && context.helpers # Decorators context.helpers.request elsif context.respond_to?(:template) && context.template # FormBuilders context.template.request end end def self.current_route(context) req = request(context) Rails.application.routes.recognize_path(req.path, method: req.env['REQUEST_METHOD']) end def self.namespace(context) return Current.namespace if Current.namespace.present? route = current_route(context) parts = route[:controller].split('/') return unless parts.length > 1 parts.first.to_sym rescue ActionController::RoutingError nil end end def pg_current_route NamespaceDeductor.current_route(self) end def pg_namespace NamespaceDeductor.namespace(self) end def namespaced_path(object, options = {}) target = [pg_namespace, object] if options[:prefix] target.prepend options[:prefix] options.delete(:prefix) end if options[:suffix] target.append options[:suffix] options.delete(:suffix) end polymorphic_url(target.flatten.compact, options.merge(only_path: true)) end end end
Version data entries
30 entries across 30 versions & 1 rubygems