Sha256: 8a4b9ce31e535806c686d9ec7eb9618a8f410871a641f911869d9c880410840e

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module BottleRocket
  module TagBuilders

    class UnitSeparatorBuilder
      include ::BottleRocket::ContentTags

      DEFAULT_ALIGN       = :after
      DEFAULT_SINGULARIZE = false

      attr_reader :unit, :value, :align, :singular, :singularize

      def initialize(unit, options={})
        @unit        = unit
        @value       = options.delete(:value)
        @align       = options.delete(:align) || DEFAULT_ALIGN
        @singular    = options.delete(:singular)
        @singularize = options.delete(:singularize) || DEFAULT_SINGULARIZE
      end

      def attributes
        { :class => "separator #{unit}", :'data-singular' => (singular || value), :'data-plural' => value }
      end

      def after?
        @align == DEFAULT_ALIGN
      end

      def before?
        !after?
      end

      def singularize_value
        singular && singularize ? singular : value
      end

      def to_html
        ContentTag.new(:span, attributes).to_s do
          singularize_value.to_s
        end
      end

    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bottle_rocket-0.0.1 lib/bottle_rocket/tag_builders/unit_separator_builder.rb