Sha256: 0162cb0e705f1927b1cb845482050001d0781ba0e628f92a03edb52dfba43204

Contents?: true

Size: 836 Bytes

Versions: 16

Compression:

Stored size: 836 Bytes

Contents

module Spree
  module DependenciesHelper
    def self.included(base)
      injection_points = base::INJECTION_POINTS_WITH_DEFAULTS.keys.freeze
      base.const_set(:INJECTION_POINTS, injection_points)
      base.attr_accessor(*injection_points)
    end

    def initialize
      set_default_values
    end

    def current_values
      values = []
      self.class::INJECTION_POINTS.each do |injection_point|
        values << { injection_point.to_s => instance_variable_get("@#{injection_point}") }
      end
      values
    end

    private

    def set_default_values
      self.class::INJECTION_POINTS_WITH_DEFAULTS.each do |injection_point, default_value|
        value = default_value.respond_to?(:call) ? default_value.call : default_value
        instance_variable_set("@#{injection_point}", value)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
spree_core-4.10.1 lib/spree/core/dependencies_helper.rb
spree_core-4.10.0 lib/spree/core/dependencies_helper.rb
spree_core-4.9.0 lib/spree/core/dependencies_helper.rb
spree_core-4.8.3 lib/spree/core/dependencies_helper.rb
spree_core-4.8.2 lib/spree/core/dependencies_helper.rb
spree_core-4.7.3 lib/spree/core/dependencies_helper.rb
spree_core-4.6.6 lib/spree/core/dependencies_helper.rb
spree_core-4.6.5 lib/spree/core/dependencies_helper.rb
spree_core-4.7.2 lib/spree/core/dependencies_helper.rb
spree_core-4.7.1 lib/spree/core/dependencies_helper.rb
spree_core-4.6.4 lib/spree/core/dependencies_helper.rb
spree_core-4.7.0 lib/spree/core/dependencies_helper.rb
spree_core-4.6.3 lib/spree/core/dependencies_helper.rb
spree_core-4.6.2 lib/spree/core/dependencies_helper.rb
spree_core-4.6.1 lib/spree/core/dependencies_helper.rb
spree_core-4.6.0 lib/spree/core/dependencies_helper.rb