Sha256: 2834427d847951f22c897fa7e26f4f5b0fbce0cecc05556cfc3f3a42772b4739

Contents?: true

Size: 1.05 KB

Versions: 147

Compression:

Stored size: 1.05 KB

Contents

module GovukPublishingComponents
  module Presenters
    class SelectHelper
      attr_reader :options, :option_markup, :selected_option

      def initialize(options)
        @options = options
        @option_markup = get_options
      end

      def data_tracking?
        @options.any? { |item| item[:data_attributes] && item[:data_attributes][:track_category] && item[:data_attributes][:track_action] }
      end

    private

      def get_options
        return if options.nil?

        options.map { |option|
          @selected_option = option[:value] if option[:selected]
          [
            option[:text],
            option[:value],
            options_data_attribute(option[:data_attributes])
          ]
        }
      end

      def options_data_attribute(attributes)
        return {} if attributes.nil?

        attrs = {}
        attributes.each do |key, value|
          key_name = "data-#{key.to_s.split('_').join('-')}"
          attrs[key_name] = value.is_a?(Hash) ? value.to_json : value
        end

        attrs
      end
    end
  end
end

Version data entries

147 entries across 147 versions & 1 rubygems

Version Path
govuk_publishing_components-21.17.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.16.3 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.16.2 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.16.1 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.16.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.15.2 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.15.1 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.15.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.14.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.5 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.4 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.3 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.2 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.1 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.13.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.12.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.11.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.10.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.9.0 lib/govuk_publishing_components/presenters/select.rb
govuk_publishing_components-21.8.1 lib/govuk_publishing_components/presenters/select.rb