Sha256: 0f72112c26033fbf5a109b1667a56605ed4541ea2fc1b8e860409f6ddffdd32a

Contents?: true

Size: 856 Bytes

Versions: 42

Compression:

Stored size: 856 Bytes

Contents

require "bigdecimal"

module Spider; module DataTypes

    # A wrapper around BigDecimal.
    # Takes the :scale attribute.

    class Decimal < BigDecimal
        include DataType

        #maps_back_to superclass
        
        take_attributes :scale
        
        def self.from_value(value)
            return nil if value.nil?
            super(value.to_s)
        end
        
        def prepare
            self.class.from_value(self.round(attributes[:scale] || 2))
        end
        
        def to_s(s=nil)
            s ||= "#{attributes[:scale]}F"
            super(s)
        end
        
        def as_json
            to_f
        end
        
        def to_json(options=nil)
            to_f.to_json
        end
        
        def attributes
            {:scale => 2}.merge(super)
        end
        


    end
    
    
end; end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
spiderfw-1.0.1 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-1.0.0 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.39 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.38 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.37 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.35 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.34 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.33 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.32 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.31 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.30 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.29 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.28 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.27 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.26 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.26.pre1 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.25 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.24 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.23 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.6.22 lib/spiderfw/model/datatypes/decimal.rb