Sha256: 59bfa4164211d67142a6740310f2deaa09f6123f360eac9edf0e9a0cefd69148

Contents?: true

Size: 682 Bytes

Versions: 3

Compression:

Stored size: 682 Bytes

Contents

# frozen_string_literal: true

module Spree
  module OrderedPropertyValueList
    extend ActiveSupport::Concern

    included do
      validates :property, presence: true
      validates_with Spree::Validations::DbMaximumLengthValidator, field: :value

      default_scope -> { order(:position) }
    end

    # virtual attributes for use with AJAX autocompletion
    def property_name
      property.name if property
    end

    def property_name=(name)
      unless name.blank?
        unless property = Spree::Property.find_by(name:)
          property = Spree::Property.create(name:, presentation: name)
        end
        self.property = property
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
solidus_core-4.4.2 app/models/concerns/spree/ordered_property_value_list.rb
solidus_core-4.4.1 app/models/concerns/spree/ordered_property_value_list.rb
solidus_core-4.4.0 app/models/concerns/spree/ordered_property_value_list.rb