Class: Primer::ConditionalWrapper
- Inherits:
-
Component
- Object
- Component
- Primer::ConditionalWrapper
- Defined in:
- app/components/primer/conditional_wrapper.rb
Overview
Conditionally renders a component around the given content. If the given condition is true, the component will render around the content. If the condition is false, only the content is rendered.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(condition:, component: Primer::BaseComponent, **base_component_arguments) ⇒ ConditionalWrapper
constructor
A new instance of ConditionalWrapper.
Constructor Details
#initialize(condition:, component: Primer::BaseComponent, **base_component_arguments) ⇒ ConditionalWrapper
Returns a new instance of ConditionalWrapper.
11 12 13 14 15 16 |
# File 'app/components/primer/conditional_wrapper.rb', line 11 def initialize(condition:, component: Primer::BaseComponent, **base_component_arguments) @condition = condition @component = component @base_component_arguments = base_component_arguments @trim = !!@base_component_arguments.delete(:trim) end |
Instance Method Details
#call ⇒ Object
18 19 20 21 22 23 24 |
# File 'app/components/primer/conditional_wrapper.rb', line 18 def call unless @condition return @trim ? trimmed_content : content end @component.new(trim: @trim, **@base_component_arguments).render_in(self) { content } end |