class ViewComponentReflex::ReflexFactory
Public Class Methods
new(component)
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 3 def initialize(component) @component = component @new = false reflex.component_class = component end
Public Instance Methods
nested?()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 9 def nested? @nested ||= @component.name.include?("::") end
new?()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 21 def new? @new end
reflex()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 25 def reflex @reflex ||= if nested? reflex_from_nested_component else reflex_from_component end end
reflex_from_component()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 52 def reflex_from_component if Object.const_defined?(reflex_name) Object.const_get(reflex_name) else @new = true Object.const_set(reflex_name, reflex_instance) end end
reflex_from_nested_component()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 37 def reflex_from_nested_component parent = if @component.respond_to? :module_parent @component.module_parent else @component.parent end if parent.const_defined?(reflex_name) parent.const_get(reflex_name) else @new = true parent.const_set(reflex_name, reflex_instance) end end
reflex_instance()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 33 def reflex_instance @reflex_instance ||= Class.new(@component.reflex_base_class) end
reflex_name()
click to toggle source
# File lib/view_component_reflex/reflex_factory.rb, line 13 def reflex_name @reflex_name ||= if nested? @component.name.split("::").last else @component.name end + "Reflex" end