Sha256: 842113284844d80f202ed352cd6f1f26bd99f0205100a224077b889b8973f79e

Contents?: true

Size: 694 Bytes

Versions: 6

Compression:

Stored size: 694 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
        


    end
    
    
end; end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spiderfw-0.5.19 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.5.18 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.5.17 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.5.16 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.5.15 lib/spiderfw/model/datatypes/decimal.rb
spiderfw-0.5.14 lib/spiderfw/model/datatypes/decimal.rb