Skip to content

Commit

Permalink
Merge pull request #38038 from Shopify/activerecord-ruby-2.7-warnings…
Browse files Browse the repository at this point in the history
…-6-0-stable-batch-2

Activerecord ruby 2.7 warnings 6 0 stable batch 2
  • Loading branch information
kamipo committed Dec 20, 2019
1 parent 3a6770f commit 57ace94
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 15 deletions.
1 change: 1 addition & 0 deletions activemodel/lib/active_model/type/registry.rb
Expand Up @@ -10,6 +10,7 @@ def initialize

def register(type_name, klass = nil, **options, &block)
block ||= proc { |_, *args| klass.new(*args) }
block.ruby2_keywords if block.respond_to?(:ruby2_keywords)
registrations << registration_klass.new(type_name, block, **options)
end

Expand Down
7 changes: 6 additions & 1 deletion activerecord/lib/active_record/migration.rb
Expand Up @@ -903,7 +903,12 @@ def method_missing(method, *arguments, &block)
end
end
return super unless connection.respond_to?(method)
connection.send(method, *arguments, &block)
options = arguments.extract_options!
if options.empty?
connection.send(method, *arguments, &block)
else
connection.send(method, *arguments, **options, &block)
end
end
end

Expand Down
7 changes: 5 additions & 2 deletions activerecord/lib/active_record/relation/delegation.rb
Expand Up @@ -60,15 +60,17 @@ def generate_method(method)
return if method_defined?(method)

if /\A[a-zA-Z_]\w*[!?]?\z/.match?(method)
definition = RUBY_VERSION >= "2.7" ? "..." : "*args, &block"
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def #{method}(*args, &block)
scoping { klass.#{method}(*args, &block) }
def #{method}(#{definition})
scoping { klass.#{method}(#{definition}) }
end
RUBY
else
define_method(method) do |*args, &block|
scoping { klass.public_send(method, *args, &block) }
end
ruby2_keywords(method) if respond_to?(:ruby2_keywords, true)
end
end
end
Expand Down Expand Up @@ -107,6 +109,7 @@ def method_missing(method, *args, &block)
super
end
end
ruby2_keywords :method_missing if respond_to?(:ruby2_keywords, true)
end

module ClassMethods # :nodoc:
Expand Down
12 changes: 0 additions & 12 deletions activerecord/test/cases/batches_test.rb
Expand Up @@ -226,12 +226,6 @@ def test_find_in_batches_should_not_ignore_the_default_scope_if_it_is_other_then
assert_equal default_scope.pluck(:id).sort, posts.map(&:id).sort
end

def test_find_in_batches_should_not_modify_passed_options
assert_nothing_raised do
Post.find_in_batches({ batch_size: 42, start: 1 }.freeze) { }
end
end

def test_find_in_batches_should_use_any_column_as_primary_key
nick_order_subscribers = Subscriber.order("nick asc")
start_nick = nick_order_subscribers.second.nick
Expand Down Expand Up @@ -444,12 +438,6 @@ def test_in_batches_should_not_ignore_default_scope_without_order_statements
assert_equal default_scope.pluck(:id).sort, posts.map(&:id).sort
end

def test_in_batches_should_not_modify_passed_options
assert_nothing_raised do
Post.in_batches({ of: 42, start: 1 }.freeze) { }
end
end

def test_in_batches_should_use_any_column_as_primary_key
nick_order_subscribers = Subscriber.order("nick asc")
start_nick = nick_order_subscribers.second.nick
Expand Down

0 comments on commit 57ace94

Please sign in to comment.