class ServerComponent::ComponentRouter

Attributes

components[R]
namespace[R]

Public Class Methods

new(namespace = nil) click to toggle source
# File lib/server_component/component_router.rb, line 7
def initialize(namespace = nil)
  @namespace = namespace
  @components = []
end

Public Instance Methods

add_component(name) click to toggle source
# File lib/server_component/component_router.rb, line 22
def add_component(name)
  @components << name.to_sym
end
context_script() click to toggle source
# File lib/server_component/component_router.rb, line 26
def context_script
  ServerComponent.context_script
end
to_json() click to toggle source
# File lib/server_component/component_router.rb, line 12
def to_json
  h = {}
  h[:components] = components.each_with_object({}) do |component, json|
    component_controller_class = find_component_controller_class(component)
    json[component] = component_controller_class.to_json
  end
  h[:context_script] = context_script
  h
end

Protected Instance Methods

find_component_controller_class(component) click to toggle source
# File lib/server_component/component_router.rb, line 32
def find_component_controller_class(component)
  name = (namespace ? "#{namespace}/#{component}" : component).to_s
  "#{name.camelize}ComponentController".constantize
end