class Para::Routing::ComponentControllerConstraint

Attributes

controller[R]

Public Class Methods

components() click to toggle source

Request based components cache

# File lib/para/routing/component_controller_constraint.rb, line 31
def self.components
  RequestStore.store['para.components_by_id'] ||= {}
end
new(controller) click to toggle source
# File lib/para/routing/component_controller_constraint.rb, line 13
def initialize(controller)
  @controller = controller.to_sym
end

Public Instance Methods

matches?(request) click to toggle source
# File lib/para/routing/component_controller_constraint.rb, line 17
def matches?(request)
  component = component_for(request.params[:component_id])
  return false unless component && component.controller
  component.controller.to_sym == controller
end

Private Instance Methods

component_for(component_slug) click to toggle source
# File lib/para/routing/component_controller_constraint.rb, line 25
def component_for(component_slug)
  self.class.components[component_slug] ||= Para::Component::Base.find_by_slug(component_slug)
end