class GovukPublishingComponents::Presenters::SelectHelper

Attributes

option_markup[R]
options[R]
selected_option[R]

Public Class Methods

new(options) click to toggle source
# File lib/govuk_publishing_components/presenters/select.rb, line 6
def initialize(options)
  @options = options
  @option_markup = get_options
end

Public Instance Methods

data_tracking?() click to toggle source
# File lib/govuk_publishing_components/presenters/select.rb, line 11
def data_tracking?
  @options.any? { |item| item[:data_attributes] && item[:data_attributes][:track_category] && item[:data_attributes][:track_action] }
end

Private Instance Methods

get_options() click to toggle source
# File lib/govuk_publishing_components/presenters/select.rb, line 17
def get_options
  return if options.nil?

  options.map do |option|
    @selected_option = option[:value] if option[:selected]
    [
      option[:text],
      option[:value],
      options_data_attribute(option[:data_attributes]),
    ]
  end
end
options_data_attribute(attributes) click to toggle source
# File lib/govuk_publishing_components/presenters/select.rb, line 30
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