Sha256: 8d32c585ddd6a322490f1d16a755651143cbefc3b62f3c77440629a88c18bc82

Contents?: true

Size: 917 Bytes

Versions: 255

Compression:

Stored size: 917 Bytes

Contents

module Avo
  module Fields
    module Concerns
      module ItemLabels
        extend ActiveSupport::Concern

        def value_for_item(item)
          if @field.acts_as_taggable_on.present?
            item["value"]
          else
            item
          end
        end

        def label_from_item(item)
          value = value_for_item item

          if suggestions_are_a_hash?
            return suggestions_by_id[value.to_s][:label] if suggestions_by_id[value.to_s].present?
          end
          value
        end

        def suggestions_by_id
          return {} unless suggestions_are_a_hash?

          @field.suggestions.map do |suggestion|
            [suggestion[:value].to_s, suggestion]
          end.to_h
        end

        def suggestions_are_a_hash?
          return false if @field.suggestions.blank?

          @field.suggestions.first.is_a? Hash
        end
      end
    end
  end
end

Version data entries

255 entries across 255 versions & 1 rubygems

Version Path
avo-2.53.0 app/components/avo/fields/concerns/item_labels.rb
avo-2.52.0 app/components/avo/fields/concerns/item_labels.rb
avo-3.9.2 app/components/avo/fields/concerns/item_labels.rb
avo-3.9.1 app/components/avo/fields/concerns/item_labels.rb
avo-3.8.2 app/components/avo/fields/concerns/item_labels.rb
avo-3.9.0 app/components/avo/fields/concerns/item_labels.rb
avo-3.8.1 app/components/avo/fields/concerns/item_labels.rb
avo-3.8.0 app/components/avo/fields/concerns/item_labels.rb
avo-3.6.4 app/components/avo/fields/concerns/item_labels.rb
avo-3.6.3 app/components/avo/fields/concerns/item_labels.rb
avo-3.6.2 app/components/avo/fields/concerns/item_labels.rb
avo-2.49.0 app/components/avo/fields/concerns/item_labels.rb
avo-3.6.1 app/components/avo/fields/concerns/item_labels.rb
avo-3.6.0 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.8 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.7 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.6 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.6.beta1 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.5 app/components/avo/fields/concerns/item_labels.rb
avo-3.5.4 app/components/avo/fields/concerns/item_labels.rb