aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorErik Peterson <erik@subwindow.com>2012-10-22 13:48:57 -0400
committerErik Peterson <erik@subwindow.com>2013-02-26 14:26:53 -0500
commit72a4670af1f0362868769a34fc8dd0323d5cf4df (patch)
treef3750829f257eef2e2a31777f0af63591ac3796a /activerecord/lib/active_record/connection_adapters/abstract
parent5112a6ccdfb930200d6d476f5e40bfe3d1a6ef33 (diff)
downloadrails-72a4670af1f0362868769a34fc8dd0323d5cf4df.tar.gz
rails-72a4670af1f0362868769a34fc8dd0323d5cf4df.tar.bz2
rails-72a4670af1f0362868769a34fc8dd0323d5cf4df.zip
Fix default output for postgres network address types
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb
index cc289d4a14..f587bf8140 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb
@@ -1,3 +1,5 @@
+require 'ipaddr'
+
module ActiveRecord
module ConnectionAdapters # :nodoc:
# The goal of this module is to move Adapter specific column
@@ -50,6 +52,15 @@ module ActiveRecord
when Range
# infinity dumps as Infinity, which causes uninitialized constant error
value.inspect.gsub('Infinity', '::Float::INFINITY')
+ when IPAddr
+ subnet_mask = value.instance_variable_get(:@mask_addr)
+
+ # If the subnet mask is equal to /32, don't output it
+ if subnet_mask == (2**32 - 1)
+ "\"#{value.to_s}\""
+ else
+ "\"#{value.to_s}/#{subnet_mask.to_s(2).count('1')}\""
+ end
else
value.inspect
end