conveyor 0.2.1 → 0.2.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.tar.gz.sig +0 -0
- data/History.txt +6 -0
- data/Rakefile +1 -1
- data/bin/conveyor +11 -3
- data/bin/conveyor-upgrade +0 -0
- data/lib/conveyor.rb +1 -1
- data/lib/conveyor/base_channel.rb +1 -0
- data/lib/conveyor/channel.rb +1 -1
- data/lib/conveyor/server.rb +8 -0
- data/test/test_replicated_channel.rb +1 -0
- data/test/test_server.rb +7 -5
- metadata +5 -5
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
== 0.2.2 / 2008-04-10
|
2
|
+
* make sure that an empty channel still has @last_id set
|
3
|
+
* switch back to mongrel. too many problems with event machine on solaris
|
4
|
+
* add logging for 404s. should probably switch this to a rack middleware
|
5
|
+
* adding a verbose mode, that dumps debug output to stdout
|
6
|
+
|
1
7
|
== 0.2.1 / 2008-02-29
|
2
8
|
* added get by timestamp and rewind to timestamp (for groups, too)
|
3
9
|
|
data/Rakefile
CHANGED
data/bin/conveyor
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'rubygems'
|
5
5
|
require 'daemons/daemonize'
|
6
|
-
require '
|
6
|
+
require 'rack'
|
7
7
|
|
8
8
|
options = {:port => 8011, :daemonize => false}
|
9
9
|
opts = OptionParser.new do |opts|
|
@@ -27,6 +27,10 @@ opts = OptionParser.new do |opts|
|
|
27
27
|
opts.on("--unsafe", "Unsafe Mode.") do |d|
|
28
28
|
options[:unsafe] = d
|
29
29
|
end
|
30
|
+
|
31
|
+
opts.on("--verbose", "Verbose mode. For debugging only.") do |d|
|
32
|
+
options[:verbose] = d
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
opts.parse!
|
@@ -44,9 +48,13 @@ if options[:daemonize]
|
|
44
48
|
Daemonize.daemonize
|
45
49
|
end
|
46
50
|
|
47
|
-
|
51
|
+
app = Rack::Builder.new do
|
48
52
|
map '/channels' do
|
49
|
-
run Conveyor::App.new(ARGV[0],
|
53
|
+
run Conveyor::App.new(ARGV[0],
|
54
|
+
:log_directory => options[:log_directory],
|
55
|
+
:unsafe_mode => options[:unsafe],
|
56
|
+
:verbose => options[:verbose])
|
50
57
|
end
|
51
58
|
end
|
52
59
|
|
60
|
+
Rack::Handler::Mongrel.run(app, {:Host => '0.0.0.0', :Port => options[:port]})
|
data/bin/conveyor-upgrade
CHANGED
File without changes
|
data/lib/conveyor.rb
CHANGED
data/lib/conveyor/channel.rb
CHANGED
@@ -43,7 +43,7 @@ module Conveyor
|
|
43
43
|
r = nil
|
44
44
|
group_iterator_lock(group) do
|
45
45
|
@group_iterators[group] = 1 unless @group_iterators.key?(group)
|
46
|
-
if @
|
46
|
+
if @group_iterators[group] <= @last_id
|
47
47
|
r = get(@group_iterators[group])
|
48
48
|
@group_iterators[group] += 1
|
49
49
|
group_iterators_file(group) do |f|
|
data/lib/conveyor/server.rb
CHANGED
@@ -4,6 +4,7 @@ require 'conveyor/channel'
|
|
4
4
|
require 'fileutils'
|
5
5
|
require 'json'
|
6
6
|
require 'logger'
|
7
|
+
require 'pp'
|
7
8
|
|
8
9
|
module Conveyor
|
9
10
|
class App
|
@@ -12,6 +13,7 @@ module Conveyor
|
|
12
13
|
@data_directory = data_directory
|
13
14
|
@log_directory = options[:log_directory]
|
14
15
|
@unsafe_mode = options[:unsafe_mode] # allows deleting of channels. REALLY UNSAFE!
|
16
|
+
@verbose = options[:verbose]
|
15
17
|
|
16
18
|
if @log_directory
|
17
19
|
@logger = Logger.new File.join(@log_directory, 'conveyor.log')
|
@@ -90,6 +92,7 @@ module Conveyor
|
|
90
92
|
create_new_channel(m.captures[0])
|
91
93
|
post(env, m)
|
92
94
|
else
|
95
|
+
i "#{env["REMOTE_ADDR"]} #{env["REQUEST_METHOD"]} #{env["REQUEST_PATH"]} 404"
|
93
96
|
[404, {}, '']
|
94
97
|
end
|
95
98
|
end
|
@@ -145,6 +148,7 @@ module Conveyor
|
|
145
148
|
return [200, {}, list.to_json]
|
146
149
|
end
|
147
150
|
|
151
|
+
i "#{env["REMOTE_ADDR"]} #{env["REQUEST_METHOD"]} #{env["REQUEST_PATH"]} 404"
|
148
152
|
return [404, {}, '']
|
149
153
|
end
|
150
154
|
|
@@ -157,6 +161,9 @@ module Conveyor
|
|
157
161
|
end
|
158
162
|
|
159
163
|
def call(env)
|
164
|
+
if @verbose
|
165
|
+
pp env
|
166
|
+
end
|
160
167
|
@requests += 1
|
161
168
|
if env['REQUEST_METHOD'] == 'PUT' && m = path_match(env, %r{/channels/(.*)})
|
162
169
|
put(env, m)
|
@@ -167,6 +174,7 @@ module Conveyor
|
|
167
174
|
elsif env['REQUEST_METHOD'] == 'GET'
|
168
175
|
get(env)
|
169
176
|
else
|
177
|
+
i "#{env["REMOTE_ADDR"]} #{env["REQUEST_METHOD"]} #{env["REQUEST_PATH"]} 404"
|
170
178
|
[404, {}, '']
|
171
179
|
end
|
172
180
|
end
|
data/test/test_server.rb
CHANGED
@@ -2,7 +2,7 @@ require "test/unit"
|
|
2
2
|
require "conveyor/server"
|
3
3
|
require 'net/http'
|
4
4
|
require 'conveyor/client'
|
5
|
-
require '
|
5
|
+
require 'rack'
|
6
6
|
|
7
7
|
class TestConveyorServer < Test::Unit::TestCase
|
8
8
|
include Conveyor
|
@@ -11,12 +11,14 @@ class TestConveyorServer < Test::Unit::TestCase
|
|
11
11
|
FileUtils.mkdir('/tmp/asdf')
|
12
12
|
|
13
13
|
Thread.start do
|
14
|
-
|
14
|
+
app = Rack::Builder.new do
|
15
15
|
map '/channels' do
|
16
|
-
run Conveyor::App.new('/tmp/asdf',
|
16
|
+
run Conveyor::App.new('/tmp/asdf', :unsafe_mode => true)
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
|
+
Rack::Handler::Mongrel.run(app, :Host => '0.0.0.0', :Port => 8011)
|
21
|
+
end
|
20
22
|
|
21
23
|
def test_channels
|
22
24
|
Net::HTTP.start("localhost", 8011) do |h|
|
@@ -148,7 +150,7 @@ class TestConveyorServer < Test::Unit::TestCase
|
|
148
150
|
|
149
151
|
assert_kind_of Net::HTTPNotFound, req
|
150
152
|
|
151
|
-
req = h.post("/channels/#{chan}?rewind_id=1", nil)
|
153
|
+
req = h.post("/channels/#{chan}?rewind_id=1", nil, {'Content-Type' => 'application/octet-stream'})
|
152
154
|
assert_kind_of Net::HTTPOK, req
|
153
155
|
|
154
156
|
req = h.get("/channels/#{chan}?next")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conveyor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan King
|
@@ -30,11 +30,11 @@ cert_chain:
|
|
30
30
|
Zls3y84CmyAEGg==
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2008-
|
33
|
+
date: 2008-04-10 00:00:00 -07:00
|
34
34
|
default_executable:
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
37
|
+
name: mongrel
|
38
38
|
version_requirement:
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
requirements:
|
68
68
|
- - ">="
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 1.5.
|
70
|
+
version: 1.5.1
|
71
71
|
version:
|
72
72
|
description: "* Like TiVo for your data * A distributed rewindable multi-queue"
|
73
73
|
email: ryan@theryanking.com
|
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
125
|
requirements: []
|
126
126
|
|
127
127
|
rubyforge_project: conveyor
|
128
|
-
rubygems_version: 1.0
|
128
|
+
rubygems_version: 1.1.0
|
129
129
|
signing_key:
|
130
130
|
specification_version: 2
|
131
131
|
summary: "* Like TiVo for your data * A distributed rewindable multi-queue"
|
metadata.gz.sig
CHANGED
Binary file
|