Sha256: 00c2d504a2a7b123721eb2cb01f31c055549406fd8bc50e4095b16314c9be33f
Contents?: true
Size: 1.2 KB
Versions: 3
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Bs5 module Progress class BarComponent < ViewComponent::Base attr_reader :value, :color def initialize(value, label: nil, color: nil, striped: false, animated: false) @value = value @label = label @color = color @striped = striped @animated = animated end def label return unless @label case @label when String @label else "#{value}%" end end def bar_class class_names = %w[progress-bar] class_names << contextual_class class_names << striped_class class_names << animated_class class_names.flatten.uniq.join(' ') end def contextual_class return unless color? "bg-#{color}" end def striped_class return unless striped? 'progress-bar-striped' end def animated_class return unless animated? %w[progress-bar-striped progress-bar-animated] end %i[color striped animated].each do |name| define_method("#{name}?") do !!instance_variable_get("@#{name}") end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bs5-0.0.31 | app/components/bs5/progress/bar_component.rb |
bs5-0.0.30 | app/components/bs5/progress/bar_component.rb |
bs5-0.0.29 | app/components/bs5/progress/bar_component.rb |