robut-rdio 0.1.0 → 0.1.2
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/CHANGELOG.md +29 -0
- data/Gemfile +16 -7
- data/Gemfile.lock +44 -13
- data/Guardfile +10 -0
- data/README.md +124 -19
- data/VERSION +1 -1
- data/lib/robut-rdio.rb +191 -34
- data/lib/server/public/css/rdio.css +16 -0
- data/lib/server/public/images/buffering.png +0 -0
- data/lib/server/public/images/circle-east.png +0 -0
- data/lib/server/public/images/circle-pause.png +0 -0
- data/lib/server/public/images/circle-play.png +0 -0
- data/lib/server/public/images/circle-stop.png +0 -0
- data/lib/server/public/images/disconnected.png +0 -0
- data/lib/server/public/index.html +16 -6
- data/lib/server/public/js/rdio.js +300 -170
- data/lib/server/server.rb +35 -0
- data/plugin-tester.rb +1 -1
- data/robut-rdio.gemspec +34 -16
- data/spec/integration/robut-rdio_spec.rb +119 -0
- data/spec/robut-rdio_spec.rb +219 -76
- data/spec/server_spec.rb +28 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/support/shared_examples.rb +47 -0
- metadata +73 -31
- data/README.rdoc +0 -19
    
        data/spec/server_spec.rb
    ADDED
    
    | @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            describe Robut::Plugin::Rdio::Server do 
         | 
| 4 | 
            +
              include Rack::Test::Methods
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def app
         | 
| 7 | 
            +
                @app ||= Robut::Plugin::Rdio::Server
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              it 'should render a web player' do
         | 
| 11 | 
            +
                get '/'
         | 
| 12 | 
            +
                last_response.should be_ok
         | 
| 13 | 
            +
                last_response.body.should include '<div id="apiswf"></div>'
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              it 'should be able to tell HipChat what song is playing' do
         | 
| 17 | 
            +
                Robut::Plugin::Rdio::Server.state_callback = lambda{ |message| @message = message }
         | 
| 18 | 
            +
                get '/now_playing/The%20National%20-%20Bloodbuzz%20Ohio'
         | 
| 19 | 
            +
                last_response.should be_ok
         | 
| 20 | 
            +
                @message.should == 'is now playing: The National - Bloodbuzz Ohio'
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
              it 'should degrade gracefully if a reply_callback has not been defined' do
         | 
| 24 | 
            +
                Robut::Plugin::Rdio::Server.reply_callback = nil
         | 
| 25 | 
            +
                get '/now_playing/Foo'
         | 
| 26 | 
            +
                last_response.should be_ok
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -2,6 +2,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) | |
| 2 2 | 
             
            $LOAD_PATH.unshift(File.dirname(__FILE__))
         | 
| 3 3 | 
             
            require 'rspec'
         | 
| 4 4 | 
             
            require 'robut-rdio'
         | 
| 5 | 
            +
            require 'rack/test'
         | 
| 5 6 |  | 
| 6 7 | 
             
            # Requires supporting files with custom matchers and macros, etc,
         | 
| 7 8 | 
             
            # in ./support/ and its subdirectories.
         | 
| @@ -0,0 +1,47 @@ | |
| 1 | 
            +
            #
         | 
| 2 | 
            +
            # A routing method has valid/invalid input. This shared example is used by
         | 
| 3 | 
            +
            # all of ther routing methods. 
         | 
| 4 | 
            +
            # 
         | 
| 5 | 
            +
            shared_examples "a routing method" do
         | 
| 6 | 
            +
              
         | 
| 7 | 
            +
              context "when given valid requests" do
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                it "should return a truthy value" do
         | 
| 10 | 
            +
                  routing_method = example.metadata[:method]
         | 
| 11 | 
            +
                  
         | 
| 12 | 
            +
                  valid_requests.each do |request|
         | 
| 13 | 
            +
                    subject.send(routing_method,request).should be_true, "expected the Request '#{request}' (#{request.class}) to be valid"
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
              
         | 
| 20 | 
            +
              context "when given invalid requests" do
         | 
| 21 | 
            +
                
         | 
