Sha256: f08eec5468414c7eee5a81c67eb7120f2b5db2b207c5ea2777c4d443dd930bd7

Contents?: true

Size: 748 Bytes

Versions: 6

Compression:

Stored size: 748 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, 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, type: "select")
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
formulaic-0.4.0 lib/formulaic/inputs/select_input.rb
formulaic-0.3.0 lib/formulaic/inputs/select_input.rb
formulaic-0.2.0 lib/formulaic/inputs/select_input.rb
formulaic-0.1.4 lib/formulaic/inputs/select_input.rb
formulaic-0.1.3 lib/formulaic/inputs/select_input.rb
formulaic-0.1.2 lib/formulaic/inputs/select_input.rb