Sha256: a176b102e162b26599c5e15127412ce27bab096782e516588f307a81cbe703a1

Contents?: true

Size: 762 Bytes

Versions: 1

Compression:

Stored size: 762 Bytes

Contents

module Formulaic
  module Inputs
    class SelectInput < ArrayInput
      def fill
        if has_multiple_select?
          select_options
          true
        else
          false
        end
      end

      private

      def select_options
        value.each { |option| select option, from: label.to_str }
      end

      def has_multiple_select?
        has_select? && select_is_multiple?
      end

      def has_select?
        has_field?(label.to_str, type: "select")
      end

      def select_is_multiple?
        select_element[:multiple].present? &&
          contains_all_options?(select_element.all("option"))
      end

      def select_element
        @select_element ||= find_field(label.to_str, type: "select")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
formulaic-0.4.1 lib/formulaic/inputs/select_input.rb