diff options
author | Sean Griffin <sean@thoughtbot.com> | 2014-05-22 09:12:23 -0700 |
---|---|---|
committer | Sean Griffin <sean@thoughtbot.com> | 2014-05-22 09:14:15 -0700 |
commit | ecf4ad7cca206e2cf99ca16e57e17648e726877a (patch) | |
tree | 0a8e826707d2b8b2441972e35e6c90f35c8ac1bf /activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb | |
parent | 110d3d0c0bceddd05cab86c0463f0aa71df815cb (diff) | |
download | rails-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.rb | 10 |
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 |