| 22 | 
            +
                it "should return a falsy value" do
         | 
| 23 | 
            +
                  routing_method = example.metadata[:method]
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  invalid_requests.each do |request|
         | 
| 26 | 
            +
                    subject.send(routing_method,request).should be_false, "expected the Request '#{request}' (#{request.class}) to be invalid"
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
                  
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
              
         | 
| 33 | 
            +
            end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
             | 
| 36 | 
            +
            shared_examples "a successfully routed action" do |parameters|
         | 
| 37 | 
            +
              
         | 
| 38 | 
            +
              it "should route the request to the correct action with the correct parameters" do
         | 
| 39 | 
            +
                
         | 
| 40 | 
            +
                # TODO I have forgotten how to set up an expectation without replacing the original method result
         | 
| 41 | 
            +
                # subject.should_receive(parameters[:route]).once
         | 
| 42 | 
            +
                subject.should_receive(parameters[:action]).with(*parameters[:parameters]).and_return(parameters[:returning])
         | 
| 43 | 
            +
                subject.handle(time,sender,message)
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
              
         | 
| 47 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: robut-rdio
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.2
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 12 | 
            +
            date: 2011-12-08 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: robut
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70166568367240 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,32 +21,54 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70166568367240
         | 
| 25 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            +
              name: rdio
         | 
| 27 | 
            +
              requirement: &70166568366700 !ruby/object:Gem::Requirement
         | 
| 28 | 
            +
                none: false
         | 
| 29 | 
            +
                requirements:
         | 
| 30 | 
            +
                - - =
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: 0.0.91
         | 
| 33 | 
            +
              type: :runtime
         | 
| 34 | 
            +
              prerelease: false
         | 
| 35 | 
            +
              version_requirements: *70166568366700
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            +
              name: sinatra
         | 
| 38 | 
            +
              requirement: &70166568366180 !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
                none: false
         | 
| 40 | 
            +
                requirements:
         | 
| 41 | 
            +
                - - ! '>='
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            +
                    version: '0'
         | 
| 44 | 
            +
              type: :runtime
         | 
| 45 | 
            +
              prerelease: false
         | 
| 46 | 
            +
              version_requirements: *70166568366180
         | 
| 25 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 48 | 
             
              name: thin
         | 
| 27 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70166568365700 !ruby/object:Gem::Requirement
         | 
| 28 50 | 
             
                none: false
         | 
| 29 51 | 
             
                requirements:
         | 
| 30 52 | 
             
                - - ! '>='
         | 
| 31 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 54 | 
             
                    version: '0'
         | 
| 33 | 
            -
              type: : | 
| 55 | 
            +
              type: :runtime
         | 
| 34 56 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70166568365700
         | 
| 36 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 59 | 
             
              name: rspec
         | 
| 38 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70166568365200 !ruby/object:Gem::Requirement
         | 
| 39 61 | 
             
                none: false
         | 
| 40 62 | 
             
                requirements:
         | 
| 41 | 
            -
                - -  | 
| 63 | 
            +
                - - ! '>='
         | 
| 42 64 | 
             
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            -
                    version:  | 
| 65 | 
            +
                    version: '0'
         | 
| 44 66 | 
             
              type: :development
         | 
| 45 67 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70166568365200
         | 
| 47 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 70 | 
             
              name: bundler
         | 
| 49 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70166568364680 !ruby/object:Gem::Requirement
         | 
| 50 72 | 
             
                none: false
         | 
| 51 73 | 
             
                requirements:
         | 
| 52 74 | 
             
                - - ~>
         | 
| @@ -54,10 +76,10 @@ dependencies: | |
| 54 76 | 
             
                    version: 1.0.0
         | 
| 55 77 | 
             
              type: :development
         | 
| 56 78 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70166568364680
         | 
| 58 80 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 81 | 
             
              name: jeweler
         | 
| 60 | 
            -
              requirement: & | 
| 82 | 
            +
              requirement: &70166568364200 !ruby/object:Gem::Requirement
         | 
| 61 83 | 
             
                none: false
         | 
| 62 84 | 
             
                requirements:
         | 
| 63 85 | 
             
                - - ~>
         | 
