Class: Primer::ConditionalWrapper
- Defined in:
- app/components/primer/conditional_wrapper.rb
Overview
Conditionally renders a ‘Primer::BaseComponent` around the given content. If the given condition is true, a `Primer::BaseComponent` will render around the content. If the condition is false, only the content is rendered.
Constant Summary
Constants inherited from Component
Primer::Component::INVALID_ARIA_LABEL_TAGS
Constants included from Status::Dsl
Constants included from ViewHelper
Constants included from TestSelectorHelper
TestSelectorHelper::TEST_SELECTOR_TAG
Constants included from FetchOrFallbackHelper
FetchOrFallbackHelper::InvalidValueError
Constants included from AttributesHelper
AttributesHelper::PLURAL_ARIA_ATTRIBUTES, AttributesHelper::PLURAL_DATA_ATTRIBUTES
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(condition:, **base_component_arguments) ⇒ ConditionalWrapper
constructor
A new instance of ConditionalWrapper.
Methods inherited from Component
Methods included from JoinStyleArgumentsHelper
Methods included from TestSelectorHelper
Methods included from FetchOrFallbackHelper
#fetch_or_fallback, #fetch_or_fallback_boolean, #silence_deprecations?
Methods included from ClassNameHelper
Methods included from AttributesHelper
#aria, #data, #extract_data, #merge_aria, #merge_data, #merge_prefixed_attribute_hashes
Methods included from ExperimentalSlotHelpers
Methods included from ExperimentalRenderHelpers
Constructor Details
#initialize(condition:, **base_component_arguments) ⇒ ConditionalWrapper
Returns a new instance of ConditionalWrapper.
10 11 12 13 14 |
# File 'app/components/primer/conditional_wrapper.rb', line 10 def initialize(condition:, **base_component_arguments) @condition = condition @base_component_arguments = base_component_arguments @trim = !!@base_component_arguments.delete(:trim) end |
Instance Method Details
#call ⇒ Object
16 17 18 19 20 21 22 |
# File 'app/components/primer/conditional_wrapper.rb', line 16 def call unless @condition return @trim ? trimmed_content : content end BaseComponent.new(trim: @trim, **@base_component_arguments).render_in(self) { content } end |