aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-05-22 09:12:23 -0700
committerSean Griffin <sean@thoughtbot.com>2014-05-22 09:14:15 -0700
commitecf4ad7cca206e2cf99ca16e57e17648e726877a (patch)
tree0a8e826707d2b8b2441972e35e6c90f35c8ac1bf /activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb
parent110d3d0c0bceddd05cab86c0463f0aa71df815cb (diff)
downloadrails-ecf4ad7cca206e2cf99ca16e57e17648e726877a.tar.gz
rails-ecf4ad7cca206e2cf99ca16e57e17648e726877a.tar.bz2
rails-ecf4ad7cca206e2cf99ca16e57e17648e726877a.zip
Allow additional arguments to be used during type map lookups
Determining things like precision and scale in postgresql will require the given blocks to take additional arguments besides the OID. - Adds the ability to handle additional arguments to `TypeMap` - Passes the column type to blocks when looking up PG types
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb b/activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb
index 8503d3ea1b..bb1abc77ff 100644
--- a/activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb
+++ b/activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb
@@ -4,16 +4,16 @@ module ActiveRecord
class HashLookupTypeMap < TypeMap # :nodoc:
delegate :key?, to: :@mapping
- def lookup(type)
- @mapping.fetch(type, proc { default_value }).call(type)
+ def lookup(type, *args)
+ @mapping.fetch(type, proc { default_value }).call(type, *args)
end
- def fetch(type, &block)
- @mapping.fetch(type, block).call(type)
+ def fetch(type, *args, &block)
+ @mapping.fetch(type, block).call(type, *args)
end
def alias_type(type, alias_type)
- register_type(type) { lookup(alias_type) }
+ register_type(type) { |_, *args| lookup(alias_type, *args) }
end
end
end