diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-16 16:29:43 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-16 16:29:43 -0700 |
commit | 835df6f3ed9b1575fd6a1fb62516d8ebeffbf114 (patch) | |
tree | 4d14825b67a32157efa18d4d8cbe27c342eb4df6 /activerecord/lib/active_record/connection_adapters/postgresql/oid.rb | |
parent | 66cbde016c5c457f25c45a71ef8839608ef77299 (diff) | |
parent | 0e1c6513a442737ab9ff757efec24a10cd2f947a (diff) | |
download | rails-835df6f3ed9b1575fd6a1fb62516d8ebeffbf114.tar.gz rails-835df6f3ed9b1575fd6a1fb62516d8ebeffbf114.tar.bz2 rails-835df6f3ed9b1575fd6a1fb62516d8ebeffbf114.zip |
Merge pull request #6192 from danmcclain/add_inet_and_cidr_types_to_postgresql_adapter
Add support for macaddr, inet, and cidr types to PostgreSQL adapter
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/postgresql/oid.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/oid.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/oid.rb b/activerecord/lib/active_record/connection_adapters/postgresql/oid.rb index c82afc232c..df3d5e4657 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/oid.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/oid.rb @@ -137,6 +137,14 @@ module ActiveRecord end end + class Cidr < Type + def type_cast(value) + return if value.nil? + + ConnectionAdapters::PostgreSQLColumn.string_to_cidr value + end + end + class TypeMap def initialize @mapping = {} @@ -212,11 +220,9 @@ module ActiveRecord # FIXME: why are we keeping these types as strings? alias_type 'tsvector', 'text' alias_type 'interval', 'text' - alias_type 'cidr', 'text' - alias_type 'inet', 'text' - alias_type 'macaddr', 'text' alias_type 'bit', 'text' alias_type 'varbit', 'text' + alias_type 'macaddr', 'text' # FIXME: I don't think this is correct. We should probably be returning a parsed date, # but the tests pass with a string returned. @@ -237,6 +243,9 @@ module ActiveRecord register_type 'polygon', OID::Identity.new register_type 'circle', OID::Identity.new register_type 'hstore', OID::Hstore.new + + register_type 'cidr', OID::Cidr.new + alias_type 'inet', 'cidr' end end end |