Module: ActiveComponent

Defined in:
lib/active_component/context.rb,
lib/active_component.rb,
lib/active_component/base.rb,
lib/active_component/railtie.rb,
lib/active_component/version.rb,
lib/active_component/renderable.rb

Overview

This provides a clean implementation for rendering your template inside your view.

<%= render_component(:view, var: var) %>

In addition to that you can render a collection of components using the same helper method

<%= render_component(:view, collection: views, as: :view)%>

The :as argument helps you to provide the instance variable name that you defined int your component class and it will be received like that.

Defined Under Namespace

Modules: Context, Renderable Classes: Base, Railtie

Constant Summary collapse

VERSION =
"0.1.3"
@@controllers =
{}

Class Method Summary collapse

Class Method Details

.controllersObject



20
21
22
23
24
25
26
# File 'lib/active_component/context.rb', line 20

def controllers
  if Rails.env.test?
    @@controllers
  else
    puts "WARNING: ActiveComponent#controllers cannot be accessible from outside of the class"
  end
end

.get_controllerObject



28
29
30
# File 'lib/active_component/context.rb', line 28

def get_controller
  @@controllers[Thread.current.object_id]
end

.set_controller(controller) ⇒ Object



32
33
34
35
# File 'lib/active_component/context.rb', line 32

def set_controller(controller)
  @@controllers[Thread.current.object_id] = controller
  ObjectSpace.define_finalizer Thread.current, lambda { |id| @@controllers[id].delete! }
end