diff options
author | Kir Shatrov <shatrov@me.com> | 2015-09-07 21:20:15 +0300 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-09-21 10:12:13 -0600 |
commit | 9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6 (patch) | |
tree | 68a48d84f3d2e1902d94316f781c4aee60a5f798 /activerecord/lib/active_record/type/integer.rb | |
parent | b223d729d823dcf3c6915daa2bf48c028718c465 (diff) | |
download | rails-9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6.tar.gz rails-9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6.tar.bz2 rails-9cc8c6f3730df3d94c81a55be9ee1b7b4ffd29f6.zip |
Move ActiveRecord::Type to ActiveModel
The first step of bringing typecasting to ActiveModel
Diffstat (limited to 'activerecord/lib/active_record/type/integer.rb')
-rw-r--r-- | activerecord/lib/active_record/type/integer.rb | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/activerecord/lib/active_record/type/integer.rb b/activerecord/lib/active_record/type/integer.rb deleted file mode 100644 index c5040c6d3b..0000000000 --- a/activerecord/lib/active_record/type/integer.rb +++ /dev/null @@ -1,66 +0,0 @@ -module ActiveRecord - module Type - class Integer < Value # :nodoc: - include Helpers::Numeric - - # Column storage size in bytes. - # 4 bytes means a MySQL int or Postgres integer as opposed to smallint etc. - DEFAULT_LIMIT = 4 - - def initialize(*) - super - @range = min_value...max_value - end - - def type - :integer - end - - def deserialize(value) - return if value.nil? - value.to_i - end - - def serialize(value) - result = cast(value) - if result - ensure_in_range(result) - end - result - end - - protected - - attr_reader :range - - private - - def cast_value(value) - case value - when true then 1 - when false then 0 - else - value.to_i rescue nil - end - end - - def ensure_in_range(value) - unless range.cover?(value) - raise RangeError, "#{value} is out of range for #{self.class} with limit #{_limit}" - end - end - - def max_value - 1 << (_limit * 8 - 1) # 8 bits per byte with one bit for sign - end - - def min_value - -max_value - end - - def _limit - self.limit || DEFAULT_LIMIT - end - end - end -end |