diff options
author | Henrik Nyh <henrik@nyh.se> | 2015-01-15 19:58:01 +0100 |
---|---|---|
committer | Henrik Nyh <henrik@nyh.se> | 2015-01-15 20:31:28 +0100 |
commit | 1be562db9501007bd82d9385ffc8ca59e23daba9 (patch) | |
tree | 85cbf74f377fc6b1bbae8b6a8773240e041be00b /activerecord | |
parent | 39f0ea1458c54e29431dbfa6332358285f44664d (diff) | |
download | rails-1be562db9501007bd82d9385ffc8ca59e23daba9.tar.gz rails-1be562db9501007bd82d9385ffc8ca59e23daba9.tar.bz2 rails-1be562db9501007bd82d9385ffc8ca59e23daba9.zip |
DRY default limit in ActiveRecord::Type::Integer
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/type/integer.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/type/integer.rb b/activerecord/lib/active_record/type/integer.rb index fc260a081a..394fe008f9 100644 --- a/activerecord/lib/active_record/type/integer.rb +++ b/activerecord/lib/active_record/type/integer.rb @@ -3,6 +3,10 @@ module ActiveRecord class Integer < Value # :nodoc: include 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 @@ -38,12 +42,12 @@ module ActiveRecord def ensure_in_range(value) unless range.cover?(value) - raise RangeError, "#{value} is out of range for #{self.class} with limit #{limit || 4}" + raise RangeError, "#{value} is out of range for #{self.class} with limit #{limit || DEFAULT_LIMIT}" end end def max_value - limit = self.limit || 4 + limit = self.limit || DEFAULT_LIMIT 1 << (limit * 8 - 1) # 8 bits per byte with one bit for sign end |