Class: RailsReactComponents::Component
Instance Method Summary
collapse
html_option, html_options, id, prop
Constructor Details
#initialize(methods = {}) ⇒ Component
Returns a new instance of Component.
10
11
12
|
# File 'lib/rails_react_components/component.rb', line 10
def initialize(methods = {})
@_methods = methods
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
14
15
16
17
18
19
20
|
# File 'lib/rails_react_components/component.rb', line 14
def method_missing(method_name, *args)
if respond_to_missing?(method_name)
_methods[method_name]
else
super
end
end
|
Instance Method Details
#component ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'lib/rails_react_components/component.rb', line 50
def component
@component ||= \
if self.class.component.is_a?(Symbol)
send(self.class.component)
else
self.class.component
end
end
|
#component_options ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/rails_react_components/component.rb', line 26
def component_options
{
props: props,
id: self.class.id,
html_options: self.class.html_options,
trace: self.class.trace?,
replay_console: self.class.replay_console?,
raise_on_prerender_error: self.class.raise_on_prerender_error?,
prerender: self.class.prerender?
}
end
|
#props ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/rails_react_components/component.rb', line 38
def props
@props ||= {}.tap do |props_hash|
self.class.props.each do |prop|
prop_data = prop.build(self)
if prop.include_blank? || prop_data.present?
props_hash[prop.name] = prop_data
end
end
end
end
|
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
22
23
24
|
# File 'lib/rails_react_components/component.rb', line 22
def respond_to_missing?(method_name, include_private = false)
_methods.key?(method_name.to_sym) || super
end
|