thread_variable 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 692102ea3dcb752e0a3ebfaf61d0107beef38597
4
+ data.tar.gz: 36ec30f4cef1207eb5c3928b3f0799dfbc7106f8
5
+ SHA512:
6
+ metadata.gz: 8629c028a167acc2ce821de13a88c9c77eee039c41dbf297fcb5ffc89d7c7db383f9b2a8b962daa42473254e96e0c70e8360e6e88ebb1018aaf4c6cfb29cf7be
7
+ data.tar.gz: 77551da443ae0cfa13d81a033c50cc95360b8e501c35cb7ccd4150317f2d58ecffc8c631a035f1fb1597d84bdd3be13104efca8f5fc1ba241b302e14db86cd04
data/.travis.yml CHANGED
@@ -1,5 +1,7 @@
1
+ language: ruby
1
2
  rvm:
2
3
  - 1.9.2
3
4
  - 1.9.3
5
+ - 2.0.0
4
6
  - jruby-19mode
5
7
  - rbx-19mode
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # ThreadVariable
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/amarshall/thread_variable.png)](http://travis-ci.org/amarshall/thread_variable)
3
+ [![Build Status](https://secure.travis-ci.org/amarshall/thread_variable.png?branch=master)](http://travis-ci.org/amarshall/thread_variable)
4
+ [![Code Climate](https://codeclimate.com/github/amarshall/thread_variable.png)](https://codeclimate.com/github/amarshall/thread_variable)
4
5
 
5
6
  Makes it easy to create and use thread-local variables. This encapsulates two patterns:
6
7
 
@@ -15,23 +16,27 @@ Install as your normally would, nothing special here. Only compatible with Ruby
15
16
 
16
17
  Simply `extend ThreadVariable` and call `thread_variable` in classes you want thread variables in:
17
18
 
18
- class C
19
- extend ThreadVariable
20
- thread_variable :foo
21
- end
19
+ ```ruby
20
+ class C
21
+ extend ThreadVariable
22
+ thread_variable :foo
23
+ end
22
24
 
23
- C.foo = 'bar'
25
+ C.foo = 'bar'
24
26
 
25
- Thread.new do
26
- C.foo = 'baz'
27
- C.foo #=> "baz"
28
- end.join
27
+ Thread.new do
28
+ C.foo = 'baz'
29
+ C.foo #=> "baz"
30
+ end.join
29
31
 
30
- C.foo #=> "bar"
32
+ C.foo #=> "bar"
33
+ ```
31
34
 
32
- If you don’t want to `extend ThreadLocal` everywhere you can instead do
35
+ If you don’t want to `extend ThreadVariable` everywhere you can instead do
33
36
 
34
- require 'thread_variable/core_ext'
37
+ ```ruby
38
+ require 'thread_variable/core_ext'
39
+ ```
35
40
 
36
41
  which will `include ThreadVariable` in both `Class` & `Module`.
37
42
 
@@ -3,13 +3,13 @@ require 'thread_variable/version'
3
3
  module ThreadVariable
4
4
  def thread_variable *names
5
5
  names.each do |name|
6
+ namespace = (self.name || self.object_id.to_s).to_sym
7
+
6
8
  define_singleton_method :"#{name}" do
7
- namespace = (self.name ? self.name : self.object_id.to_s).to_sym
8
9
  (Thread.current[namespace] ||= {})[name]
9
10
  end
10
11
 
11
12
  define_singleton_method :"#{name}=" do |val|
12
- namespace = (self.name ? self.name : self.object_id.to_s).to_sym
13
13
  (Thread.current[namespace] ||= {})[name] = val
14
14
  end
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module ThreadVariable
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -2,4 +2,8 @@ require 'thread_variable'
2
2
 
3
3
  RSpec.configure do |config|
4
4
  config.color_enabled = true
5
+
6
+ config.expect_with :rspec do |c|
7
+ c.syntax = :expect
8
+ end
5
9
  end
@@ -10,20 +10,20 @@ describe ThreadVariable do
10
10
 
11
11
  before do
12
12
  # Normally I wouldn't do this, but threads are special
13
- klass.my_var.should be_nil
13
+ expect(klass.my_var).to be_nil
14
14
  end
15
15
 
16
16
  it "can set and retrieve a thread variable" do
17
17
  klass_var = klass.my_var = double
18
- klass.my_var.should == klass_var
18
+ expect(klass.my_var).to eq klass_var
19
19
  end
20
20
 
21
21
  it "is local to a thread" do
22
22
  klass_var = klass.my_var = double
23
23
  Thread.new do
24
- klass.my_var.should be_nil
24
+ expect(klass.my_var).to be_nil
25
25
  end.join
26
- klass.my_var.should == klass_var
26
+ expect(klass.my_var).to eq klass_var
27
27
  end
28
28
 
29
29
  it "namespaces thread variables for anonymous classes" do
@@ -35,8 +35,8 @@ describe ThreadVariable do
35
35
  klass_var = klass.my_var = double
36
36
  other_var = other_klass.my_var = double
37
37
 
38
- klass.my_var.should == klass_var
39
- other_klass.my_var.should == other_var
38
+ expect(klass.my_var).to eq klass_var
39
+ expect(other_klass.my_var).to eq other_var
40
40
  end
41
41
 
42
42
  it "namespaces thread variables for named classes" do
@@ -49,7 +49,7 @@ describe ThreadVariable do
49
49
  c_var = C.my_var = double
50
50
  d_var = D.my_var = double
51
51
 
52
- C.my_var.should == c_var
53
- D.my_var.should == d_var
52
+ expect(C.my_var).to eq c_var
53
+ expect(D.my_var).to eq d_var
54
54
  end
55
55
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thread_variable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Andrew Marshall
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
11
+ date: 2013-05-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Makes it easy to create and use thread-local variables.
@@ -64,27 +59,26 @@ files:
64
59
  - thread_variable.gemspec
65
60
  homepage: http://johnandrewmarshall.com/projects/thread_variable
66
61
  licenses: []
62
+ metadata: {}
67
63
  post_install_message:
68
64
  rdoc_options: []
69
65
  require_paths:
70
66
  - lib
71
67
  required_ruby_version: !ruby/object:Gem::Requirement
72
- none: false
73
68
  requirements:
74
- - - ! '>='
69
+ - - '>='
75
70
  - !ruby/object:Gem::Version
76
71
  version: '0'
77
72
  required_rubygems_version: !ruby/object:Gem::Requirement
78
- none: false
79
73
  requirements:
80
- - - ! '>='
74
+ - - '>='
81
75
  - !ruby/object:Gem::Version
82
76
  version: '0'
83
77
  requirements: []
84
78
  rubyforge_project:
85
- rubygems_version: 1.8.24
79
+ rubygems_version: 2.0.3
86
80
  signing_key:
87
- specification_version: 3
81
+ specification_version: 4
88
82
  summary: Makes it easy to create and use thread-local variables.
89
83
  test_files:
90
84
  - spec/spec_helper.rb