Module: Perron::Site::Builder::RouteResources

Included in:
Paths, Sitemap
Defined in:
lib/perron/site/builder/route_resources.rb

Instance Method Summary collapse

Instance Method Details

#buildable_routesObject



7
8
9
10
11
12
# File 'lib/perron/site/builder/route_resources.rb', line 7

def buildable_routes
  Rails.application.routes.routes.select do |route|
    route.defaults[:controller]&.start_with?("content/") &&
      %w[index show].include?(route.defaults[:action])
  end
end

#collection_for(route) ⇒ Object



27
28
29
30
31
32
33
34
35
# File 'lib/perron/site/builder/route_resources.rb', line 27

def collection_for(route)
  collection = standard_collection(route)
  return collection if collection

  collection = parent_collection(route)
  return collection if collection

  constraint_collection(route)
end

#resources_for(route) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/perron/site/builder/route_resources.rb', line 14

def resources_for(route)
  constraint_resources = constraint_resources_from(route)
  return constraint_resources if constraint_resources.any?

  collection = collection_for(route)
  return [] unless collection

  resources = collection.send(:load_resources).select(&:buildable?)
  constraint = route.path.requirements[:id]

  constraint.is_a?(Regexp) ? resources.select { constraint.match?(it.to_param) } : resources
end