/Users/dylants/src/memcached-ruby/lib/memcached/memcached.rb:653: warning: method redefined; discarding old set_credentials
/Users/dylants/src/memcached-ruby/lib/memcached/auth.rb:8: warning: previous definition of set_credentials was here
/Users/dylants/src/memcached-ruby/lib/memcached/rails.rb:1: warning: /Users/dylants/src/memcached-ruby/lib/memcached/rails.rb:1: warning: loading in progress, circular require considered harmful - /Users/dylants/src/memcached-ruby/lib/memcached.rb
from /Users/dylants/.gem/ruby/2.7.2/gems/rake-13.0.3/lib/rake/rake_test_loader.rb:5:in `<main>'
from /Users/dylants/.gem/ruby/2.7.2/gems/rake-13.0.3/lib/rake/rake_test_loader.rb:5:in `select'
from /Users/dylants/.gem/ruby/2.7.2/gems/rake-13.0.3/lib/rake/rake_test_loader.rb:17:in `block in <main>'
from /Users/dylants/.gem/ruby/2.7.2/gems/rake-13.0.3/lib/rake/rake_test_loader.rb:17:in `require'
from /Users/dylants/src/memcached-ruby/test/unit/binding_test.rb:2:in `<top (required)>'
from /Users/dylants/src/memcached-ruby/test/unit/binding_test.rb:2:in `require'
from /Users/dylants/src/memcached-ruby/test/test_helper.rb:8:in `<top (required)>'
from /Users/dylants/src/memcached-ruby/test/test_helper.rb:8:in `require'
from /Users/dylants/src/memcached-ruby/lib/memcached.rb:32:in `<top (required)>'
from /Users/dylants/src/memcached-ruby/lib/memcached.rb:32:in `require'
from /Users/dylants/src/memcached-ruby/lib/memcached/rails.rb:1:in `<top (required)>'
from /Users/dylants/src/memcached-ruby/lib/memcached/rails.rb:1:in `require'
...
test/unit/rails_test.rb:91: warning: instance variable @called not initialized
Solution
I used the version of set_credentials that was actually being used (the one replacing the other). I also decided these methods should be in lib/memcached/memcached.rb with the other methods for this class.
I fixed the circular require warning by autoloading the legacy Rails module, since normally it shouldn't be used anyways. I did the same for the Experimental module.
I used flunk in the test block that was expecting not to be called, rather than testing for the absence of an instance variable being set.
@casperisfine for review
Problem
When running tests, I was getting the following warnings that weren't fixed by https://github.com/arthurnn/memcached/pull/167
...
Solution
set_credentials
that was actually being used (the one replacing the other). I also decided these methods should be in lib/memcached/memcached.rb with the other methods for this class.flunk
in the test block that was expecting not to be called, rather than testing for the absence of an instance variable being set.