Sha256: 63ba0a8be24439dd675e590872f0f13a5585ef42827ffe9f0cdd60fbb378b0fd

Contents?: true

Size: 868 Bytes

Versions: 5

Compression:

Stored size: 868 Bytes

Contents

module GOVUKDesignSystemFormBuilder
  module Elements
    class Caption < Base
      include Traits::Localisation

      def initialize(builder, object_name, attribute_name, text:, size: nil)
        super(builder, object_name, attribute_name)

        @text       = text(text)
        @size_class = size_class(size)
      end

      def html
        return nil if @text.blank?

        tag.span(@text, class: @size_class)
      end

    private

      def text(override)
        override || localised_text(:caption)
      end

      def size_class(size)
        case size || config.default_caption_size
        when 'xl' then %(#{brand}-caption-xl)
        when 'l'  then %(#{brand}-caption-l)
        when 'm'  then %(#{brand}-caption-m)
        else
          fail ArgumentError, "invalid size '#{size}', must be xl, l or m"
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
govuk_design_system_formbuilder-1.2.9 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.0.0b1 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-1.2.7 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-1.2.6 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-1.2.5 lib/govuk_design_system_formbuilder/elements/caption.rb