Class: Pulse::Counter
- Inherits:
-
Component
- Object
- Component
- Pulse::Counter
- Defined in:
- app/components/pulse/counter.rb
Overview
Use Counter to add a count to navigational elements and buttons.
Constant Summary collapse
- DEFAULT_SCHEME =
:default- SCHEME_MAPPINGS =
{ DEFAULT_SCHEME => '', :primary => 'Counter--primary', :secondary => 'Counter--secondary', # deprecated :gray => 'Counter--primary', :light_gray => 'Counter--secondary' }.freeze
- DEPRECATED_SCHEME_OPTIONS =
[:gray, :light_gray].freeze
- SCHEME_OPTIONS =
(SCHEME_MAPPINGS.keys - DEPRECATED_SCHEME_OPTIONS).freeze
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(count: 0, scheme: DEFAULT_SCHEME, limit: 5_000, hide_if_zero: false, text: '', round: false, **system_arguments) ⇒ Counter
constructor
A new instance of Counter.
Constructor Details
#initialize(count: 0, scheme: DEFAULT_SCHEME, limit: 5_000, hide_if_zero: false, text: '', round: false, **system_arguments) ⇒ Counter
Returns a new instance of Counter.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/components/pulse/counter.rb', line 30 def initialize( count: 0, scheme: DEFAULT_SCHEME, limit: 5_000, hide_if_zero: false, text: '', round: false, **system_arguments ) @count = count @limit = limit @hide_if_zero = hide_if_zero @text = text @round = round @system_arguments = deny_tag_argument(**system_arguments) @has_limit = !@limit.nil? @system_arguments[:title] = title @system_arguments[:tag] = :span @system_arguments[:classes] = merge_classes( 'Counter', @system_arguments[:classes], SCHEME_MAPPINGS[fetch_or_fallback( SCHEME_OPTIONS, scheme, DEFAULT_SCHEME )] ) @system_arguments[:hidden] = true if count.zero? && hide_if_zero end |
Instance Method Details
#call ⇒ Object
61 62 63 |
# File 'app/components/pulse/counter.rb', line 61 def call render(Pulse::BaseComponent.new(**@system_arguments)) { value } end |