72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/roda/plugins/components.rb', line 72
def component(name, opts = {}, &block)
name = name.to_s
component_request = ComponentRequest.new(self, self.class, name, opts, block)
content = catch :halt do
if setup_component = self.class.load_setup_component(name)
instance_exec(component_request, &setup_component)
end
opts[:call] ||= 'display'
instance_exec(component_request, &self.class.load_component(name))
raise "Couldn't find on method `#{opts[:call]}`, for the `#{name}` component."
end
component_request.trigger_events
content
end
|