turnpike 0.3.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5cc33fb8535559daf70d3901bc2099644bc291b6
4
+ data.tar.gz: 0a3fd6e3d12dfbbdbf450252eee59b6e31c2c1a9
5
+ SHA512:
6
+ metadata.gz: 0ea35fe014cf3829a24677a7ab481e58b399355c04661581c2e300c0bc31edf877cf7f6c093df2f0a98ccfeb08477c2d21eee95d907df8151a12be24595fe1ac
7
+ data.tar.gz: 8a46a54abc67b7ea943f66425d46ccd6825db44e46f4a18fc7b20aa11453b837b3c2704ac17f91e4bdf1fbc1279134dbddbc9d1fa0ec2e6e5e05dbf4624e12c4
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  rvm:
2
2
  - 1.9.3
3
+ - 2.0.0
3
4
  - jruby-19mode
4
5
  - rbx-19mode
5
6
  services:
data/README.md CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  [![travis][1]][2]
4
4
 
5
- Turnpike is a Redis-backed queue that wraps a [List][4] and speaks Ruby
6
- colloquial.
5
+ Turnpike wraps a [Redis List][4] and speaks Ruby colloquial.
7
6
 
8
7
  ![turnpike][3]
9
8
 
@@ -11,22 +10,16 @@ colloquial.
11
10
 
12
11
  ```ruby
13
12
  queue = Turnpike['foo']
14
-
15
13
  queue << 1, 2, 3
16
14
  queue.pop # => 1
17
- queue.peek # => [2, 3]
18
-
19
15
  queue << 4
20
- queue.peek # => [2, 3, 4]
21
-
22
- queue.unshift 1
23
- queue.peek # => [1, 2, 3, 4]
16
+ queue.unshift(1)
17
+ queue.pop(4) # => [1, 2, 3, 4]
24
18
  ```
25
19
 
26
- [Read the API] [5].
20
+ Turnpike requires Redis 2.4 or higher.
27
21
 
28
22
  [1]: https://secure.travis-ci.org/hakanensari/turnpike.png
29
23
  [2]: http://travis-ci.org/hakanensari/turnpike
30
24
  [3]: http://f.cl.ly/items/33242X323P3M1t1G400H/turnpike.jpg
31
25
  [4]: http://redis.io/topics/data-types
32
- [5]: https://github.com/hakanensari/turnpike/blob/master/lib/turnpike/queue.rb
@@ -4,18 +4,18 @@ module Turnpike
4
4
  # Returns a String name.
5
5
  attr :name
6
6
 
7
- # Creates a new queue.
7
+ # Create a new queue.
8
8
  #
9
9
  # name - A queue name that responds to to_s.
10
10
  def initialize(name = 'queue')
11
11
  @name = "turnpike:#{name}"
12
12
  end
13
13
 
14
- # Removes all items from the queue.
14
+ # Remove all items from the queue.
15
15
  #
16
16
  # Returns Integer number of items that were removed.
17
17
  def clear
18
- redis.del name
18
+ redis.del(name)
19
19
  end
20
20
 
21
21
  # Returns whether the queue is empty.
@@ -23,11 +23,6 @@ module Turnpike
23
23
  size == 0
24
24
  end
25
25
 
26
- # Return an Array of all queued items.
27
- def peek
28
- redis.lrange(name, 0, -1).map { |i| Marshal.load i }
29
- end
30
-
31
26
  # Pops one or more items from the front of the queue.
32
27
  #
33
28
  # n - Integer number of items to pop.
@@ -43,17 +38,13 @@ module Turnpike
43
38
  n == 1 ? items.first : items
44
39
  end
45
40
 
46
- # Pushes items to the end of the queue.
41
+ # Push items to the end of the queue.
47
42
  #
48
43
  # items - A splat Array of items.
49
44
  #
50
45
  # Returns the Integer size of the queue after the operation.
51
46
  def push(*items)
52
- if redis_version >= '2.4'
53
- redis.rpush name, items.map { |i| Marshal.dump i }
54
- else
55
- items.each { |i| redis.rpush name, Marshal.dump(i) }
56
- end
47
+ redis.rpush(name, items.map { |i| Marshal.dump(i) })
57
48
  end
