aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/type
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/type')
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/hash_lookup_type_map.rb10
-rw-r--r--activerecord/lib/active_record/connection_adapters/type/type_map.rb8
2 files changed, 9 insertions, 9 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
diff --git a/activerecord/lib/active_record/connection_adapters/type/type_map.rb b/activerecord/lib/active_record/connection_adapters/type/type_map.rb
index d89171a820..48b8b51417 100644
--- a/activerecord/lib/active_record/connection_adapters/type/type_map.rb
+++ b/activerecord/lib/active_record/connection_adapters/type/type_map.rb
@@ -6,13 +6,13 @@ module ActiveRecord
@mapping = {}
end
- def lookup(lookup_key)
+ def lookup(lookup_key, *args)
matching_pair = @mapping.reverse_each.detect do |key, _|
key === lookup_key
end
if matching_pair
- matching_pair.last.call(lookup_key)
+ matching_pair.last.call(lookup_key, *args)
else
default_value
end
@@ -29,9 +29,9 @@ module ActiveRecord
end
def alias_type(key, target_key)
- register_type(key) do |sql_type|
+ register_type(key) do |sql_type, *args|
metadata = sql_type[/\(.*\)/, 0]
- lookup("#{target_key}#{metadata}")
+ lookup("#{target_key}#{metadata}", *args)
end
end