| @@ -65,10 +87,10 @@ dependencies: | |
| 65 87 | 
             
                    version: 1.6.4
         | 
| 66 88 | 
             
              type: :development
         | 
| 67 89 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 90 | 
            +
              version_requirements: *70166568364200
         | 
| 69 91 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 92 | 
             
              name: rcov
         | 
| 71 | 
            -
              requirement: & | 
| 93 | 
            +
              requirement: &70166568363720 !ruby/object:Gem::Requirement
         | 
| 72 94 | 
             
                none: false
         | 
| 73 95 | 
             
                requirements:
         | 
| 74 96 | 
             
                - - ! '>='
         | 
| @@ -76,21 +98,21 @@ dependencies: | |
| 76 98 | 
             
                    version: '0'
         | 
| 77 99 | 
             
              type: :development
         | 
| 78 100 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 101 | 
            +
              version_requirements: *70166568363720
         | 
| 80 102 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 | 
            -
              name:  | 
| 82 | 
            -
              requirement: & | 
| 103 | 
            +
              name: highline
         | 
| 104 | 
            +
              requirement: &70166568363220 !ruby/object:Gem::Requirement
         | 
| 83 105 | 
             
                none: false
         | 
| 84 106 | 
             
                requirements:
         | 
| 85 | 
            -
                - -  | 
| 107 | 
            +
                - - ! '>='
         | 
| 86 108 | 
             
                  - !ruby/object:Gem::Version
         | 
| 87 | 
            -
                    version: 0 | 
| 109 | 
            +
                    version: '0'
         | 
| 88 110 | 
             
              type: :development
         | 
| 89 111 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements: * | 
| 112 | 
            +
              version_requirements: *70166568363220
         | 
| 91 113 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 92 | 
            -
              name:  | 
| 93 | 
            -
              requirement: & | 
| 114 | 
            +
              name: guard
         | 
| 115 | 
            +
              requirement: &70166568362700 !ruby/object:Gem::Requirement
         | 
| 94 116 | 
             
                none: false
         | 
| 95 117 | 
             
                requirements:
         | 
| 96 118 | 
             
                - - ! '>='
         | 
| @@ -98,10 +120,21 @@ dependencies: | |
| 98 120 | 
             
                    version: '0'
         | 
| 99 121 | 
             
              type: :development
         | 
| 100 122 | 
             
              prerelease: false
         | 
| 101 | 
            -
              version_requirements: * | 
| 123 | 
            +
              version_requirements: *70166568362700
         | 
| 102 124 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 103 | 
            -
              name:  | 
| 104 | 
            -
              requirement: & | 
| 125 | 
            +
              name: guard-rspec
         | 
| 126 | 
            +
              requirement: &70166568362160 !ruby/object:Gem::Requirement
         | 
| 127 | 
            +
                none: false
         | 
| 128 | 
            +
                requirements:
         | 
| 129 | 
            +
                - - ! '>='
         | 
| 130 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            +
                    version: '0'
         | 
| 132 | 
            +
              type: :development
         | 
| 133 | 
            +
              prerelease: false
         | 
| 134 | 
            +
              version_requirements: *70166568362160
         | 
| 135 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 136 | 
            +
              name: ruby-debug19
         | 
| 137 | 
            +
              requirement: &70166568331120 !ruby/object:Gem::Requirement
         | 
| 105 138 | 
             
                none: false
         | 
| 106 139 | 
             
                requirements:
         | 
| 107 140 | 
             
                - - ! '>='
         | 
| @@ -109,7 +142,7 @@ dependencies: | |
| 109 142 | 
             
                    version: '0'
         | 
| 110 143 | 
             
              type: :development
         | 
| 111 144 | 
             
              prerelease: false
         | 
| 112 | 
            -
              version_requirements: * | 
| 145 | 
            +
              version_requirements: *70166568331120
         | 
| 113 146 | 
             
            description: ''
         | 
| 114 147 | 
             
            email: ampearson@gmail.com
         | 
| 115 148 | 
             
            executables: []
         | 
| @@ -117,16 +150,16 @@ extensions: [] | |
| 117 150 | 
             
            extra_rdoc_files:
         | 
