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.
@@ -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