58
49
 
59
50
  # Syntactic sugar.
@@ -61,30 +52,22 @@ module Turnpike
61
52
 
62
53
  # Returns the Integer size of the queue.
63
54
  def size
64
- redis.llen name
55
+ redis.llen(name)
65
56
  end
66
57
 
67
- # Pushes items to the front of the queue.
58
+ # Push items to the front of the queue.
68
59
  #
69
60
  # items - A splat Array of items.
70
61
  #
71
62
  # Returns the Integer size of the queue after the operation.
72
63
  def unshift(*items)
73
- if redis_version >= '2.4'
74
- redis.lpush name, items.map { |i| Marshal.dump i }
75
- else
76
- items.each { |i| redis.lpush name, Marshal.dump(i) }
77
- end
64
+ redis.lpush(name, items.map { |i| Marshal.dump(i) })
78
65
  end
79
66
 
80
67
  private
81
68
 
82
69
  def redis
83
- Redis.current ||= Redis.connect Turnpike.options
84
- end
85
-
86
- def redis_version
87
- @redis_version ||= redis.info['redis_version']
70
+ Redis.current ||= Redis.connect(Turnpike.options)
88
71
  end
89
72
  end
90
73
  end
@@ -1,3 +1,3 @@
1
1
  module Turnpike
2
- VERSION = '0.3.2'
2
+ VERSION = '0.4.1'
3
3
  end
data/lib/turnpike.rb CHANGED
@@ -11,7 +11,7 @@ module Turnpike
11
11
  Queue.new name
12
12
  end
13
13
 
14
- # Sets Redis connection options.
14
+ # Set Redis connection options.
15
15
  #
16
16
  # hsh - A Hash of options.
17
17
  #
@@ -1,12 +1,17 @@
1
1
  require 'bundler/setup'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
  require File.expand_path('../lib/turnpike', File.dirname(__FILE__))
4
4
 
5
- class TestTurnpike < Test::Unit::TestCase
5
+ class TestTurnpike < MiniTest::Unit::TestCase
6
6
  def setup
7
7
  Redis.current.flushall
8
8
  end
9
9
 
10
+ def peek(queue)
11
+ redis = queue.send(:redis)
12
+ redis.lrange(queue.name, 0, -1).map { |i| Marshal.load(i) }
13
+ end
14
+
10
15
  def test_bracket
11
16
  queue = Turnpike['foo']
12
17
  assert_kind_of Turnpike::Queue, queue
@@ -24,41 +29,41 @@ class TestTurnpike < Test::Unit::TestCase
24
29
 
25
30
  def test_push
26
31
  queue = Turnpike::Queue.new
27
- queue.push 1
32
+ queue.push(1)
28
33
  assert_equal 1, queue.size
29
- queue.push 2, 3
34
+ queue.push(2, 3)
30
35
  assert_equal 3, queue.size
31
- assert_equal [1, 2, 3], queue.peek
36
+ assert_equal [1, 2, 3], peek(queue)
32
37
  end
33
38
 
34
39
  def test_push_2_2
35
40
  queue = Turnpike::Queue.new
36
41
  queue.instance_variable_set :@redis_version, '2.2'
37
- queue.push 1
38
- queue.push 2, 3
39
- assert_equal [1, 2, 3], queue.peek
42
+ queue.push(1)
43
+ queue.push(2, 3)
44
+ assert_equal [1, 2, 3], peek(queue)
40
45
  end
41
46
 
42
47
  def test_unshift
43
48
  queue = Turnpike::Queue.new
44
- queue.unshift 1
49
+ queue.unshift(1)
45
50
  assert_equal 1, queue.size
46
- queue.unshift 2, 3
51
+ queue.unshift(2, 3)
47
52
  assert_equal 3, queue.size
48
- assert_equal [3, 2, 1], queue.peek
53
+ assert_equal [3, 2, 1], peek(queue)
49
54
  end
50
55
 
51
56
  def test_unshift_2_2
