class AWS::Record::Model::Attributes::SortableIntegerAttr
def self.check_range number, options
def self.check_range number, options unless options[:range].include?(number) msg = "unable to serialize `#{number}`, falls outside " + "the range #{options[:range]}" raise msg end end
def self.deserialize string_value, options = {}
def self.deserialize string_value, options = {} offset_and_precision(options) do |offset,precision| string_value.to_i - offset end end
def self.offset_and_precision options, &block
def self.offset_and_precision options, &block min = options[:range].first max = options[:range].last offset = min < 0 ? min * -1 : 0 precision = (max + offset).to_s.length yield(offset, precision) end
def self.serialize integer, options = {}
-
(String)
- A serialized representation of the integer.
Options Hash:
(**options)
-
:range
(required, Range
) -- A range that represents the
Parameters:
-
options
(Hash
) -- -
integer
(Integer
) -- The number to serialize.
def self.serialize integer, options = {} expect(Integer, integer) do check_range(integer, options) offset_and_precision(options) do |offset,precision| "%0#{precision}d" % (integer.to_i + offset) end end end
def initialize name, options = {}
def initialize name, options = {} range = options[:range] raise ArgumentError, "missing required option :range" unless range raise ArgumentError, ":range should be a integer range" unless range.is_a?(Range) and range.first.is_a?(Integer) super(name, options) end