diff --git a/.travis.yml b/.travis.yml index f1b4153..8fba74e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,4 @@ language: ruby rvm: - - 2.1.8 - - 2.2.3 - - 2.3.1 -before_install: gem install bundler -v 1.10.6 + - 3.3.4 +before_install: gem install bundler -v 2.5 diff --git a/lib/thread/inheritable_attributes.rb b/lib/thread/inheritable_attributes.rb index 7b02b99..ed2a2f3 100644 --- a/lib/thread/inheritable_attributes.rb +++ b/lib/thread/inheritable_attributes.rb @@ -9,7 +9,7 @@ def initialize(*args, &block) _inheritable_attributes = inheritable_attributes.dup _initialize(*args) do |*block_args| store[:inheritable_attributes] = _inheritable_attributes - block.call(block_args) + block.call(*block_args) end end diff --git a/spec/thread/inheritable_attributes_spec.rb b/spec/thread/inheritable_attributes_spec.rb index fac4f30..8fe7bd2 100644 --- a/spec/thread/inheritable_attributes_spec.rb +++ b/spec/thread/inheritable_attributes_spec.rb @@ -1,4 +1,5 @@ require "thread/inheritable_attributes" +require "securerandom" RSpec.describe Thread do after { Thread.current.send(:store)[:inheritable_attributes] = nil } @@ -33,6 +34,13 @@ Thread.new(a, b, c) { |d, e, f| arr << d << e << f }.join expect(arr).to eq [1, 2, 3] end + + it "single arg is expanded properly" do + total = 1 + a = 7 + Thread.new(a) { |b| total += b }.join + expect(total).to eq 8 + end end describe "#get_inheritable_attribute" do diff --git a/thread-inheritable_attributes.gemspec b/thread-inheritable_attributes.gemspec index 304bb93..10d8f38 100644 --- a/thread-inheritable_attributes.gemspec +++ b/thread-inheritable_attributes.gemspec @@ -19,7 +19,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_development_dependency "bundler", "~> 1.10" + spec.add_development_dependency "bundler", "~> 2.5" spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "rspec", "~> 3.4" spec.add_runtime_dependency "request_store", "~> 1.3"