Sha256: bd89214ef38b6500b02bd2825fc70dfc347c8e8e741fa6e5b76ec6255bcdafe5

Contents?: true

Size: 677 Bytes

Versions: 42

Compression:

Stored size: 677 Bytes

Contents

require 'spree/core/class_constantizer'

module Spree
  module Core
    module EnvironmentExtension
      extend ActiveSupport::Concern

      class_methods do
        def add_class_set(name)
          define_method(name) do
            set = instance_variable_get("@#{name}")
            set = send("#{name}=", []) unless set
            set
          end

          define_method("#{name}=") do |klasses|
            set = ClassConstantizer::Set.new
            set.concat(klasses)
            instance_variable_set("@#{name}", set)
          end
        end
      end

      def add_class(name)
        singleton_class.send(:add_class_set, name)
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
solidus_core-2.5.2 lib/spree/core/environment_extension.rb
solidus_core-2.5.1 lib/spree/core/environment_extension.rb
solidus_core-2.5.0 lib/spree/core/environment_extension.rb
solidus_core-2.5.0.rc1 lib/spree/core/environment_extension.rb
solidus_core-2.5.0.beta2 lib/spree/core/environment_extension.rb
solidus_core-2.5.0.beta1 lib/spree/core/environment_extension.rb
solidus_core-2.4.2 lib/spree/core/environment_extension.rb
solidus_core-2.3.1 lib/spree/core/environment_extension.rb
solidus_core-2.4.1 lib/spree/core/environment_extension.rb
solidus_core-2.2.2 lib/spree/core/environment_extension.rb
solidus_core-2.1.1 lib/spree/core/environment_extension.rb
solidus_core-2.0.3 lib/spree/core/environment_extension.rb
solidus_core-1.4.2 lib/spree/core/environment_extension.rb
solidus_core-1.3.2 lib/spree/core/environment_extension.rb
solidus_core-2.4.0 lib/spree/core/environment_extension.rb
solidus_core-2.4.0.rc1 lib/spree/core/environment_extension.rb
solidus_core-2.4.0.beta1 lib/spree/core/environment_extension.rb
solidus_core-2.3.0 lib/spree/core/environment_extension.rb
solidus_core-2.3.0.rc3 lib/spree/core/environment_extension.rb
solidus_core-2.3.0.rc2 lib/spree/core/environment_extension.rb