superfeedr-rb 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/superfeedr-rb.rb +12 -3
- data/lib/superfeedr/status.rb +2 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/spec_superfeedr-rb_spec.rb +25 -0
- metadata +21 -5
data/lib/superfeedr-rb.rb
CHANGED
@@ -9,11 +9,16 @@
|
|
9
9
|
module Superfeedr
|
10
10
|
|
11
11
|
class Client < Blather::Client
|
12
|
-
def self.connect(jid, pass,
|
12
|
+
def self.connect(jid, pass, options={} )
|
13
13
|
if block_given?
|
14
|
-
client = self.setup jid, pass, host, port
|
14
|
+
client = self.setup jid, pass, options[:host], options[:port]
|
15
15
|
EM.run {
|
16
16
|
yield client
|
17
|
+
|
18
|
+
if options[:subscribe_channel]
|
19
|
+
options[:subscribe_channel].subscribe {|url| client.subscribe(url) }
|
20
|
+
end
|
21
|
+
|
17
22
|
client.connect
|
18
23
|
}
|
19
24
|
else
|
@@ -26,9 +31,13 @@ module Superfeedr
|
|
26
31
|
@deferred = []
|
27
32
|
end
|
28
33
|
|
34
|
+
def subscribe(url)
|
35
|
+
self.write Blather::Stanza::PubSub::Subscribe.new(:set, 'firehoser.superfeedr.com', url, self.jid.stripped)
|
36
|
+
end
|
37
|
+
|
29
38
|
def feed(url, &block)
|
30
39
|
return if defer(:feed, url, &block)
|
31
|
-
|
40
|
+
subscribe(url)
|
32
41
|
|
33
42
|
self.register_handler(:pubsub_event, "//ns:items[@node='#{url}']", :ns => Blather::Stanza::PubSub::Event.registered_ns) do |evt, _|
|
34
43
|
block.call Status.parse(evt), Entry.parse(evt)
|
data/lib/superfeedr/status.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Superfeedr::Client do
|
4
|
+
it 'should it herited Blater::Client' do
|
5
|
+
Superfeedr::Client.new.must_be_kind_of Blather::Client
|
6
|
+
end
|
7
|
+
|
8
|
+
describe '#initialize' do
|
9
|
+
it 'should initialize deferred attribute like array' do
|
10
|
+
client = Superfeedr::Client.new
|
11
|
+
client.instance_variable_get(:@deferred).must_equal []
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '#subscribe' do
|
16
|
+
it 'should write Subscribe' do
|
17
|
+
client = Superfeedr::Client.setup 'login@superfeedr.com', 'pass'
|
18
|
+
mock_stanza = mock()
|
19
|
+
Blather::Stanza::PubSub::Subscribe.expects(:new).returns(mock_stanza)
|
20
|
+
client.expects(:write).with(mock_stanza)
|
21
|
+
client.subscribe('http://github.com/shingara.atom')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: superfeedr-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Jeff Smick
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-05-24 00:00:00 -07:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: minitest
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -33,9 +36,11 @@ dependencies:
|
|
33
36
|
name: yard
|
34
37
|
prerelease: false
|
35
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
36
40
|
requirements:
|
37
41
|
- - ">="
|
38
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
39
44
|
segments:
|
40
45
|
- 0
|
41
46
|
version: "0"
|
@@ -45,9 +50,11 @@ dependencies:
|
|
45
50
|
name: blather
|
46
51
|
prerelease: false
|
47
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
48
54
|
requirements:
|
49
55
|
- - ">="
|
50
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
51
58
|
segments:
|
52
59
|
- 0
|
53
60
|
version: "0"
|
@@ -68,6 +75,10 @@ files:
|
|
68
75
|
- lib/superfeedr/status.rb
|
69
76
|
- LICENSE
|
70
77
|
- README.md
|
78
|
+
- spec/spec_helper.rb
|
79
|
+
- spec/spec_superfeedr-rb_spec.rb
|
80
|
+
- spec/superfeedr/entry_spec.rb
|
81
|
+
- spec/superfeedr/status_spec.rb
|
71
82
|
has_rdoc: true
|
72
83
|
homepage: http://github.com/sprsquish/superfeedr-rb
|
73
84
|
licenses: []
|
@@ -78,27 +89,32 @@ rdoc_options:
|
|
78
89
|
require_paths:
|
79
90
|
- lib
|
80
91
|
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
81
93
|
requirements:
|
82
94
|
- - ">="
|
83
95
|
- !ruby/object:Gem::Version
|
96
|
+
hash: 3
|
84
97
|
segments:
|
85
98
|
- 0
|
86
99
|
version: "0"
|
87
100
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
88
102
|
requirements:
|
89
103
|
- - ">="
|
90
104
|
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
91
106
|
segments:
|
92
107
|
- 0
|
93
108
|
version: "0"
|
94
109
|
requirements: []
|
95
110
|
|
96
111
|
rubyforge_project:
|
97
|
-
rubygems_version: 1.3.
|
112
|
+
rubygems_version: 1.3.7
|
98
113
|
signing_key:
|
99
114
|
specification_version: 3
|
100
115
|
summary: A ruby library based on Blather for Superfeedr
|
101
116
|
test_files:
|
102
117
|
- spec/spec_helper.rb
|
118
|
+
- spec/spec_superfeedr-rb_spec.rb
|
103
119
|
- spec/superfeedr/entry_spec.rb
|
104
120
|
- spec/superfeedr/status_spec.rb
|