Class: React::TopLevelRailsComponent
Instance Attribute Summary
Attributes included from Component
#waiting_on_resources
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Component
#_render_wrapper, #component_did_mount, #component_did_update, #component_will_mount, #component_will_receive_props, #component_will_unmount, #component_will_update, #define_state, #deprecated_params_method, deprecation_warning, #emit, included, #initialize, #update_react_js_state, #watch
Class Method Details
.search_path ⇒ Object
5
6
7
|
# File 'lib/rails-helpers/top_level_rails_component.rb', line 5
def self.search_path
@search_path ||= [Module]
end
|
Instance Method Details
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/rails-helpers/top_level_rails_component.rb', line 17
def render
paths_searched = []
if params.component_name.start_with? "::"
paths_searched << params.component_name.gsub(/^\:\:/,"")
component = params.component_name.gsub(/^\:\:/,"").split("::").inject(Module) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
return present component, params.render_params if component && component.method_defined?(:render)
else
self.class.search_path.each do |path|
paths_searched << "#{path.name + '::' unless path == Module}#{params.controller}::#{params.component_name}"
component = "#{params.controller}::#{params.component_name}".split("::").inject(path) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
return present component, params.render_params if component && component.method_defined?(:render)
end
self.class.search_path.each do |path|
paths_searched << "#{path.name + '::' unless path == Module}#{params.component_name}"
component = "#{params.component_name}".split("::").inject(path) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
return present component, params.render_params if component && component.method_defined?(:render)
end
end
raise "Could not find component class '#{params.component_name}' for params.controller '#{params.controller}' in any component directory. Tried [#{paths_searched.join(", ")}]"
end
|