Class: React::TopLevelRailsComponent
- Includes:
- Component
- Defined in:
- lib/rails-helpers/top_level_rails_component.rb
Instance Attribute Summary
Attributes included from Component
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, #props_changed?, #should_component_update?, #update_react_js_state, #watch
Class Method Details
Instance Method Details
#render ⇒ Object
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| # try each path + params.controller + params.component_name 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| # then try each path + params.component_name 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 |