Enable Style/ExplicitBlockArgument
cop
This reduce the stack size which is beneficial for exceptions performance. See: https://gist.github.com/byroot/cb3bcadcc3701c2518d002fb8d3a4e7a However the cop is unsafe because it might change the block arity, so it can run into some false positives.
This commit is contained in:
parent
5fbc750840
commit
c91c266872
@ -143,6 +143,9 @@ Style/DefWithParentheses:
|
||||
Style/MethodDefParentheses:
|
||||
Enabled: true
|
||||
|
||||
Style/ExplicitBlockArgument:
|
||||
Enabled: true
|
||||
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: true
|
||||
EnforcedStyle: always
|
||||
|
@ -18,10 +18,10 @@ def add_tags(*tags)
|
||||
@tags = @tags.uniq
|
||||
end
|
||||
|
||||
def tag(logger)
|
||||
def tag(logger, &block)
|
||||
if logger.respond_to?(:tagged)
|
||||
current_tags = tags - logger.formatter.current_tags
|
||||
logger.tagged(*current_tags) { yield }
|
||||
logger.tagged(*current_tags, &block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
|
@ -36,12 +36,10 @@ def stopping?
|
||||
@executor.shuttingdown?
|
||||
end
|
||||
|
||||
def work(connection)
|
||||
def work(connection, &block)
|
||||
self.connection = connection
|
||||
|
||||
run_callbacks :work do
|
||||
yield
|
||||
end
|
||||
run_callbacks :work, &block
|
||||
ensure
|
||||
self.connection = nil
|
||||
end
|
||||
|
@ -12,8 +12,8 @@ module ActiveRecordConnectionManagement
|
||||
end
|
||||
end
|
||||
|
||||
def with_database_connections
|
||||
connection.logger.tag(ActiveRecord::Base.logger) { yield }
|
||||
def with_database_connections(&block)
|
||||
connection.logger.tag(ActiveRecord::Base.logger, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -142,8 +142,8 @@ def expire_fragment(key, options = nil)
|
||||
end
|
||||
end
|
||||
|
||||
def instrument_fragment_cache(name, key) # :nodoc:
|
||||
ActiveSupport::Notifications.instrument("#{name}.#{instrument_name}", instrument_payload(key)) { yield }
|
||||
def instrument_fragment_cache(name, key, &block) # :nodoc:
|
||||
ActiveSupport::Notifications.instrument("#{name}.#{instrument_name}", instrument_payload(key), &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -940,7 +940,7 @@ def convert_value_to_parameters(value)
|
||||
def each_element(object, &block)
|
||||
case object
|
||||
when Array
|
||||
object.grep(Parameters).filter_map { |el| yield el }
|
||||
object.grep(Parameters).filter_map(&block)
|
||||
when Parameters
|
||||
if object.nested_attributes?
|
||||
object.each_nested_attribute(&block)
|
||||
|
@ -13,8 +13,8 @@ def initialize
|
||||
@symbols = []
|
||||
end
|
||||
|
||||
def each
|
||||
@mimes.each { |x| yield x }
|
||||
def each(&block)
|
||||
@mimes.each(&block)
|
||||
end
|
||||
|
||||
def <<(type)
|
||||
@ -42,9 +42,9 @@ def [](type)
|
||||
Type.lookup_by_extension(type)
|
||||
end
|
||||
|
||||
def fetch(type)
|
||||
def fetch(type, &block)
|
||||
return type if type.is_a?(Type)
|
||||
EXTENSION_LOOKUP.fetch(type.to_s) { |k| yield k }
|
||||
EXTENSION_LOOKUP.fetch(type.to_s, &block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -83,8 +83,8 @@ def initialize(*args)
|
||||
yield(self) if block_given?
|
||||
end
|
||||
|
||||
def each
|
||||
@middlewares.each { |x| yield x }
|
||||
def each(&block)
|
||||
@middlewares.each(&block)
|
||||
end
|
||||
|
||||
def size
|
||||
|
@ -922,7 +922,7 @@ def controller(controller)
|
||||
# namespace :admin, as: "sekret" do
|
||||
# resources :posts
|
||||
# end
|
||||
def namespace(path, options = {})
|
||||
def namespace(path, options = {}, &block)
|
||||
path = path.to_s
|
||||
|
||||
defaults = {
|
||||
@ -933,7 +933,7 @@ def namespace(path, options = {})
|
||||
}
|
||||
|
||||
path_scope(options.delete(:path) { path }) do
|
||||
scope(defaults.merge!(options)) { yield }
|
||||
scope(defaults.merge!(options), &block)
|
||||
end
|
||||
end
|
||||
|
||||
@ -992,8 +992,8 @@ def namespace(path, options = {})
|
||||
# constraints(Iphone) do
|
||||
# resources :iphones
|
||||
# end
|
||||
def constraints(constraints = {})
|
||||
scope(constraints: constraints) { yield }
|
||||
def constraints(constraints = {}, &block)
|
||||
scope(constraints: constraints, &block)
|
||||
end
|
||||
|
||||
# Allows you to set default parameters for a route, such as this:
|
||||
@ -1493,15 +1493,13 @@ def resources(*resources, &block)
|
||||
# with GET, and route to the search action of +PhotosController+. It will also
|
||||
# create the <tt>search_photos_url</tt> and <tt>search_photos_path</tt>
|
||||
# route helpers.
|
||||
def collection
|
||||
def collection(&block)
|
||||
unless resource_scope?
|
||||
raise ArgumentError, "can't use collection outside resource(s) scope"
|
||||
end
|
||||
|
||||
with_scope_level(:collection) do
|
||||
path_scope(parent_resource.collection_scope) do
|
||||
yield
|
||||
end
|
||||
path_scope(parent_resource.collection_scope, &block)
|
||||
end
|
||||
end
|
||||
|
||||
@ -1516,7 +1514,7 @@ def collection
|
||||
# This will recognize <tt>/photos/1/preview</tt> with GET, and route to the
|
||||
# preview action of +PhotosController+. It will also create the
|
||||
# <tt>preview_photo_url</tt> and <tt>preview_photo_path</tt> helpers.
|
||||
def member
|
||||
def member(&block)
|
||||
unless resource_scope?
|
||||
raise ArgumentError, "can't use member outside resource(s) scope"
|
||||
end
|
||||
@ -1524,27 +1522,25 @@ def member
|
||||
with_scope_level(:member) do
|
||||
if shallow?
|
||||
shallow_scope {
|
||||
path_scope(parent_resource.member_scope) { yield }
|
||||
path_scope(parent_resource.member_scope, &block)
|
||||
}
|
||||
else
|
||||
path_scope(parent_resource.member_scope) { yield }
|
||||
path_scope(parent_resource.member_scope, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def new
|
||||
def new(&block)
|
||||
unless resource_scope?
|
||||
raise ArgumentError, "can't use new outside resource(s) scope"
|
||||
end
|
||||
|
||||
with_scope_level(:new) do
|
||||
path_scope(parent_resource.new_scope(action_path(:new))) do
|
||||
yield
|
||||
end
|
||||
path_scope(parent_resource.new_scope(action_path(:new)), &block)
|
||||
end
|
||||
end
|
||||
|
||||
def nested
|
||||
def nested(&block)
|
||||
unless resource_scope?
|
||||
raise ArgumentError, "can't use nested outside resource(s) scope"
|
||||
end
|
||||
@ -1553,12 +1549,12 @@ def nested
|
||||
if shallow? && shallow_nesting_depth >= 1
|
||||
shallow_scope do
|
||||
path_scope(parent_resource.nested_scope) do
|
||||
scope(nested_options) { yield }
|
||||
scope(nested_options, &block)
|
||||
end
|
||||
end
|
||||
else
|
||||
path_scope(parent_resource.nested_scope) do
|
||||
scope(nested_options) { yield }
|
||||
scope(nested_options, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1744,10 +1740,10 @@ def with_scope_level(kind) # :doc:
|
||||
@scope = @scope.parent
|
||||
end
|
||||
|
||||
def resource_scope(resource)
|
||||
def resource_scope(resource, &block)
|
||||
@scope = @scope.new(scope_level_resource: resource)
|
||||
|
||||
controller(resource.resource_scope) { yield }
|
||||
controller(resource.resource_scope, &block)
|
||||
ensure
|
||||
@scope = @scope.parent
|
||||
end
|
||||
|
@ -131,8 +131,8 @@ def key?(name)
|
||||
alias [] get
|
||||
alias clear clear!
|
||||
|
||||
def each
|
||||
routes.each { |name, route| yield name, route }
|
||||
def each(&block)
|
||||
routes.each(&block)
|
||||
self
|
||||
end
|
||||
|
||||
|
@ -314,8 +314,8 @@ def capture_log_output
|
||||
def setup
|
||||
super
|
||||
|
||||
def @controller.new_controller_thread
|
||||
Thread.new { yield }
|
||||
def @controller.new_controller_thread(&block)
|
||||
Thread.new(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -987,8 +987,8 @@ class LiveHeadRenderTest < ActionController::TestCase
|
||||
def setup
|
||||
super
|
||||
|
||||
def @controller.new_controller_thread
|
||||
Thread.new { yield }
|
||||
def @controller.new_controller_thread(&block)
|
||||
Thread.new(&block)
|
||||
end
|
||||
|
||||
def @controller.response_body=(body)
|
||||
|
@ -634,14 +634,12 @@ def assert_not_blocked(&block)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
def assert_cross_origin_blocked
|
||||
assert_raises(ActionController::InvalidCrossOriginRequest) do
|
||||
yield
|
||||
end
|
||||
def assert_cross_origin_blocked(&block)
|
||||
assert_raises(ActionController::InvalidCrossOriginRequest, &block)
|
||||
end
|
||||
|
||||
def assert_cross_origin_not_blocked
|
||||
assert_not_blocked { yield }
|
||||
def assert_cross_origin_not_blocked(&block)
|
||||
assert_not_blocked(&block)
|
||||
end
|
||||
|
||||
def forgery_protection_origin_check
|
||||
@ -701,10 +699,8 @@ def setup
|
||||
|
||||
class RequestForgeryProtectionControllerUsingExceptionTest < ActionController::TestCase
|
||||
include RequestForgeryProtectionTests
|
||||
def assert_blocked
|
||||
assert_raises(ActionController::InvalidAuthenticityToken) do
|
||||
yield
|
||||
end
|
||||
def assert_blocked(&block)
|
||||
assert_raises(ActionController::InvalidAuthenticityToken, &block)
|
||||
end
|
||||
|
||||
def test_raised_exception_message_explains_why_it_occurred
|
||||
@ -1105,10 +1101,8 @@ def test_should_allow_post_without_token_when_skipping
|
||||
assert_not_blocked { post :index }
|
||||
end
|
||||
|
||||
def assert_blocked
|
||||
assert_raises(ActionController::InvalidAuthenticityToken) do
|
||||
yield
|
||||
end
|
||||
def assert_blocked(&block)
|
||||
assert_raises(ActionController::InvalidAuthenticityToken, &block)
|
||||
end
|
||||
|
||||
def assert_not_blocked(&block)
|
||||
|
@ -133,7 +133,7 @@ def truncate(text, options = {}, &block)
|
||||
#
|
||||
# highlight('<a href="javascript:alert(\'no!\')">ruby</a> on rails', 'rails', sanitize: false)
|
||||
# # => <a href="javascript:alert('no!')">ruby</a> on <mark>rails</mark>
|
||||
def highlight(text, phrases, options = {})
|
||||
def highlight(text, phrases, options = {}, &block)
|
||||
text = sanitize(text) if options.fetch(:sanitize, true)
|
||||
|
||||
if text.blank? || phrases.blank?
|
||||
@ -144,7 +144,7 @@ def highlight(text, phrases, options = {})
|
||||
end.join("|")
|
||||
|
||||
if block_given?
|
||||
text.gsub(/(#{match})(?![^<]*?>)/i) { |found| yield found }
|
||||
text.gsub(/(#{match})(?![^<]*?>)/i, &block)
|
||||
else
|
||||
highlighter = options.fetch(:highlighter, '<mark>\1</mark>')
|
||||
text.gsub(/(#{match})(?![^<]*?>)/i, highlighter)
|
||||
|
@ -183,9 +183,9 @@ class ArelLike
|
||||
def to_ary
|
||||
true
|
||||
end
|
||||
def each
|
||||
def each(&block)
|
||||
a = Array.new(2) { |id| Comment.new(id + 1) }
|
||||
a.each { |i| yield i }
|
||||
a.each(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -19,10 +19,10 @@ def perform_now
|
||||
end
|
||||
|
||||
private
|
||||
def tag_logger(*tags)
|
||||
def tag_logger(*tags, &block)
|
||||
if logger.respond_to?(:tagged)
|
||||
tags.unshift "ActiveJob" unless logger_tagged_by_active_job?
|
||||
logger.tagged(*tags) { yield }
|
||||
logger.tagged(*tags, &block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
|
@ -49,11 +49,9 @@ def set_logger(logger)
|
||||
ActiveJob::Base.logger = logger
|
||||
end
|
||||
|
||||
def subscribed
|
||||
def subscribed(&block)
|
||||
[].tap do |events|
|
||||
ActiveSupport::Notifications.subscribed(-> (*args) { events << args }, /enqueue.*\.active_job/) do
|
||||
yield
|
||||
end
|
||||
ActiveSupport::Notifications.subscribed(-> (*args) { events << args }, /enqueue.*\.active_job/, &block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -115,9 +115,9 @@ def nullify_owner_attributes(record)
|
||||
record[reflection.foreign_key] = nil
|
||||
end
|
||||
|
||||
def transaction_if(value)
|
||||
def transaction_if(value, &block)
|
||||
if value
|
||||
reflection.klass.transaction { yield }
|
||||
reflection.klass.transaction(&block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
|
@ -306,14 +306,14 @@ def truncate_tables(*table_names) # :nodoc:
|
||||
#
|
||||
# The mysql2 and postgresql adapters support setting the transaction
|
||||
# isolation level.
|
||||
def transaction(requires_new: nil, isolation: nil, joinable: true)
|
||||
def transaction(requires_new: nil, isolation: nil, joinable: true, &block)
|
||||
if !requires_new && current_transaction.joinable?
|
||||
if isolation
|
||||
raise ActiveRecord::TransactionIsolationError, "cannot set isolation when joining a transaction"
|
||||
end
|
||||
yield
|
||||
else
|
||||
transaction_manager.within_new_transaction(isolation: isolation, joinable: joinable) { yield }
|
||||
transaction_manager.within_new_transaction(isolation: isolation, joinable: joinable, &block)
|
||||
end
|
||||
rescue ActiveRecord::Rollback
|
||||
# rollbacks are silently swallowed
|
||||
|
@ -723,7 +723,7 @@ def translate_exception_class(e, sql, binds)
|
||||
exception
|
||||
end
|
||||
|
||||
def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil, async: false) # :doc:
|
||||
def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil, async: false, &block) # :doc:
|
||||
@instrumenter.instrument(
|
||||
"sql.active_record",
|
||||
sql: sql,
|
||||
@ -733,9 +733,7 @@ def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name =
|
||||
statement_name: statement_name,
|
||||
async: async,
|
||||
connection: self) do
|
||||
@lock.synchronize do
|
||||
yield
|
||||
end
|
||||
@lock.synchronize(&block)
|
||||
rescue => e
|
||||
raise translate_exception_class(e, sql, binds)
|
||||
end
|
||||
|
@ -89,11 +89,9 @@ def supports_lazy_transactions?
|
||||
|
||||
# HELPER METHODS ===========================================
|
||||
|
||||
def each_hash(result) # :nodoc:
|
||||
def each_hash(result, &block) # :nodoc:
|
||||
if block_given?
|
||||
result.each(as: :hash, symbolize_keys: true) do |row|
|
||||
yield row
|
||||
end
|
||||
result.each(as: :hash, symbolize_keys: true, &block)
|
||||
else
|
||||
to_enum(:each_hash, result)
|
||||
end
|
||||
|
@ -764,8 +764,8 @@ def class_name
|
||||
model_class.name if model_class
|
||||
end
|
||||
|
||||
def each
|
||||
fixture.each { |item| yield item }
|
||||
def each(&block)
|
||||
fixture.each(&block)
|
||||
end
|
||||
|
||||
def [](key)
|
||||
|
@ -51,21 +51,17 @@ def update_context(response)
|
||||
private
|
||||
def read_from_primary(&blk)
|
||||
ActiveRecord::Base.connected_to(role: ActiveRecord.writing_role, prevent_writes: true) do
|
||||
instrumenter.instrument("database_selector.active_record.read_from_primary") do
|
||||
yield
|
||||
end
|
||||
instrumenter.instrument("database_selector.active_record.read_from_primary", &blk)
|
||||
end
|
||||
end
|
||||
|
||||
def read_from_replica(&blk)
|
||||
ActiveRecord::Base.connected_to(role: ActiveRecord.reading_role, prevent_writes: true) do
|
||||
instrumenter.instrument("database_selector.active_record.read_from_replica") do
|
||||
yield
|
||||
end
|
||||
instrumenter.instrument("database_selector.active_record.read_from_replica", &blk)
|
||||
end
|
||||
end
|
||||
|
||||
def write_to_primary(&blk)
|
||||
def write_to_primary
|
||||
ActiveRecord::Base.connected_to(role: ActiveRecord.writing_role, prevent_writes: false) do
|
||||
instrumenter.instrument("database_selector.active_record.wrote_to_primary") do
|
||||
yield
|
||||
|
@ -728,16 +728,16 @@ def initialize(name = self.class.name, version = nil)
|
||||
# end
|
||||
#
|
||||
# This command can be nested.
|
||||
def revert(*migration_classes)
|
||||
def revert(*migration_classes, &block)
|
||||
run(*migration_classes.reverse, revert: true) unless migration_classes.empty?
|
||||
if block_given?
|
||||
if connection.respond_to? :revert
|
||||
connection.revert { yield }
|
||||
connection.revert(&block)
|
||||
else
|
||||
recorder = command_recorder
|
||||
@connection = recorder
|
||||
suppress_messages do
|
||||
connection.revert { yield }
|
||||
connection.revert(&block)
|
||||
end
|
||||
@connection = recorder.delegate
|
||||
recorder.replay(self)
|
||||
@ -804,8 +804,8 @@ def reversible
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
def up_only
|
||||
execute_block { yield } unless reverting?
|
||||
def up_only(&block)
|
||||
execute_block(&block) unless reverting?
|
||||
end
|
||||
|
||||
# Runs the given migration classes.
|
||||
@ -1106,9 +1106,9 @@ def forward(steps = 1) # :nodoc:
|
||||
move(:up, steps)
|
||||
end
|
||||
|
||||
def up(target_version = nil) # :nodoc:
|
||||
def up(target_version = nil, &block) # :nodoc:
|
||||
selected_migrations = if block_given?
|
||||
migrations.select { |m| yield m }
|
||||
migrations.select(&block)
|
||||
else
|
||||
migrations
|
||||
end
|
||||
@ -1116,9 +1116,9 @@ def up(target_version = nil) # :nodoc:
|
||||
Migrator.new(:up, selected_migrations, schema_migration, target_version).migrate
|
||||
end
|
||||
|
||||
def down(target_version = nil) # :nodoc:
|
||||
def down(target_version = nil, &block) # :nodoc:
|
||||
selected_migrations = if block_given?
|
||||
migrations.select { |m| yield m }
|
||||
migrations.select(&block)
|
||||
else
|
||||
migrations
|
||||
end
|
||||
@ -1405,9 +1405,9 @@ def down?
|
||||
end
|
||||
|
||||
# Wrap the migration in a transaction only if supported by the adapter.
|
||||
def ddl_transaction(migration)
|
||||
def ddl_transaction(migration, &block)
|
||||
if use_transaction?(migration)
|
||||
Base.transaction { yield }
|
||||
Base.transaction(&block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
@ -1438,12 +1438,12 @@ def with_advisory_lock
|
||||
end
|
||||
end
|
||||
|
||||
def with_advisory_lock_connection
|
||||
def with_advisory_lock_connection(&block)
|
||||
pool = ActiveRecord::ConnectionAdapters::ConnectionHandler.new.establish_connection(
|
||||
ActiveRecord::Base.connection_db_config
|
||||
)
|
||||
|
||||
pool.with_connection { |connection| yield(connection) }
|
||||
pool.with_connection(&block)
|
||||
ensure
|
||||
pool&.disconnect!
|
||||
end
|
||||
|
@ -154,9 +154,9 @@ def invert_#{method}(args, &block) # def invert_create_table(args, &block)
|
||||
|
||||
include StraightReversions
|
||||
|
||||
def invert_transaction(args)
|
||||
def invert_transaction(args, &block)
|
||||
sub_recorder = CommandRecorder.new(delegate)
|
||||
sub_recorder.revert { yield }
|
||||
sub_recorder.revert(&block)
|
||||
|
||||
invertions_proc = proc {
|
||||
sub_recorder.replay(self)
|
||||
|
@ -424,14 +424,14 @@ def cache_key_with_version
|
||||
#
|
||||
# Please check unscoped if you want to remove all previous scopes (including
|
||||
# the default_scope) during the execution of a block.
|
||||
def scoping(all_queries: nil)
|
||||
def scoping(all_queries: nil, &block)
|
||||
registry = klass.scope_registry
|
||||
if global_scope?(registry) && all_queries == false
|
||||
raise ArgumentError, "Scoping is set to apply to all queries and cannot be unset in a nested block."
|
||||
elsif already_in_scope?(registry)
|
||||
yield
|
||||
else
|
||||
_scoping(self, registry, all_queries) { yield }
|
||||
_scoping(self, registry, all_queries, &block)
|
||||
end
|
||||
end
|
||||
|
||||
@ -935,11 +935,9 @@ def instantiate_records(rows, &block)
|
||||
end
|
||||
end
|
||||
|
||||
def skip_query_cache_if_necessary
|
||||
def skip_query_cache_if_necessary(&block)
|
||||
if skip_query_cache_value
|
||||
uncached do
|
||||
yield
|
||||
end
|
||||
uncached(&block)
|
||||
else
|
||||
yield
|
||||
end
|
||||
|
@ -65,10 +65,10 @@ module Batches
|
||||
#
|
||||
# NOTE: By its nature, batch processing is subject to race conditions if
|
||||
# other processes are modifying the database.
|
||||
def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, order: :asc)
|
||||
def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, order: :asc, &block)
|
||||
if block_given?
|
||||
find_in_batches(start: start, finish: finish, batch_size: batch_size, error_on_ignore: error_on_ignore, order: order) do |records|
|
||||
records.each { |record| yield record }
|
||||
records.each(&block)
|
||||
end
|
||||
else
|
||||
enum_for(:find_each, start: start, finish: finish, batch_size: batch_size, error_on_ignore: error_on_ignore, order: order) do
|
||||
|
@ -47,11 +47,11 @@ def batch_size
|
||||
# Person.in_batches.each_record.with_index do |person, index|
|
||||
# person.award_trophy(index + 1)
|
||||
# end
|
||||
def each_record
|
||||
def each_record(&block)
|
||||
return to_enum(:each_record) unless block_given?
|
||||
|
||||
@relation.to_enum(:in_batches, of: @of, start: @start, finish: @finish, load: true).each do |relation|
|
||||
relation.records.each { |record| yield record }
|
||||
relation.records.each(&block)
|
||||
end
|
||||
end
|
||||
|
||||
@ -89,9 +89,9 @@ def destroy_all
|
||||
# Person.in_batches.each do |relation|
|
||||
# relation.update_all(awesome: true)
|
||||
# end
|
||||
def each
|
||||
def each(&block)
|
||||
enum = @relation.to_enum(:in_batches, of: @of, start: @start, finish: @finish, load: false)
|
||||
return enum.each { |relation| yield relation } if block_given?
|
||||
return enum.each(&block) if block_given?
|
||||
enum
|
||||
end
|
||||
end
|
||||
|
@ -1295,11 +1295,9 @@ def lookup_table_klass_from_join_dependencies(table_name)
|
||||
nil
|
||||
end
|
||||
|
||||
def each_join_dependencies(join_dependencies = build_join_dependencies)
|
||||
def each_join_dependencies(join_dependencies = build_join_dependencies, &block)
|
||||
join_dependencies.each do |join_dependency|
|
||||
join_dependency.each do |join|
|
||||
yield join
|
||||
end
|
||||
join_dependency.each(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -64,9 +64,9 @@ def length
|
||||
# row as parameter.
|
||||
#
|
||||
# Returns an +Enumerator+ if no block is given.
|
||||
def each
|
||||
def each(&block)
|
||||
if block_given?
|
||||
hash_rows.each { |row| yield row }
|
||||
hash_rows.each(&block)
|
||||
else
|
||||
hash_rows.to_enum { @rows.size }
|
||||
end
|
||||
|
@ -39,8 +39,8 @@ module ClassMethods
|
||||
# Post.unscoped {
|
||||
# Post.limit(10) # Fires "SELECT * FROM posts LIMIT 10"
|
||||
# }
|
||||
def unscoped
|
||||
block_given? ? relation.scoping { yield } : relation
|
||||
def unscoped(&block)
|
||||
block_given? ? relation.scoping(&block) : relation
|
||||
end
|
||||
|
||||
# Are there attributes associated with this scope?
|
||||
|
@ -64,12 +64,10 @@ def test_exec_explain_with_binds
|
||||
end
|
||||
|
||||
private
|
||||
def stub_explain_for_query_plans(query_plans = ["query plan foo", "query plan bar"])
|
||||
def stub_explain_for_query_plans(query_plans = ["query plan foo", "query plan bar"], &block)
|
||||
explain_called = 0
|
||||
|
||||
connection.stub(:explain, proc { explain_called += 1; query_plans[explain_called - 1] }) do
|
||||
yield
|
||||
end
|
||||
connection.stub(:explain, proc { explain_called += 1; query_plans[explain_called - 1] }, &block)
|
||||
end
|
||||
|
||||
def bind_param(name, value)
|
||||
|
@ -755,7 +755,7 @@ def test_no_locks_no_wait
|
||||
end
|
||||
|
||||
private
|
||||
def duel(zzz = 5)
|
||||
def duel(zzz = 5, &block)
|
||||
t0, t1, t2, t3 = nil, nil, nil, nil
|
||||
|
||||
a = Thread.new do
|
||||
@ -770,7 +770,7 @@ def duel(zzz = 5)
|
||||
b = Thread.new do
|
||||
sleep zzz / 2.0 # ensure thread 1 tx starts first
|
||||
t2 = Time.now
|
||||
Person.transaction { yield }
|
||||
Person.transaction(&block)
|
||||
t3 = Time.now
|
||||
end
|
||||
|
||||
|
@ -1376,13 +1376,11 @@ def test_changing_index
|
||||
end
|
||||
|
||||
private
|
||||
def with_bulk_change_table
|
||||
def with_bulk_change_table(&block)
|
||||
# Reset columns/indexes cache as we're changing the table
|
||||
@columns = @indexes = nil
|
||||
|
||||
Person.connection.change_table(:delete_me, bulk: true) do |t|
|
||||
yield t
|
||||
end
|
||||
Person.connection.change_table(:delete_me, bulk: true, &block)
|
||||
end
|
||||
|
||||
def column(name)
|
||||
|
@ -759,13 +759,11 @@ def test_clear_query_cache_is_called_on_all_connections
|
||||
end
|
||||
|
||||
private
|
||||
def with_temporary_connection_pool
|
||||
def with_temporary_connection_pool(&block)
|
||||
pool_config = ActiveRecord::Base.connection_handler.send(:owner_to_pool_manager).fetch("ActiveRecord::Base").get_pool_config(ActiveRecord.writing_role, :default)
|
||||
new_pool = ActiveRecord::ConnectionAdapters::ConnectionPool.new(pool_config)
|
||||
|
||||
pool_config.stub(:pool, new_pool) do
|
||||
yield
|
||||
end
|
||||
pool_config.stub(:pool, new_pool, &block)
|
||||
end
|
||||
|
||||
def middleware(&app)
|
||||
|
@ -30,12 +30,10 @@ def teardown
|
||||
$stdout, $stderr = @original_stdout, @original_stderr
|
||||
end
|
||||
|
||||
def with_stubbed_new
|
||||
def with_stubbed_new(&block)
|
||||
ActiveRecord::Tasks::MySQLDatabaseTasks.stub(:new, @mysql_tasks) do
|
||||
ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stub(:new, @postgresql_tasks) do
|
||||
ActiveRecord::Tasks::SQLiteDatabaseTasks.stub(:new, @sqlite_tasks) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Tasks::SQLiteDatabaseTasks.stub(:new, @sqlite_tasks, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -154,13 +152,11 @@ def test_current_config_read_after_set
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_configurations
|
||||
def with_stubbed_configurations(&block)
|
||||
old_configurations = ActiveRecord::Base.configurations
|
||||
ActiveRecord::Base.configurations = { "production" => { "exists" => { "database" => "my-db" } } }
|
||||
|
||||
assert_deprecated do
|
||||
yield
|
||||
end
|
||||
assert_deprecated(&block)
|
||||
ensure
|
||||
ActiveRecord::Base.configurations = old_configurations
|
||||
assert_deprecated do
|
||||
@ -392,15 +388,13 @@ def test_creates_configurations_with_blank_hosts
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_configurations_establish_connection
|
||||
def with_stubbed_configurations_establish_connection(&block)
|
||||
old_configurations = ActiveRecord::Base.configurations
|
||||
ActiveRecord::Base.configurations = @configurations
|
||||
|
||||
# To refrain from connecting to a newly created empty DB in
|
||||
# sqlite3_mem tests
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil, &block)
|
||||
ensure
|
||||
ActiveRecord::Base.configurations = old_configurations
|
||||
end
|
||||
@ -520,13 +514,11 @@ def config_for(env_name, name)
|
||||
ActiveRecord::Base.configurations.configs_for(env_name: env_name, name: name)
|
||||
end
|
||||
|
||||
def with_stubbed_configurations_establish_connection
|
||||
def with_stubbed_configurations_establish_connection(&block)
|
||||
old_configurations = ActiveRecord::Base.configurations
|
||||
ActiveRecord::Base.configurations = @configurations
|
||||
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil, &block)
|
||||
ensure
|
||||
ActiveRecord::Base.configurations = old_configurations
|
||||
end
|
||||
@ -637,13 +629,11 @@ def config_for(env_name, name)
|
||||
ActiveRecord::Base.configurations.configs_for(env_name: env_name, name: name)
|
||||
end
|
||||
|
||||
def with_stubbed_configurations_establish_connection
|
||||
def with_stubbed_configurations_establish_connection(&block)
|
||||
old_configurations = ActiveRecord::Base.configurations
|
||||
ActiveRecord::Base.configurations = @configurations
|
||||
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.connection_handler.stub(:establish_connection, nil, &block)
|
||||
ensure
|
||||
ActiveRecord::Base.configurations = old_configurations
|
||||
end
|
||||
|
@ -107,11 +107,9 @@ def test_create_when_database_exists_outputs_info_to_stderr
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection_establish_connection
|
||||
def with_stubbed_connection_establish_connection(&block)
|
||||
ActiveRecord::Base.stub(:establish_connection, nil) do
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.stub(:connection, @connection, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -188,11 +186,9 @@ def test_when_database_dropped_successfully_outputs_info_to_stdout
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection_establish_connection
|
||||
def with_stubbed_connection_establish_connection(&block)
|
||||
ActiveRecord::Base.stub(:establish_connection, nil) do
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.stub(:connection, @connection, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -242,11 +238,9 @@ def test_recreates_database_with_the_given_options
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection_establish_connection
|
||||
def with_stubbed_connection_establish_connection(&block)
|
||||
ActiveRecord::Base.stub(:establish_connection, nil) do
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.stub(:connection, @connection, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -138,11 +138,9 @@ def test_create_when_database_exists_outputs_info_to_stderr
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection_establish_connection
|
||||
def with_stubbed_connection_establish_connection(&block)
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
ActiveRecord::Base.stub(:establish_connection, nil) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.stub(:establish_connection, nil, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -199,11 +197,9 @@ def test_when_database_dropped_successfully_outputs_info_to_stdout
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection_establish_connection
|
||||
def with_stubbed_connection_establish_connection(&block)
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
ActiveRecord::Base.stub(:establish_connection, nil) do
|
||||
yield
|
||||
end
|
||||
ActiveRecord::Base.stub(:establish_connection, nil, &block)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -297,10 +293,8 @@ def test_establishes_connection
|
||||
end
|
||||
|
||||
private
|
||||
def with_stubbed_connection
|
||||
ActiveRecord::Base.stub(:connection, @connection) do
|
||||
yield
|
||||
end
|
||||
def with_stubbed_connection(&block)
|
||||
ActiveRecord::Base.stub(:connection, @connection, &block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -37,8 +37,8 @@ def capture_sql
|
||||
SQLCounter.log.dup
|
||||
end
|
||||
|
||||
def assert_sql(*patterns_to_match)
|
||||
capture_sql { yield }
|
||||
def assert_sql(*patterns_to_match, &block)
|
||||
capture_sql(&block)
|
||||
ensure
|
||||
failed_patterns = []
|
||||
patterns_to_match.each do |pattern|
|
||||
|
@ -156,7 +156,7 @@ def assert_blob_identified_before_owner_validated(owner, blob, content_type)
|
||||
assert_equal content_type, blob.reload.content_type
|
||||
end
|
||||
|
||||
def assert_blob_identified_outside_transaction(blob)
|
||||
def assert_blob_identified_outside_transaction(blob, &block)
|
||||
baseline_transaction_depth = ActiveRecord::Base.connection.open_transactions
|
||||
max_transaction_depth = -1
|
||||
|
||||
@ -164,9 +164,7 @@ def assert_blob_identified_outside_transaction(blob)
|
||||
max_transaction_depth = [ActiveRecord::Base.connection.open_transactions, max_transaction_depth].max
|
||||
end
|
||||
|
||||
blob.stub(:identify_without_saving, track_transaction_depth) do
|
||||
yield
|
||||
end
|
||||
blob.stub(:identify_without_saving, track_transaction_depth, &block)
|
||||
|
||||
assert_equal 0, (max_transaction_depth - baseline_transaction_depth)
|
||||
end
|
||||
|
@ -34,13 +34,13 @@ module Benchmarkable
|
||||
# <% benchmark 'Process data files', level: :info, silence: true do %>
|
||||
# <%= expensive_and_chatty_files_operation %>
|
||||
# <% end %>
|
||||
def benchmark(message = "Benchmarking", options = {})
|
||||
def benchmark(message = "Benchmarking", options = {}, &block)
|
||||
if logger
|
||||
options.assert_valid_keys(:level, :silence)
|
||||
options[:level] ||= :info
|
||||
|
||||
result = nil
|
||||
ms = Benchmark.ms { result = options[:silence] ? logger.silence { yield } : yield }
|
||||
ms = Benchmark.ms { result = options[:silence] ? logger.silence(&block) : yield }
|
||||
logger.public_send(options[:level], "%s (%.1fms)" % [ message, ms ])
|
||||
result
|
||||
else
|
||||
|
@ -66,8 +66,8 @@ def fetch_entry(key) # :nodoc:
|
||||
end
|
||||
|
||||
# Use a local cache for the duration of block.
|
||||
def with_local_cache
|
||||
use_temporary_local_cache(LocalStore.new) { yield }
|
||||
def with_local_cache(&block)
|
||||
use_temporary_local_cache(LocalStore.new, &block)
|
||||
end
|
||||
|
||||
# Middleware class can be inserted as a Rack handler to be local cache for the
|
||||
@ -170,8 +170,8 @@ def local_cache
|
||||
LocalCacheRegistry.cache_for(local_cache_key)
|
||||
end
|
||||
|
||||
def bypass_local_cache
|
||||
use_temporary_local_cache(nil) { yield }
|
||||
def bypass_local_cache(&block)
|
||||
use_temporary_local_cache(nil, &block)
|
||||
end
|
||||
|
||||
def use_temporary_local_cache(temporary_cache)
|
||||
|
@ -17,14 +17,12 @@ def mon_enter
|
||||
ActiveSupport::Dependencies.interlock.permit_concurrent_loads { super }
|
||||
end
|
||||
|
||||
def synchronize
|
||||
def synchronize(&block)
|
||||
Thread.handle_interrupt(EXCEPTION_NEVER) do
|
||||
mon_enter
|
||||
|
||||
begin
|
||||
Thread.handle_interrupt(EXCEPTION_IMMEDIATE) do
|
||||
yield
|
||||
end
|
||||
Thread.handle_interrupt(EXCEPTION_IMMEDIATE, &block)
|
||||
ensure
|
||||
mon_exit
|
||||
end
|
||||
|
@ -215,9 +215,9 @@ def eligible_waiters?(compatible)
|
||||
@waiting.any? { |t, (p, _)| compatible.include?(p) && @waiting.all? { |t2, (_, c2)| t == t2 || c2.include?(p) } }
|
||||
end
|
||||
|
||||
def wait_for(method)
|
||||
def wait_for(method, &block)
|
||||
@sleeping[Thread.current] = method
|
||||
@cv.wait_while { yield }
|
||||
@cv.wait_while(&block)
|
||||
ensure
|
||||
@sleeping.delete Thread.current
|
||||
end
|
||||
|
@ -19,7 +19,7 @@ class Array
|
||||
# ["1", "2"]
|
||||
# ["3", "4"]
|
||||
# ["5"]
|
||||
def in_groups_of(number, fill_with = nil)
|
||||
def in_groups_of(number, fill_with = nil, &block)
|
||||
if number.to_i <= 0
|
||||
raise ArgumentError,
|
||||
"Group size must be a positive integer, was #{number.inspect}"
|
||||
@ -36,7 +36,7 @@ def in_groups_of(number, fill_with = nil)
|
||||
end
|
||||
|
||||
if block_given?
|
||||
collection.each_slice(number) { |slice| yield(slice) }
|
||||
collection.each_slice(number, &block)
|
||||
else
|
||||
collection.each_slice(number).to_a
|
||||
end
|
||||
@ -59,7 +59,7 @@ def in_groups_of(number, fill_with = nil)
|
||||
# ["1", "2", "3"]
|
||||
# ["4", "5"]
|
||||
# ["6", "7"]
|
||||
def in_groups(number, fill_with = nil)
|
||||
def in_groups(number, fill_with = nil, &block)
|
||||
# size.div number gives minor group size;
|
||||
# size % number gives how many objects need extra accommodation;
|
||||
# each group hold either division or division + 1 items.
|
||||
@ -79,7 +79,7 @@ def in_groups(number, fill_with = nil)
|
||||
end
|
||||
|
||||
if block_given?
|
||||
groups.each { |g| yield(g) }
|
||||
groups.each(&block)
|
||||
else
|
||||
groups
|
||||
end
|
||||
@ -90,11 +90,11 @@ def in_groups(number, fill_with = nil)
|
||||
#
|
||||
# [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]]
|
||||
# (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
|
||||
def split(value = nil)
|
||||
def split(value = nil, &block)
|
||||
arr = dup
|
||||
result = []
|
||||
if block_given?
|
||||
while (idx = arr.index { |i| yield i })
|
||||
while (idx = arr.index(&block))
|
||||
result << arr.shift(idx)
|
||||
arr.shift
|
||||
end
|
||||
|
@ -11,14 +11,14 @@ module Kernel
|
||||
# end
|
||||
#
|
||||
# noisy_call # warning voiced
|
||||
def silence_warnings
|
||||
with_warnings(nil) { yield }
|
||||
def silence_warnings(&block)
|
||||
with_warnings(nil, &block)
|
||||
end
|
||||
|
||||
# Sets $VERBOSE to +true+ for the duration of the block and back to its
|
||||
# original value afterwards.
|
||||
def enable_warnings
|
||||
with_warnings(true) { yield }
|
||||
def enable_warnings(&block)
|
||||
with_warnings(true, &block)
|
||||
end
|
||||
|
||||
# Sets $VERBOSE for the duration of the block and back to its original
|
||||
|
@ -14,22 +14,22 @@ module Dependencies # :nodoc:
|
||||
|
||||
# Execute the supplied block without interference from any
|
||||
# concurrent loads.
|
||||
def self.run_interlock
|
||||
interlock.running { yield }
|
||||
def self.run_interlock(&block)
|
||||
interlock.running(&block)
|
||||
end
|
||||
|
||||
# Execute the supplied block while holding an exclusive lock,
|
||||
# preventing any other thread from being inside a #run_interlock
|
||||
# block at the same time.
|
||||
def self.load_interlock
|
||||
interlock.loading { yield }
|
||||
def self.load_interlock(&block)
|
||||
interlock.loading(&block)
|
||||
end
|
||||
|
||||
# Execute the supplied block while holding an exclusive lock,
|
||||
# preventing any other thread from being inside a #run_interlock
|
||||
# block at the same time.
|
||||
def self.unload_interlock
|
||||
interlock.unloading { yield }
|
||||
def self.unload_interlock(&block)
|
||||
interlock.unloading(&block)
|
||||
end
|
||||
|
||||
# :nodoc:
|
||||
|
@ -9,16 +9,12 @@ def initialize # :nodoc:
|
||||
@lock = ActiveSupport::Concurrency::ShareLock.new
|
||||
end
|
||||
|
||||
def loading
|
||||
@lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load]) do
|
||||
yield
|
||||
end
|
||||
def loading(&block)
|
||||
@lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load], &block)
|
||||
end
|
||||
|
||||
def unloading
|
||||
@lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload]) do
|
||||
yield
|
||||
end
|
||||
def unloading(&block)
|
||||
@lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload], &block)
|
||||
end
|
||||
|
||||
def start_unloading
|
||||
@ -37,16 +33,12 @@ def done_running
|
||||
@lock.stop_sharing
|
||||
end
|
||||
|
||||
def running
|
||||
@lock.sharing do
|
||||
yield
|
||||
end
|
||||
def running(&block)
|
||||
@lock.sharing(&block)
|
||||
end
|
||||
|
||||
def permit_concurrent_loads
|
||||
@lock.yield_shares(compatible: [:load]) do
|
||||
yield
|
||||
end
|
||||
def permit_concurrent_loads(&block)
|
||||
@lock.yield_shares(compatible: [:load], &block)
|
||||
end
|
||||
|
||||
def raw_state(&block) # :nodoc:
|
||||
|
@ -99,9 +99,7 @@ def parallelize(workers: :number_of_processors, with: :processes, threshold: Act
|
||||
# end
|
||||
# end
|
||||
def parallelize_setup(&block)
|
||||
ActiveSupport::Testing::Parallelization.after_fork_hook do |worker|
|
||||
yield worker
|
||||
end
|
||||
ActiveSupport::Testing::Parallelization.after_fork_hook(&block)
|
||||
end
|
||||
|
||||
# Clean up hook for parallel testing. This can be used to drop databases
|
||||
@ -118,9 +116,7 @@ def parallelize_setup(&block)
|
||||
# end
|
||||
# end
|
||||
def parallelize_teardown(&block)
|
||||
ActiveSupport::Testing::Parallelization.run_cleanup_hook do |worker|
|
||||
yield worker
|
||||
end
|
||||
ActiveSupport::Testing::Parallelization.run_cleanup_hook(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -6,10 +6,10 @@ module ActiveSupport
|
||||
module Testing
|
||||
module MethodCallAssertions # :nodoc:
|
||||
private
|
||||
def assert_called(object, method_name, message = nil, times: 1, returns: nil)
|
||||
def assert_called(object, method_name, message = nil, times: 1, returns: nil, &block)
|
||||
times_called = 0
|
||||
|
||||
object.stub(method_name, proc { times_called += 1; returns }) { yield }
|
||||
object.stub(method_name, proc { times_called += 1; returns }, &block)
|
||||
|
||||
error = "Expected #{method_name} to be called #{times} times, " \
|
||||
"but was called #{times_called} times"
|
||||
@ -17,7 +17,7 @@ def assert_called(object, method_name, message = nil, times: 1, returns: nil)
|
||||
assert_equal times, times_called, error
|
||||
end
|
||||
|
||||
def assert_called_with(object, method_name, args, returns: nil)
|
||||
def assert_called_with(object, method_name, args, returns: nil, &block)
|
||||
mock = Minitest::Mock.new
|
||||
|
||||
if args.all?(Array)
|
||||
@ -26,7 +26,7 @@ def assert_called_with(object, method_name, args, returns: nil)
|
||||
mock.expect(:call, returns, args)
|
||||
end
|
||||
|
||||
object.stub(method_name, mock) { yield }
|
||||
object.stub(method_name, mock, &block)
|
||||
|
||||
mock.verify
|
||||
end
|
||||
|
@ -14,11 +14,9 @@ def silence_stream(stream)
|
||||
old_stream.close
|
||||
end
|
||||
|
||||
def quietly
|
||||
def quietly(&block)
|
||||
silence_stream(STDOUT) do
|
||||
silence_stream(STDERR) do
|
||||
yield
|
||||
end
|
||||
silence_stream(STDERR, &block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -19,8 +19,8 @@ def initialize(values = [1, 2, 3])
|
||||
@values = values
|
||||
end
|
||||
|
||||
def each
|
||||
@values.each { |v| yield v }
|
||||
def each(&block)
|
||||
@values.each(&block)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -93,9 +93,7 @@ def locale_query(locale)
|
||||
request.query_parameters.merge(locale: locale).to_query
|
||||
end
|
||||
|
||||
def set_locale
|
||||
I18n.with_locale(params[:locale] || I18n.default_locale) do
|
||||
yield
|
||||
end
|
||||
def set_locale(&block)
|
||||
I18n.with_locale(params[:locale] || I18n.default_locale, &block)
|
||||
end
|
||||
end
|
||||
|
@ -293,10 +293,8 @@ def test_print_help_long
|
||||
private :aborted, :output
|
||||
|
||||
private
|
||||
def app_db_config(results)
|
||||
Rails.application.config.stub(:database_configuration, results || {}) do
|
||||
yield
|
||||
end
|
||||
def app_db_config(results, &block)
|
||||
Rails.application.config.stub(:database_configuration, results || {}, &block)
|
||||
end
|
||||
|
||||
def make_dbconsole
|
||||
|
@ -4,21 +4,17 @@
|
||||
|
||||
module EnvHelpers
|
||||
private
|
||||
def with_rails_env(env)
|
||||
def with_rails_env(env, &block)
|
||||
Rails.instance_variable_set :@_env, nil
|
||||
switch_env "RAILS_ENV", env do
|
||||
switch_env "RACK_ENV", nil do
|
||||
yield
|
||||
end
|
||||
switch_env "RACK_ENV", nil, &block
|
||||
end
|
||||
end
|
||||
|
||||
def with_rack_env(env)
|
||||
def with_rack_env(env, &block)
|
||||
Rails.instance_variable_set :@_env, nil
|
||||
switch_env "RACK_ENV", env do
|
||||
switch_env "RAILS_ENV", nil do
|
||||
yield
|
||||
end
|
||||
switch_env "RAILS_ENV", nil, &block
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1026,11 +1026,9 @@ def test_minimal_rails_app
|
||||
end
|
||||
|
||||
private
|
||||
def stub_rails_application(root)
|
||||
def stub_rails_application(root, &block)
|
||||
Rails.application.config.root = root
|
||||
Rails.application.class.stub(:name, "Myapp") do
|
||||
yield
|
||||
end
|
||||
Rails.application.class.stub(:name, "Myapp", &block)
|
||||
end
|
||||
|
||||
def action(*args, &block)
|
||||
|
Loading…
Reference in New Issue
Block a user