Sha256: 03eeed8ed4c840f4731882a523ee12ce38742c25901c7c920b260ac40f2bd553

Contents?: true

Size: 1.91 KB

Versions: 146

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true

module Playbook
  module PbCurrency
    class Currency
      include ActionView::Context
      include Playbook::Props

      partial "pb_currency/currency"

      prop :align, type: Playbook::Props::Enum,
                   values: %w[left center right],
                   default: "left"

      prop :size, type: Playbook::Props::Enum,
                  values: %w[lg md sm],
                  default: "md"

      prop :label, type: Playbook::Props::String,
                   default: ""

      prop :symbol, type: Playbook::Props::String,
                    default: "$"

      prop :amount, type: Playbook::Props::String,
                    required: true

      prop :unit, type: Playbook::Props::String,
                  required: false

      prop :dark, type: Playbook::Props::Boolean,
                  default: false

      def classname
        generate_classname("pb_currency_kit", align, size, dark_class)
      end

      def currency_wrapper_props
        {
          classname: "dollar_sign",
          color: "light",
          dark: dark,
        }
      end

      def title_props
        {
          size: size_value,
          text: whole_value,
          classname: "pb_currency_value",
          dark: dark,
        }
      end

      def body_props
        {
          text: units_element,
          color: "light",
          classname: "unit",
          dark: dark,
        }
      end

    private

      def whole_value
        amount.split(".").first.to_s
      end

      def units_element
        _, decimal_part = amount.split(".")
        if unit.nil?
          decimal_part.nil? ? ".00" : ".#{decimal_part}"
        else
          unit
        end
      end

      def size_value
        case size
        when "lg"
          1
        when "md"
          3
        else
          4
        end
      end

      def dark_class
        dark ? "dark" : nil
      end
    end
  end
end

Version data entries

146 entries across 146 versions & 1 rubygems

Version Path
playbook_ui-7.8.4 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.8.3 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.8.2 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.8.1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.8.0 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.7.0.pre.alpha1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.7.0 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.6.2.pre.alpha1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.6.2 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.6.1.pre.alpha1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.6.1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.6.0 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.5.1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.5.0 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.2 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.1 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.0.pre.alpha6 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.0.pre.alpha5 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.0 app/pb_kits/playbook/pb_currency/currency.rb
playbook_ui-7.4.0.pre.test4 app/pb_kits/playbook/pb_currency/currency.rb