Module: Aygabtu::Scope::NamespaceController
- Defined in:
- lib/aygabtu/scope/namespace_controller.rb
Class Method Summary collapse
Instance Method Summary collapse
- #controller(name) ⇒ Object
- #inspect_data ⇒ Object
- #matches_route?(route) ⇒ Boolean
- #namespace(name) ⇒ Object
Class Method Details
.factory_methods ⇒ Object
44 45 46 |
# File 'lib/aygabtu/scope/namespace_controller.rb', line 44 def self.factory_methods [ :namespace, :controller ] end |
Instance Method Details
#controller(name) ⇒ Object
13 14 15 16 17 18 19 20 |
# 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 ⇒ Object
38 39 40 41 42 |
# 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) ⇒ Boolean
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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) ⇒ Object
4 5 6 7 8 9 10 11 |
# 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 |