timberline 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|