52
57
  queue = Turnpike::Queue.new
53
58
  queue.instance_variable_set :@redis_version, '2.2'
54
- queue.unshift 1
55
- queue.unshift 2, 3
56
- assert_equal [3, 2, 1], queue.peek
59
+ queue.unshift(1)
60
+ queue.unshift(2, 3)
61
+ assert_equal [3, 2, 1], peek(queue)
57
62
  end
58
63
 
59
64
  def test_pop
60
65
  queue = Turnpike::Queue.new
61
- queue.push 1, 2
66
+ queue.push(1, 2)
62
67
  assert_equal 1, queue.pop
63
68
  assert_equal 2, queue.pop
64
69
  assert_equal nil, queue.pop
@@ -66,7 +71,7 @@ class TestTurnpike < Test::Unit::TestCase
66
71
 
67
72
  def test_pop_many
68
73
  queue = Turnpike::Queue.new
69
- queue.push 1, 2, 3
74
+ queue.push(1, 2, 3)
70
75
  assert_equal [1, 2], queue.pop(2)
71
76
  assert_equal [3], queue.pop(2)
72
77
  assert_equal [], queue.pop(2)
@@ -74,8 +79,8 @@ class TestTurnpike < Test::Unit::TestCase
74
79
 
75
80
  def test_order
76
81
  queue = Turnpike::Queue.new
77
- queue.push 1, 2
78
- queue.unshift 3
82
+ queue.push(1, 2)
83
+ queue.unshift(3)
79
84
  assert_equal 3, queue.pop
80
85
  assert_equal 1, queue.pop
81
86
  assert_equal 2, queue.pop
@@ -84,16 +89,16 @@ class TestTurnpike < Test::Unit::TestCase
84
89
  def test_multiple_queues
85
90
  queue1 = Turnpike::Queue.new 'foo'
86
91
  queue2 = Turnpike::Queue.new 'bar'
87
- queue1.push 1
88
- queue2.push 2, 3
92
+ queue1.push(1)
93
+ queue2.push(2, 3)
89
94
  assert_equal 1, queue1.size
90
95
  assert_equal 2, queue2.size
91
96
  end
92
97
 
93
98
  def test_peek
94
99
  queue = Turnpike::Queue.new
95
- assert_equal [], queue.peek
100
+ assert_equal [], peek(queue)
96
101
  queue << 1
97
- assert_equal [1], queue.peek
102
+ assert_equal [1], peek(queue)
98
103
  end
99
104
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turnpike
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
5
- prerelease:
4
+ version: 0.4.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Hakan Ensari
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-22 00:00:00.000000000 Z
11
+ date: 2013-03-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: redis
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,17 +27,15 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
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: Turnpike is a Redis-backed queue.
@@ -63,33 +58,27 @@ files:
63
58
  - turnpike.gemspec
64
59
  homepage: http://github.com/hakanensari/turnpike
65
60
  licenses: []
61
+ metadata: {}
66
62
  post_install_message:
67
63
  rdoc_options: []
68
64
  require_paths:
69
65
  - lib
70
66
  required_ruby_version: !ruby/object:Gem::Requirement
71
- none: false
72
67
  requirements:
73
- - - ! '>='
68
+ - - '>='
74
69
  - !ruby/object:Gem::Version
75
70
  version: '0'
76
- segments:
77
- - 0
78
- hash: 3840254104933730285
79
71
  required_rubygems_version: !ruby/object:Gem::Requirement
80
- none: false
81
72
  requirements:
82
- - - ! '>='
73
+ - - '>='
83
74
  - !ruby/object:Gem::Version
84
75
  version: '0'
85
- segments:
86
- - 0
87
- hash: 3840254104933730285
88
76
  requirements: []
89
77
  rubyforge_project:
90
- rubygems_version: 1.8.23
78
+ rubygems_version: 2.0.0
91
79
  signing_key:
92
- specification_version: 3
80
+ specification_version: 4
93
81
  summary: A Redis-backed queue
94
82
  test_files:
95
83
  - test/turnpike_test.rb
84
+ has_rdoc: