Sha256: ee1218bb580b43b66f76285acfcd3c019809f5be37faf9bd927c87530eb5da27

Contents?: true

Size: 997 Bytes

Versions: 18

Compression:

Stored size: 997 Bytes

Contents

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

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

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

      def html
        return nil unless active?

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

    private

      def active?
        @text.present?
      end

      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

18 entries across 18 versions & 1 rubygems

Version Path
govuk_design_system_formbuilder-2.3.0b1 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.2.0 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.9 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.8 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.7 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.7b2 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.7b1 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.6 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.5 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.4 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.3 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.2 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.1 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.1.0 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.0.0 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.0.0b4 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.0.0b3 lib/govuk_design_system_formbuilder/elements/caption.rb
govuk_design_system_formbuilder-2.0.0b2 lib/govuk_design_system_formbuilder/elements/caption.rb