timberline 0.1.2
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/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README.markdown +214 -0
- data/Rakefile +9 -0
- data/bin/timberline +37 -0
- data/lib/timberline/config.rb +45 -0
- data/lib/timberline/envelope.rb +47 -0
- data/lib/timberline/queue.rb +42 -0
- data/lib/timberline/queue_manager.rb +84 -0
- data/lib/timberline/version.rb +3 -0
- data/lib/timberline.rb +65 -0
- data/test/fake_rails/config/timberline.yaml +6 -0
- data/test/partial_minispec.rb +229 -0
- data/test/test_config.yaml +6 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/test_config.rb +115 -0
- data/test/unit/test_envelope.rb +67 -0
- data/test/unit/test_queue.rb +75 -0
- data/test/unit/test_queue_manager.rb +154 -0
- data/test/unit/test_timberline.rb +65 -0
- data/timberline.gemspec +28 -0
- metadata +124 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
describe Timberline do
|
4
|
+
before do
|
5
|
+
# Reset the singleton
|
6
|
+
Timberline.redis = nil
|
7
|
+
Timberline.instance_variable_set("@config", nil)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "saves a passed-in redis namespace" do
|
11
|
+
redis = Redis.new
|
12
|
+
redisns = Redis::Namespace.new("timberline", redis)
|
13
|
+
Timberline.redis = redisns
|
14
|
+
assert_equal redisns, Timberline.redis
|
15
|
+
end
|
16
|
+
|
17
|
+
it "Converts a standard redis server into a namespace" do
|
18
|
+
redis = Redis.new
|
19
|
+
Timberline.redis = redis
|
20
|
+
assert_equal Redis::Namespace, Timberline.redis.class
|
21
|
+
assert_equal redis, Timberline.redis.instance_variable_get("@redis")
|
22
|
+
end
|
23
|
+
|
24
|
+
it "generates a redis namespace on request if one isn't present" do
|
25
|
+
assert_equal Redis::Namespace, Timberline.redis.class
|
26
|
+
end
|
27
|
+
|
28
|
+
it "uses a default namespace of 'timberline'" do
|
29
|
+
assert_equal "timberline", Timberline.redis.namespace
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can be configured" do
|
33
|
+
Timberline.config do |c|
|
34
|
+
c.database = 3
|
35
|
+
end
|
36
|
+
|
37
|
+
assert_equal 3, Timberline.instance_variable_get("@config").database
|
38
|
+
end
|
39
|
+
|
40
|
+
it "uses a pre-defined namespace name if configured" do
|
41
|
+
Timberline.config do |c|
|
42
|
+
c.namespace = "skyline"
|
43
|
+
end
|
44
|
+
|
45
|
+
assert_equal "skyline", Timberline.redis.namespace
|
46
|
+
end
|
47
|
+
|
48
|
+
it "properly configures Redis" do
|
49
|
+
@logger = Logger.new STDERR
|
50
|
+
Timberline.config do |c|
|
51
|
+
c.host = "localhost"
|
52
|
+
c.timeout = 10
|
53
|
+
c.database = 3
|
54
|
+
c.logger = @logger
|
55
|
+
end
|
56
|
+
|
57
|
+
redis = Timberline.redis
|
58
|
+
|
59
|
+
assert_equal "localhost", redis.client.host
|
60
|
+
assert_equal 10, redis.client.timeout
|
61
|
+
assert_equal 3, redis.client.db
|
62
|
+
assert_equal @logger, redis.client.logger
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
data/timberline.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "timberline/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "timberline"
|
7
|
+
s.version = Timberline::VERSION
|
8
|
+
s.authors = ["Tommy Morgan"]
|
9
|
+
s.email = ["tommy.morgan@gmail.com"]
|
10
|
+
s.homepage = "http://github.com/duwanis/timberline"
|
11
|
+
s.summary = %q{Timberline is a simple and extensible queuing system built in Ruby and backed by Redis.}
|
12
|
+
s.description = %q{Timberline is a simple and extensible queuing system built in Ruby and backed by Redis. It makes as few assumptions as possible about how you want to interact with your queues while also allowing for some functionality that should be universally useful, like allowing for automatic retries of jobs and queue statistics.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "timberline"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
24
|
+
s.add_runtime_dependency "redis"
|
25
|
+
s.add_runtime_dependency "redis-namespace"
|
26
|
+
s.add_runtime_dependency "trollop"
|
27
|
+
s.add_runtime_dependency "daemons"
|
28
|
+
end
|
metadata
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: timberline
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tommy Morgan
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-02-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: redis
|
16
|
+
requirement: &70136237495580 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70136237495580
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: redis-namespace
|
27
|
+
requirement: &70136237494860 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70136237494860
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: trollop
|
38
|
+
requirement: &70136237493980 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70136237493980
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: daemons
|
49
|
+
requirement: &70136237492680 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70136237492680
|
58
|
+
description: Timberline is a simple and extensible queuing system built in Ruby and
|
59
|
+
backed by Redis. It makes as few assumptions as possible about how you want to interact
|
60
|
+
with your queues while also allowing for some functionality that should be universally
|
61
|
+
useful, like allowing for automatic retries of jobs and queue statistics.
|
62
|
+
email:
|
63
|
+
- tommy.morgan@gmail.com
|
64
|
+
executables:
|
65
|
+
- timberline
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- .gitignore
|
70
|
+
- Gemfile
|
71
|
+
- README.markdown
|
72
|
+
- Rakefile
|
73
|
+
- bin/timberline
|
74
|
+
- lib/timberline.rb
|
75
|
+
- lib/timberline/config.rb
|
76
|
+
- lib/timberline/envelope.rb
|
77
|
+
- lib/timberline/queue.rb
|
78
|
+
- lib/timberline/queue_manager.rb
|
79
|
+
- lib/timberline/version.rb
|
80
|
+
- test/fake_rails/config/timberline.yaml
|
81
|
+
- test/partial_minispec.rb
|
82
|
+
- test/test_config.yaml
|
83
|
+
- test/test_helper.rb
|
84
|
+
- test/unit/test_config.rb
|
85
|
+
- test/unit/test_envelope.rb
|
86
|
+
- test/unit/test_queue.rb
|
87
|
+
- test/unit/test_queue_manager.rb
|
88
|
+
- test/unit/test_timberline.rb
|
89
|
+
- timberline.gemspec
|
90
|
+
homepage: http://github.com/duwanis/timberline
|
91
|
+
licenses: []
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project: timberline
|
110
|
+
rubygems_version: 1.8.15
|
111
|
+
signing_key:
|
112
|
+
specification_version: 3
|
113
|
+
summary: Timberline is a simple and extensible queuing system built in Ruby and backed
|
114
|
+
by Redis.
|
115
|
+
test_files:
|
116
|
+
- test/fake_rails/config/timberline.yaml
|
117
|
+
- test/partial_minispec.rb
|
118
|
+
- test/test_config.yaml
|
119
|
+
- test/test_helper.rb
|
120
|
+
- test/unit/test_config.rb
|
121
|
+
- test/unit/test_envelope.rb
|
122
|
+
- test/unit/test_queue.rb
|
123
|
+
- test/unit/test_queue_manager.rb
|
124
|
+
- test/unit/test_timberline.rb
|