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.
@@ -9,11 +9,16 @@
9
9
  module Superfeedr
10
10
 
11
11
  class Client < Blather::Client
12
- def self.connect(jid, pass, host = nil, port = nil)
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
- self.write Blather::Stanza::PubSub::Subscribe.new(:set, 'firehoser.superfeedr.com', url, self.jid.stripped)
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)
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  module Superfeedr
2
4
  class Status < Blather::XMPPNode
3
5
  NS = 'http://superfeedr.com/xmpp-pubsub-ext'.freeze
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'minitest/spec'
3
+ require 'mocha'
3
4
 
4
5
  $:.unshift File.expand_path(File.join(File.dirname(__FILE__), '..'))
5
6
  $:.unshift File.expand_path(File.join(File.dirname(__FILE__), *%w[.. lib]))
@@ -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
- - 1
8
- - 1
9
- version: 0.1.1
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-03-07 00:00:00 -08:00
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.6
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