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
         |