module Aygabtu::Scope::NamespaceController

Public Class Methods

factory_methods() click to toggle source
# File lib/aygabtu/scope/namespace_controller.rb, line 44
def self.factory_methods
  [ :namespace, :controller ]
end

Public Instance Methods

controller(name) click to toggle source
# File lib/aygabtu/scope/namespace_controller.rb, line 13
def controller(name)
  raise "nesting/chaining controller scopes makes no sense" if @data[:controller]
  raise "nesting/chaining namespace in/after action makes no sense" if @data[:action]

  new_controller = name.to_s
  new_data = @data.dup.merge(controller: new_controller)
  self.class.new(new_data)
end
inspect_data() click to toggle source
Calls superclass method
# File lib/aygabtu/scope/namespace_controller.rb, line 38
def inspect_data
  super.merge(
    namespace: inspected_or_nil(@data[:namespace]),
    controller: inspected_or_nil(@data[:controller]))
end
matches_route?(route) click to toggle source
Calls superclass method
# File lib/aygabtu/scope/namespace_controller.rb, line 22
def matches_route?(route)
  namespace, controller = @data[:namespace], @data[:controller]

  return false if (namespace || controller) && !route.controller
  return super unless namespace || controller

  namespace = Pathname(namespace || '')
  path = namespace.join(controller || '').to_s
  if controller
    path == route.controller
  else
    controller_namespace = route.controller_namespace || ''
    (controller_namespace + '/').start_with?(path + '/')
  end && super
end
namespace(name) click to toggle source
# File lib/aygabtu/scope/namespace_controller.rb, line 4
def namespace(name)
  raise "nesting/chaining namespace in/after controller makes no sense" if @data[:controller]
  raise "nesting/chaining namespace in/after action makes no sense" if @data[:action]

  new_namespace = Pathname(@data[:namespace] || '').join(name.to_s).to_s
  new_data = @data.dup.merge(namespace: new_namespace)
  self.class.new(new_data)
end