Module: CassandraObject::Types::DecimalType

Defined in:
lib/cassandra_object/types/decimal_type.rb

Class Method Summary collapse

Class Method Details

.decode(value, options = {}) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
# File 'lib/cassandra_object/types/decimal_type.rb', line 11

def decode(value, options={})
  return nil if value.nil?
  value = value.to_s if value.kind_of?(Numeric)
  raise ArgumentError.new("Cannot convert #{value} into a BigDecimal") unless value.kind_of?(String)
  if options[:precision].present?
    BigDecimal.new(value, options[:precision])
  else
    BigDecimal.new(value)
  end
end

.encode(value) ⇒ Object

Raises:

  • (ArgumentError)


4
5
6
7
8
# File 'lib/cassandra_object/types/decimal_type.rb', line 4

def encode(value)
  return nil if value.nil?
  raise ArgumentError.new("#{self} requires a Numeric") unless value.kind_of?(Numeric)
  value.to_s
end