Class: Spider::DataTypes::Decimal

Inherits:
BigDecimal
  • Object
show all
Includes:
Spider::DataType
Defined in:
lib/spiderfw/model/datatypes/decimal.rb

Overview

A wrapper around BigDecimal. Takes the :scale attribute.

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Spider::DataType

#format, included, #map, #new

Class Method Details

.from_value(value) ⇒ Object



15
16
17
18
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 15

def self.from_value(value)
    return nil if value.nil?
    super(value.to_s)
end

Instance Method Details

#as_jsonObject



29
30
31
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 29

def as_json
    to_f
end

#attributesObject



37
38
39
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 37

def attributes
    {:scale => 2}.merge(super)
end

#prepareObject



20
21
22
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 20

def prepare
    self.class.from_value(self.round(attributes[:scale] || 2))
end

#to_json(options = nil) ⇒ Object



33
34
35
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 33

def to_json(options=nil)
    to_f.to_json
end

#to_s(s = nil) ⇒ Object



24
25
26
27
# File 'lib/spiderfw/model/datatypes/decimal.rb', line 24

def to_s(s=nil)
    s ||= "#{attributes[:scale]}F"
    super(s)
end