pubsubhubbub 0.1.0 → 0.1.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.
- data/Rakefile +20 -0
- data/VERSION +1 -1
- data/lib/pubsubhubbub/client.rb +27 -29
- metadata +29 -13
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rake'
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'jeweler'
|
5
|
+
Jeweler::Tasks.new do |gemspec|
|
6
|
+
gemspec.name = "pubsubhubbub"
|
7
|
+
gemspec.summary = "Asynchronous PubSubHubbub client for Ruby"
|
8
|
+
gemspec.description = gemspec.summary
|
9
|
+
gemspec.email = "ilya@igvita.com"
|
10
|
+
gemspec.homepage = "http://github.com/igrigorik/pubsubhubbub"
|
11
|
+
gemspec.authors = ["Ilya Grigorik"]
|
12
|
+
gemspec.add_dependency('eventmachine', '>= 0.12.9')
|
13
|
+
gemspec.add_dependency('em-http-request', '>= 0.1.5')
|
14
|
+
gemspec.rubyforge_project = "pubsubhubbub"
|
15
|
+
end
|
16
|
+
|
17
|
+
Jeweler::GemcutterTasks.new
|
18
|
+
rescue LoadError
|
19
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
20
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/pubsubhubbub/client.rb
CHANGED
@@ -19,42 +19,40 @@ module EventMachine
|
|
19
19
|
{'hub.url' => feed, 'hub.mode' => 'publish'}.to_params
|
20
20
|
end.join("&")
|
21
21
|
|
22
|
-
|
23
|
-
r.callback {
|
24
|
-
if r.response_header.status == 204
|
25
|
-
succeed r
|
26
|
-
else
|
27
|
-
fail r
|
28
|
-
end
|
29
|
-
}
|
30
|
-
|
31
|
-
r.errback { fail }
|
32
|
-
r
|
22
|
+
request(:body => data, :head => HEADERS)
|
33
23
|
end
|
34
24
|
|
35
|
-
|
25
|
+
# These command will work only if the callback URL supports confirmation.
|
36
26
|
def subscribe(feed, callback, options = {}); command('subscribe', feed, callback, options); end
|
37
27
|
def unsubscribe(feed, callback, options = {}); command('unsubscribe', feed, callback, options); end
|
38
28
|
|
39
29
|
private
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
30
|
+
|
31
|
+
def command(cmd, feed, callback, options)
|
32
|
+
options['hub.verify'] ||= "sync"
|
33
|
+
params = {'hub.topic' => feed, 'hub.mode' => cmd, 'hub.callback' => callback}.merge(options).to_params
|
34
|
+
|
35
|
+
request(:body => params, :head => HEADERS)
|
36
|
+
end
|
37
|
+
|
38
|
+
def request(opts)
|
39
|
+
r = http_request(opts)
|
40
|
+
|
41
|
+
r.callback do
|
42
|
+
if r.response_header.status == 204
|
43
|
+
succeed r
|
44
|
+
else
|
45
|
+
fail r
|
46
|
+
end
|
52
47
|
end
|
53
|
-
}
|
54
48
|
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
r.errback { fail }
|
50
|
+
r
|
51
|
+
|
52
|
+
end
|
58
53
|
|
54
|
+
def http_request(opts)
|
55
|
+
EventMachine::HttpRequest.new(@hub).post opts
|
56
|
+
end
|
59
57
|
end
|
60
|
-
end
|
58
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pubsubhubbub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Ilya Grigorik
|
@@ -9,29 +14,37 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-05-01 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: eventmachine
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 12
|
30
|
+
- 9
|
23
31
|
version: 0.12.9
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: em-http-request
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
- 1
|
44
|
+
- 5
|
33
45
|
version: 0.1.5
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
description: Asynchronous PubSubHubbub client for Ruby
|
36
49
|
email: ilya@igvita.com
|
37
50
|
executables: []
|
@@ -42,6 +55,7 @@ extra_rdoc_files:
|
|
42
55
|
- README.rdoc
|
43
56
|
files:
|
44
57
|
- README.rdoc
|
58
|
+
- Rakefile
|
45
59
|
- VERSION
|
46
60
|
- lib/pubsubhubbub.rb
|
47
61
|
- lib/pubsubhubbub/client.rb
|
@@ -59,18 +73,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
59
73
|
requirements:
|
60
74
|
- - ">="
|
61
75
|
- !ruby/object:Gem::Version
|
76
|
+
segments:
|
77
|
+
- 0
|
62
78
|
version: "0"
|
63
|
-
version:
|
64
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
80
|
requirements:
|
66
81
|
- - ">="
|
67
82
|
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
68
85
|
version: "0"
|
69
|
-
version:
|
70
86
|
requirements: []
|
71
87
|
|
72
88
|
rubyforge_project: pubsubhubbub
|
73
|
-
rubygems_version: 1.3.
|
89
|
+
rubygems_version: 1.3.6
|
74
90
|
signing_key:
|
75
91
|
specification_version: 3
|
76
92
|
summary: Asynchronous PubSubHubbub client for Ruby
|