ost 0.1.5 → 0.1.6

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.
Files changed (6) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1 -1
  3. data/lib/ost.rb +5 -1
  4. data/ost.gemspec +1 -1
  5. data/test/ost_test.rb +22 -0
  6. metadata +7 -13
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7d56949a251817fd42e7b1c1ea085185512f1567
4
+ data.tar.gz: e4a06723f0629316b924db731ce1d2521e18eccf
5
+ SHA512:
6
+ metadata.gz: a284c35a61569f0cbffb1ef1dc13d71e61c841c582eeda66a2b9e44d6f7d6a76db4ce36a08d2c669b063648ee5a3f70e607cfa6899d684e14e6aba24a0884cb3
7
+ data.tar.gz: 65d1e5942ff81729e87e9ca30bc163483e7768cfd27daedd3a0bcd6a2b0bf63b8cd06f9240f49180f38173994027034650191fa38880706bec6f1bdab63557f2
data/README.md CHANGED
@@ -77,7 +77,7 @@ the same options as [redis-rb](https://github.com/redis/redis-rb).
77
77
  `Ost[:example].push item`, `Ost[:some_queue] << item`: add `item` to
78
78
  the `:example` queue.
79
79
 
80
- `Ost[:example].push { |item| ... }`, `Ost[:example].each { |item| ...
80
+ `Ost[:example].pop { |item| ... }`, `Ost[:example].each { |item| ...
81
81
  }`: consume `item` from the `:example` queue. If the block doesn't
82
82
  complete successfully, the item will be left at a backup queue.
83
83
 
data/lib/ost.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "nest"
2
2
 
3
3
  module Ost
4
- TIMEOUT = ENV["OST_TIMEOUT"] || 2
4
+ TIMEOUT = (ENV["OST_TIMEOUT"] || 2).to_i
5
5
 
6
6
  class Queue
7
7
  attr :key
@@ -43,6 +43,10 @@ module Ost
43
43
  alias << push
44
44
  alias pop each
45
45
 
46
+ def size
47
+ key.llen
48
+ end
49
+
46
50
  def redis
47
51
  @redis ||= Redis.connect(Ost.options)
48
52
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ost"
3
- s.version = "0.1.5"
3
+ s.version = "0.1.6"
4
4
  s.summary = "Redis based queues and workers."
5
5
  s.description = "Ost lets you manage queues and workers with Redis."
6
6
  s.authors = ["Michel Martens"]
@@ -135,4 +135,26 @@ scope do
135
135
 
136
136
  assert_equal queue.key.redis, queue.redis
137
137
  end
138
+
139
+ test "report the queue size" do
140
+ queue = Ost[:size]
141
+
142
+ assert_equal 0, queue.size
143
+
144
+ queue << 1
145
+
146
+ assert_equal 1, queue.size
147
+
148
+ done = false
149
+
150
+ Thread.new do
151
+ Ost[:size].each do |item|
152
+ done = true
153
+ end
154
+ end
155
+
156
+ until done; end
157
+
158
+ assert_equal 0, queue.size
159
+ end
138
160
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ost
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 0.1.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Michel Martens
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
11
+ date: 2014-07-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nest
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
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
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: cutest
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
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
@@ -59,26 +54,25 @@ files:
59
54
  - test/test_helper.rb
60
55
  homepage: http://github.com/soveran/ost
61
56
  licenses: []
57
+ metadata: {}
62
58
  post_install_message:
63
59
  rdoc_options: []
64
60
  require_paths:
65
61
  - lib
66
62
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
63
  requirements:
69
- - - ! '>='
64
+ - - '>='
70
65
  - !ruby/object:Gem::Version
71
66
  version: '0'
72
67
  required_rubygems_version: !ruby/object:Gem::Requirement
73
- none: false
74
68
  requirements:
75
- - - ! '>='
69
+ - - '>='
76
70
  - !ruby/object:Gem::Version
77
71
  version: '0'
78
72
  requirements: []
79
73
  rubyforge_project:
80
- rubygems_version: 1.8.23
74
+ rubygems_version: 2.0.3
81
75
  signing_key:
82
- specification_version: 3
76
+ specification_version: 4
83
77
  summary: Redis based queues and workers.
84
78
  test_files: []