aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/type/integer.rb
diff options
context:
space:
mode:
authorHenrik Nyh <henrik@nyh.se>2015-01-15 19:58:01 +0100
committerHenrik Nyh <henrik@nyh.se>2015-01-15 20:31:28 +0100
commit1be562db9501007bd82d9385ffc8ca59e23daba9 (patch)
tree85cbf74f377fc6b1bbae8b6a8773240e041be00b /activerecord/lib/active_record/type/integer.rb
parent39f0ea1458c54e29431dbfa6332358285f44664d (diff)
downloadrails-1be562db9501007bd82d9385ffc8ca59e23daba9.tar.gz
rails-1be562db9501007bd82d9385ffc8ca59e23daba9.tar.bz2
rails-1be562db9501007bd82d9385ffc8ca59e23daba9.zip
DRY default limit in ActiveRecord::Type::Integer
Diffstat (limited to 'activerecord/lib/active_record/type/integer.rb')
-rw-r--r--activerecord/lib/active_record/type/integer.rb8
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