| 118 151 | 
             
            - LICENSE.txt
         | 
| 119 152 | 
             
            - README.md
         | 
| 120 | 
            -
            - README.rdoc
         | 
| 121 153 | 
             
            files:
         | 
| 122 154 | 
             
            - .document
         | 
| 123 155 | 
             
            - .rspec
         | 
| 124 156 | 
             
            - .rvmrc
         | 
| 157 | 
            +
            - CHANGELOG.md
         | 
| 125 158 | 
             
            - Gemfile
         | 
| 126 159 | 
             
            - Gemfile.lock
         | 
| 160 | 
            +
            - Guardfile
         | 
| 127 161 | 
             
            - LICENSE.txt
         | 
| 128 162 | 
             
            - README.md
         | 
| 129 | 
            -
            - README.rdoc
         | 
| 130 163 | 
             
            - Rakefile
         | 
| 131 164 | 
             
            - VERSION
         | 
| 132 165 | 
             
            - lib/robut-rdio.rb
         | 
| @@ -134,6 +167,12 @@ files: | |
| 134 167 | 
             
            - lib/server/public/css/style.css
         | 
| 135 168 | 
             
            - lib/server/public/css/style_after.css
         | 
| 136 169 | 
             
            - lib/server/public/images/background.png
         | 
| 170 | 
            +
            - lib/server/public/images/buffering.png
         | 
| 171 | 
            +
            - lib/server/public/images/circle-east.png
         | 
| 172 | 
            +
            - lib/server/public/images/circle-pause.png
         | 
| 173 | 
            +
            - lib/server/public/images/circle-play.png
         | 
| 174 | 
            +
            - lib/server/public/images/circle-stop.png
         | 
| 175 | 
            +
            - lib/server/public/images/disconnected.png
         | 
| 137 176 | 
             
            - lib/server/public/images/no-album.png
         | 
| 138 177 | 
             
            - lib/server/public/index.html
         | 
| 139 178 | 
             
            - lib/server/public/js/libs/dd_belatedpng.js
         | 
| @@ -145,8 +184,11 @@ files: | |
| 145 184 | 
             
            - lib/tasks/shell.rake
         | 
| 146 185 | 
             
            - plugin-tester.rb
         | 
| 147 186 | 
             
            - robut-rdio.gemspec
         | 
| 187 | 
            +
            - spec/integration/robut-rdio_spec.rb
         | 
| 148 188 | 
             
            - spec/robut-rdio_spec.rb
         | 
| 189 | 
            +
            - spec/server_spec.rb
         | 
| 149 190 | 
             
            - spec/spec_helper.rb
         | 
| 191 | 
            +
            - spec/support/shared_examples.rb
         | 
| 150 192 | 
             
            homepage: http://github.com/radamant/robut-rdio
         | 
| 151 193 | 
             
            licenses:
         | 
| 152 194 | 
             
            - MIT
         | 
| @@ -162,7 +204,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 162 204 | 
             
                  version: '0'
         | 
| 163 205 | 
             
                  segments:
         | 
| 164 206 | 
             
                  - 0
         | 
| 165 | 
            -
                  hash:  | 
| 207 | 
            +
                  hash: -2125228418615372686
         | 
| 166 208 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 167 209 | 
             
              none: false
         | 
| 168 210 | 
             
              requirements:
         | 
    
        data/README.rdoc
    DELETED
    
    | @@ -1,19 +0,0 @@ | |
| 1 | 
            -
            = robut-rdio
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            Description goes here.
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            == Contributing to robut-rdio
         | 
| 6 | 
            -
             
         | 
| 7 | 
            -
            * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
         | 
| 8 | 
            -
            * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
         | 
| 9 | 
            -
            * Fork the project
         | 
| 10 | 
            -
            * Start a feature/bugfix branch
         | 
| 11 | 
            -
            * Commit and push until you are happy with your contribution
         | 
| 12 | 
            -
            * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
         | 
| 13 | 
            -
            * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            == Copyright
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            Copyright (c) 2011 Adam Pearson. See LICENSE.txt for
         | 
| 18 | 
            -
            further details.
         | 
| 19 | 
            -
             |