superfeedr-rb 0.1.1 → 0.2.0
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/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
|