redistat 0.0.7 → 0.0.8

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- redistat (0.0.6)
4
+ redistat (0.0.8)
5
5
  activesupport (>= 2.3.0)
6
6
  json (>= 1.4.0)
7
7
  redis (>= 2.1.0)
data/lib/redistat.rb CHANGED
@@ -13,6 +13,7 @@ require 'redistat/collection'
13
13
  require 'redistat/connection'
14
14
  require 'redistat/database'
15
15
  require 'redistat/date'
16
+ require 'redistat/date_helper'
16
17
  require 'redistat/event'
17
18
  require 'redistat/finder'
18
19
  require 'redistat/finder/date_set'
@@ -22,6 +23,7 @@ require 'redistat/model'
22
23
  require 'redistat/result'
23
24
  require 'redistat/scope'
24
25
  require 'redistat/summary'
26
+ require 'redistat/version'
25
27
 
26
28
  require 'redistat/core_ext/date'
27
29
  require 'redistat/core_ext/time'
@@ -18,6 +18,7 @@ module Redistat
18
18
  end
19
19
 
20
20
  def create(options = {})
21
+ #TODO clean/remove all ref-less connections
21
22
  ref = options.delete(:ref) || :default
22
23
  options.reverse_merge!(default_options)
23
24
  conn = (connections[connection_id(options)] ||= connection(options))
@@ -26,15 +27,11 @@ module Redistat
26
27
  end
27
28
 
28
29
  def connections
29
- threaded[:connections] ||= {}
30
+ @connections ||= {}
30
31
  end
31
32
 
32
33
  def references
33
- threaded[:references] ||= {}
34
- end
35
-
36
- def threaded
37
- Thread.current[:redistat] ||= {}
34
+ @references ||= {}
38
35
  end
39
36
 
40
37
  private
data/lib/redistat/date.rb CHANGED
@@ -85,11 +85,4 @@ module Redistat
85
85
  end
86
86
 
87
87
  end
88
-
89
- module DateHelper
90
- def to_redistat(depth = nil)
91
- Redistat::Date.new(self, depth)
92
- end
93
- alias :to_rs :to_redistat
94
- end
95
88
  end
@@ -0,0 +1,8 @@
1
+ module Redistat
2
+ module DateHelper
3
+ def to_redistat(depth = nil)
4
+ Redistat::Date.new(self, depth)
5
+ end
6
+ alias :to_rs :to_redistat
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module Redistat
2
- VERSION = "0.0.7"
3
- end
2
+ VERSION = "0.0.8"
3
+ end
data/spec/spec_helper.rb CHANGED
@@ -8,5 +8,5 @@ require 'rspec'
8
8
  require 'rspec/autorun'
9
9
 
10
10
  # use the test Redistat instance
11
- Redistat.connect(:port => 8379, :db => 15)
11
+ Redistat.connect(:port => 8379, :db => 15, :thread_safe => true)
12
12
  Redistat.redis.flushdb
@@ -0,0 +1,39 @@
1
+ require "spec_helper"
2
+
3
+ describe "Thread-Safety" do
4
+ include Redistat::Database
5
+
6
+ before(:each) do
7
+ db.flushdb
8
+ end
9
+
10
+ #TODO should have more comprehensive thread-safe tests
11
+
12
+ it "should incr in multiple threads" do
13
+ threads = []
14
+ 50.times do
15
+ threads << Thread.new {
16
+ db.incr("spec:incr")
17
+ }
18
+ end
19
+ threads.each { |t| t.join }
20
+ db.get("spec:incr").should == "50"
21
+ end
22
+
23
+ it "should store event in multiple threads" do
24
+ class ThreadSafetySpec
25
+ include Redistat::Model
26
+ end
27
+ threads = []
28
+ 50.times do
29
+ threads << Thread.new {
30
+ ThreadSafetySpec.store("spec:threadsafe", {:count => 1, :rand => rand(5)})
31
+ }
32
+ end
33
+ threads.each { |t| t.join }
34
+ result = ThreadSafetySpec.fetch("spec:threadsafe", 5.hours.ago, 5.hours.from_now)
35
+ result.total[:count].should == 50
36
+ result.total[:rand].should <= 250
37
+ end
38
+
39
+ end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redistat
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 0
8
- - 7
9
- version: 0.0.7
9
+ - 8
10
+ version: 0.0.8
10
11
  platform: ruby
11
12
  authors:
12
13
  - Jim Myhrberg
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-12-29 00:00:00 +00:00
18
+ date: 2011-01-12 00:00:00 +00:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
@@ -25,6 +26,7 @@ dependencies:
25
26
  requirements:
26
27
  - - ">="
27
28
  - !ruby/object:Gem::Version
29
+ hash: 3
28
30
  segments:
29
31
  - 2
30
32
  - 3
@@ -40,6 +42,7 @@ dependencies:
40
42
  requirements:
41
43
  - - ">="
42
44
  - !ruby/object:Gem::Version
45
+ hash: 7
43
46
  segments:
44
47
  - 1
45
48
  - 4
@@ -55,6 +58,7 @@ dependencies:
55
58
  requirements:
56
59
  - - ">="
57
60
  - !ruby/object:Gem::Version
61
+ hash: 11
58
62
  segments:
59
63
  - 2
60
64
  - 1
@@ -70,6 +74,7 @@ dependencies:
70
74
  requirements:
71
75
  - - ">="
72
76
  - !ruby/object:Gem::Version
77
+ hash: 7
73
78
  segments:
74
79
  - 0
75
80
  - 2
@@ -85,6 +90,7 @@ dependencies:
85
90
  requirements:
86
91
  - - ">="
87
92
  - !ruby/object:Gem::Version
93
+ hash: 11
88
94
  segments:
89
95
  - 2
90
96
  - 1
@@ -100,6 +106,7 @@ dependencies:
100
106
  requirements:
101
107
  - - ">="
102
108
  - !ruby/object:Gem::Version
109
+ hash: 1
103
110
  segments:
104
111
  - 0
105
112
  - 6
@@ -134,6 +141,7 @@ files:
134
141
  - lib/redistat/core_ext/time.rb
135
142
  - lib/redistat/database.rb
136
143
  - lib/redistat/date.rb
144
+ - lib/redistat/date_helper.rb
137
145
  - lib/redistat/event.rb
138
146
  - lib/redistat/finder.rb
139
147
  - lib/redistat/finder/date_set.rb
@@ -162,6 +170,7 @@ files:
162
170
  - spec/scope_spec.rb
163
171
  - spec/spec_helper.rb
164
172
  - spec/summary_spec.rb
173
+ - spec/thread_safety_spec.rb
165
174
  has_rdoc: true
166
175
  homepage: http://github.com/jimeh/redistat
167
176
  licenses: []
@@ -176,6 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
185
  requirements:
177
186
  - - ">="
178
187
  - !ruby/object:Gem::Version
188
+ hash: 3
179
189
  segments:
180
190
  - 0
181
191
  version: "0"
@@ -184,6 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
194
  requirements:
185
195
  - - ">="
186
196
  - !ruby/object:Gem::Version
197
+ hash: 3
187
198
  segments:
188
199
  - 0
189
200
  version: "0"
@@ -212,3 +223,4 @@ test_files:
212
223
  - spec/scope_spec.rb
213
224
  - spec/spec_helper.rb
214
225
  - spec/summary_spec.rb
226
+ - spec/thread_safety_spec.rb