turnpike 0.3.2 → 0.4.1

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: 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: