module Roda::RodaPlugins::Components::ClassMethods
Public Instance Methods
component(name, events = [], &block)
click to toggle source
# File lib/roda/plugins/components.rb, line 36 def component(name, events = [], &block) name = name.to_s cache[:components][name] = block cache[:events][name] ||= {} events.each do |event| if event.is_a? String event_array = cache[:events][name][event] ||= [] event_array << { component: name, call: event } elsif event.is_a? Hash for_component = event[:for].to_s response_to = event[:respond_to].to_s call_with = event[:with] event_array = cache[:events][for_component || name][response_to] ||= [] event_array << { component: name, call: call_with || response_to } end end end
components()
click to toggle source
# File lib/roda/plugins/components.rb, line 28 def components cache[:components].keys end
components_opts()
click to toggle source
# File lib/roda/plugins/components.rb, line 24 def components_opts opts[:components] end
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/roda/plugins/components.rb, line 19 def inherited(subclass) super opts.merge! subclass.opts[:components] end
load_component(name)
click to toggle source
# File lib/roda/plugins/components.rb, line 32 def load_component name cache[:components][name] end
load_setup_component(name)
click to toggle source
# File lib/roda/plugins/components.rb, line 56 def load_setup_component name cache[:components]["_setup_#{name}"] end
setup_component(name, &block)
click to toggle source
# File lib/roda/plugins/components.rb, line 60 def setup_component(name, &block) cache[:components]["_setup_#{name}"] = block end
Private Instance Methods
cache()
click to toggle source
# File lib/roda/plugins/components.rb, line 66 def cache components_opts[:cache] end