lib/rest_model/serialization/integer.rb in rest_model-0.2.1 vs lib/rest_model/serialization/integer.rb in rest_model-0.2.3
- old
+ new
@@ -1,12 +1,12 @@
class RestModel
module Serialization
class Integer
- def self.serialize(value)
+ def self.serialize(value, options = {})
case value
when ::String
- if value =~ /^\d+$/
+ if value =~ /^\-?\d+$/
value.to_i
else
raise
end
else
@@ -14,11 +14,13 @@
end
rescue
raise SerializationError, "value '#{value}' is not an integer"
end
- def self.desserialize(value)
- serialize(value)
+ def self.desserialize(value, options = {})
+ length = options.fetch(:padding_zeros, 0)
+ return serialize(value) if length == 0
+ serialize(value).to_s.rjust(length, "0")
end
end
end
end