class XapianDb::TypeCodec::NumberCodec
Public Class Methods
Source
# File lib/type_codec.rb 161 def self.decode(encoded_number) 162 begin 163 BigDecimal(Xapian::sortable_unserialise(encoded_number).to_s) 164 rescue TypeError 165 raise ArgumentError.new "#{encoded_number} cannot be unserialized" 166 end 167 end
Decode a string to a BigDecimal @param [String] number_as_string a string representing a number @return [BigDecimal] the decoded number
Source
# File lib/type_codec.rb 147 def self.encode(number) 148 case number.class.name 149 when "Fixnum", "Float", "Bignum", "Integer" 150 Xapian::sortable_serialise number 151 when "BigDecimal" 152 Xapian::sortable_serialise number.to_f 153 else 154 raise ArgumentError.new "#{number} was expected to be a number" 155 end 156 end
Encode a number to a sortable string @param [Integer, BigDecimal, Bignum, Float] number a number object to encode @return [String] the encoded number