Class: Terrazzo::Namespace

Inherits:
Object
  • Object
show all
Defined in:
lib/terrazzo/namespace.rb,
lib/terrazzo/namespace/resource.rb

Defined Under Namespace

Classes: Resource

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, router = Rails.application.routes.router) ⇒ Namespace

Returns a new instance of Namespace.



7
8
9
10
# File 'lib/terrazzo/namespace.rb', line 7

def initialize(name, router = Rails.application.routes.router)
  @name = name.to_sym
  @router = router
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/terrazzo/namespace.rb', line 5

def name
  @name
end

#routerObject (readonly)

Returns the value of attribute router.



5
6
7
# File 'lib/terrazzo/namespace.rb', line 5

def router
  @router
end

Instance Method Details



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/terrazzo/namespace.rb', line 24

def navigation_resources
  resources_with_index_route
    .select(&:show_in_navigation?)
    .sort_by do |resource|
      [
        navigation_sort_value(resource.navigation_group_order),
        navigation_sort_value(resource.navigation_group),
        navigation_sort_value(resource.navigation_order),
        navigation_sort_value(resource.navigation_label),
      ]
    end
end

#resourcesObject



12
13
14
15
16
# File 'lib/terrazzo/namespace.rb', line 12

def resources
  routes_for_namespace.map do |route|
    Resource.new(route)
  end.uniq(&:resource_name)
end

#resources_with_index_routeObject



18
19
20
21
22
# File 'lib/terrazzo/namespace.rb', line 18

def resources_with_index_route
  routes_for_namespace.select do |route|
    route.defaults[:action] == "index"
  end.map { |route| Resource.new(route) }.uniq(&:controller_path)
end