Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Replaced class and instance level `send` #1479

Merged
merged 1 commit into from

2 participants

@seanpdoyle

Replaced with __send__ from std lib

  • send can now be overridden to be more semantically meaningful
    • message.send(user_id) as opposed to message.send_message(user_id)
  • __send__ makes it clear that the reflective version is intended
@seanpdoyle seanpdoyle Replaced class and instance level `send`
Replaced with `__send__` from std lib

* `send` can now be overridden to be more semantically meaningful
  * `message.send(user_id)` as opposed to `message.send_message(user_id)`
* `__send__` makes it clear that the reflective version is intended
e12bf87
@mperham mperham merged commit f6de1fa into mperham:master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Feb 14, 2014
  1. @seanpdoyle

    Replaced class and instance level `send`

    seanpdoyle authored
    Replaced with `__send__` from std lib
    
    * `send` can now be overridden to be more semantically meaningful
      * `message.send(user_id)` as opposed to `message.send_message(user_id)`
    * `__send__` makes it clear that the reflective version is intended
This page is out of date. Refresh to see the latest.
View
6 lib/sidekiq/actor.rb
@@ -28,10 +28,10 @@ def defer
def self.included(klass)
if $TESTING
- klass.send(:include, InstanceMethods)
- klass.send(:extend, ClassMethods)
+ klass.__send__(:include, InstanceMethods)
+ klass.__send__(:extend, ClassMethods)
else
- klass.send(:include, Celluloid)
+ klass.__send__(:include, Celluloid)
end
end
end
View
2  lib/sidekiq/api.rb
@@ -203,7 +203,7 @@ def delete
end
def [](name)
- @item.send(:[], name)
+ @item.__send__(:[], name)
end
end
View
2  lib/sidekiq/extensions/action_mailer.rb
@@ -14,7 +14,7 @@ class DelayedMailer
def perform(yml)
(target, method_name, args) = YAML.load(yml)
- msg = target.send(method_name, *args)
+ msg = target.__send__(method_name, *args)
# The email method can return nil, which causes ActionMailer to return
# an undeliverable empty message.
msg.deliver if msg && (msg.to || msg.cc || msg.bcc) && msg.from
View
2  lib/sidekiq/extensions/active_record.rb
@@ -16,7 +16,7 @@ class DelayedModel
def perform(yml)
(target, method_name, args) = YAML.load(yml)
- target.send(method_name, *args)
+ target.__send__(method_name, *args)
end
end
View
4 lib/sidekiq/extensions/class_methods.rb
@@ -14,7 +14,7 @@ class DelayedClass
def perform(yml)
(target, method_name, args) = YAML.load(yml)
- target.send(method_name, *args)
+ target.__send__(method_name, *args)
end
end
@@ -36,4 +36,4 @@ def sidekiq_delay_until(timestamp, options={})
end
end
-Module.send(:include, Sidekiq::Extensions::Klass)
+Module.__send__(:include, Sidekiq::Extensions::Klass)
View
2  lib/sidekiq/rails.rb
@@ -1,7 +1,7 @@
module Sidekiq
def self.hook_rails!
if defined?(::ActiveRecord)
- ::ActiveRecord::Base.send(:include, Sidekiq::Extensions::ActiveRecord)
+ ::ActiveRecord::Base.__send__(:include, Sidekiq::Extensions::ActiveRecord)
end
if defined?(::ActionMailer)
View
12 test/test_cli.rb
@@ -294,8 +294,8 @@ class TestCli < Sidekiq::Test
describe 'when weight is present' do
it 'concatenates queues by factor of weight and sets strict to false' do
opts = { strict: true }
- @cli.send :parse_queues, opts, [['often', 7], ['repeatedly', 3]]
- @cli.send :parse_queues, opts, [['once']]
+ @cli.__send__ :parse_queues, opts, [['often', 7], ['repeatedly', 3]]
+ @cli.__send__ :parse_queues, opts, [['once']]
assert_equal (%w[often] * 7 + %w[repeatedly] * 3 + %w[once]), opts[:queues]
assert !opts[:strict]
end
@@ -304,8 +304,8 @@ class TestCli < Sidekiq::Test
describe 'when weight is not present' do
it 'returns queues and sets strict' do
opts = { strict: true }
- @cli.send :parse_queues, opts, [['once'], ['one_time']]
- @cli.send :parse_queues, opts, [['einmal']]
+ @cli.__send__ :parse_queues, opts, [['once'], ['one_time']]
+ @cli.__send__ :parse_queues, opts, [['einmal']]
assert_equal %w[once one_time einmal], opts[:queues]
assert opts[:strict]
end
@@ -316,7 +316,7 @@ class TestCli < Sidekiq::Test
describe 'when weight is present' do
it 'concatenates queue to opts[:queues] weight number of times and sets strict to false' do
opts = { strict: true }
- @cli.send :parse_queue, opts, 'often', 7
+ @cli.__send__ :parse_queue, opts, 'often', 7
assert_equal %w[often] * 7, opts[:queues]
assert !opts[:strict]
end
@@ -325,7 +325,7 @@ class TestCli < Sidekiq::Test
describe 'when weight is not present' do
it 'concatenates queue to opts[:queues] once and leaves strict true' do
opts = { strict: true }
- @cli.send :parse_queue, opts, 'once', nil
+ @cli.__send__ :parse_queue, opts, 'once', nil
assert_equal %w[once], opts[:queues]
assert opts[:strict]
end
View
4 test/test_client.rb
@@ -226,11 +226,11 @@ def call(worker_class, message, queue)
describe 'item normalization' do
it 'defaults retry to true' do
- assert_equal true, Sidekiq::Client.new.send(:normalize_item, 'class' => QueuedWorker, 'args' => [])['retry']
+ assert_equal true, Sidekiq::Client.new.__send__(:normalize_item, 'class' => QueuedWorker, 'args' => [])['retry']
end
it "does not normalize numeric retry's" do
- assert_equal 2, Sidekiq::Client.new.send(:normalize_item, 'class' => CWorker, 'args' => [])['retry']
+ assert_equal 2, Sidekiq::Client.new.__send__(:normalize_item, 'class' => CWorker, 'args' => [])['retry']
end
end
end
View
8 test/test_exception_handler.rb
@@ -59,7 +59,7 @@ class TestExceptionHandler < Sidekiq::Test
end
after do
- Object.send(:remove_const, "Airbrake") # HACK should probably inject Airbrake etc into this class in the future
+ Object.__send__(:remove_const, "Airbrake") # HACK should probably inject Airbrake etc into this class in the future
end
it "notifies Airbrake" do
@@ -75,7 +75,7 @@ class TestExceptionHandler < Sidekiq::Test
end
after do
- Object.send(:remove_const, "Honeybadger") # HACK should probably inject Honeybadger etc into this class in the future
+ Object.__send__(:remove_const, "Honeybadger") # HACK should probably inject Honeybadger etc into this class in the future
end
it "notifies Honeybadger" do
@@ -91,7 +91,7 @@ class TestExceptionHandler < Sidekiq::Test
end
after do
- Object.send(:remove_const, "ExceptionNotifier")
+ Object.__send__(:remove_const, "ExceptionNotifier")
end
it "notifies ExceptionNotifier" do
@@ -120,7 +120,7 @@ def self.check_context
end
after do
- Object.send(:remove_const, "Exceptional")
+ Object.__send__(:remove_const, "Exceptional")
end
it "notifies Exceptional" do
View
2  test/test_redis_connection.rb
@@ -77,7 +77,7 @@ def with_env_var(var, uri, skip_provider=false)
ENV[v] = nil
end
ENV[var] = uri
- assert_equal uri, Sidekiq::RedisConnection.send(:determine_redis_provider)
+ assert_equal uri, Sidekiq::RedisConnection.__send__(:determine_redis_provider)
ENV[var] = nil
end
View
10 test/test_retry.rb
@@ -210,7 +210,7 @@ def retries_exhausted(*args)
end
it 'calls worker.retries_exhausted after too many retries' do
- assert_equal [1,2, "foo", "retried_method"], handler.send(:retries_exhausted, worker.new, msg)
+ assert_equal [1,2, "foo", "retried_method"], handler.__send__(:retries_exhausted, worker.new, msg)
end
end
@@ -226,7 +226,7 @@ def retries_exhausted(*args)
end
it 'calls worker sidekiq_retries_exhausted_block after too many retries' do
- new_msg = handler.send(:retries_exhausted, worker.new, msg)
+ new_msg = handler.__send__(:retries_exhausted, worker.new, msg)
expected_msg = msg.merge('called_by_callback' => true)
assert_equal expected_msg, new_msg, "sidekiq_retries_exhausted block not called"
@@ -288,15 +288,15 @@ def task_misbehaving_worker
let(:handler) { Sidekiq::Middleware::Server::RetryJobs.new }
it "retries with a default delay" do
- refute_equal 4, handler.send(:delay_for, worker, 2)
+ refute_equal 4, handler.__send__(:delay_for, worker, 2)
end
it "retries with a custom delay" do
- assert_equal 4, handler.send(:delay_for, custom_worker, 2)
+ assert_equal 4, handler.__send__(:delay_for, custom_worker, 2)
end
it "falls back to the default retry on exception" do
- refute_equal 4, handler.send(:delay_for, error_worker, 2)
+ refute_equal 4, handler.__send__(:delay_for, error_worker, 2)
assert_match(/Failure scheduling retry using the defined `sidekiq_retry_in`/,
File.read(@tmp_log_path), 'Log entry missing for sidekiq_retry_in')
end
Something went wrong with that request. Please try again.