Sha256: 1ee0b6a071ec245ecadad6096a255ef52b003753be087770335d174da9ce41f5

Contents?: true

Size: 729 Bytes

Versions: 12

Compression:

Stored size: 729 Bytes

Contents

# frozen_string_literal: true

module Fields
  class MultipleSelectFieldPresenter < FieldPresenter
    MAX_HARD_CODE_ITEMS_SIZE = 20

    def include_blank?
      required?
    end

    def value_for_preview
      super&.join(", ")
    end

    def can_custom_value?
      !@model.options.strict_select
    end

    def collection
      collection = @model.choices.map(&:label)
      if can_custom_value? && value.present?
        (value + collection).uniq
      else
        collection
      end
    end

    def options_for_select
      @view.options_for_select(collection, value)
    end

    def max_items_size
      size = @model.validations.length.maximum
      size > 0 ? size : MAX_HARD_CODE_ITEMS_SIZE
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
script_core-0.3.2 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.3.0 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.7 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.6 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.5 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.4 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.3 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.2 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.1 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.2.0 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.1.1 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb
script_core-0.1.0 spec/dummy/app/presenters/fields/multiple_select_field_presenter.rb