Sha256: 5dd2dc2c8b9a3d525a3397a2a919e664a79dddddca293b7c8e07aa1b9812c1d7

Contents?: true

Size: 925 Bytes

Versions: 23

Compression:

Stored size: 925 Bytes

Contents

module Spree
  class Calculator < ActiveRecord::Base
    belongs_to :calculable, polymorphic: true

    # This method must be overriden in concrete calculator.
    #
    # It should return amount computed based on #calculable and/or optional parameter
    def compute(something = nil)
      raise NotImplementedError, 'please use concrete calculator'
    end

    # overwrite to provide description for your calculators
    def self.description
      'Base Calculator'
    end

    ###################################################################

    def self.register(*klasses)
    end

    # Returns all calculators applicable for kind of work
    def self.calculators
      Rails.application.config.spree.calculators
    end

    def to_s
      self.class.name.titleize.gsub("Calculator\/", "")
    end

    def description
      self.class.description
    end

    def available?(object)
      true
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
spree_core-2.1.12 app/models/spree/calculator.rb
spree_core-2.1.11 app/models/spree/calculator.rb
spree_core-2.1.10 app/models/spree/calculator.rb
spree_core-2.0.13 app/models/spree/calculator.rb
spree_core-2.1.9 app/models/spree/calculator.rb
spree_core-2.1.8 app/models/spree/calculator.rb
spree_core-2.0.12 app/models/spree/calculator.rb
spree_core-2.1.7 app/models/spree/calculator.rb
spree_core-2.0.11 app/models/spree/calculator.rb
spree_core-2.0.10 app/models/spree/calculator.rb
spree_core-2.1.6 app/models/spree/calculator.rb
spree_core-2.1.5 app/models/spree/calculator.rb
spree_core-2.0.9 app/models/spree/calculator.rb
spree_core-2.1.4 app/models/spree/calculator.rb
spree_core-2.0.8 app/models/spree/calculator.rb
spree_core-2.1.3 app/models/spree/calculator.rb
spree_core-2.0.7 app/models/spree/calculator.rb
spree_core-2.1.2 app/models/spree/calculator.rb
spree_core-2.0.6 app/models/spree/calculator.rb
spree_core-2.1.1 app/models/spree/calculator.rb