hypem 0.1.3 → 0.1.4
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/exceptions.rb +4 -0
- data/lib/hypem.rb +1 -0
- data/lib/hypem/blog.rb +1 -2
- data/lib/hypem/playlist.rb +9 -10
- data/lib/hypem/request.rb +5 -5
- data/lib/hypem/response.rb +2 -2
- data/lib/hypem/user.rb +13 -11
- data/lib/hypem/version.rb +1 -1
- data/spec/blog_spec.rb +1 -1
- data/spec/playlist_spec.rb +6 -6
- data/spec/request_spec.rb +1 -1
- data/spec/response_spec.rb +16 -2
- metadata +16 -15
    
        data/lib/exceptions.rb
    ADDED
    
    
    
        data/lib/hypem.rb
    CHANGED
    
    
    
        data/lib/hypem/blog.rb
    CHANGED
    
    | @@ -14,11 +14,10 @@ module Hypem | |
| 14 14 |  | 
| 15 15 | 
             
                def get_info
         | 
| 16 16 | 
             
                  unless @has_info
         | 
| 17 | 
            -
                    response = Request.new("/api/get_site_info?siteid=#{@id}").get.response.body
         | 
| 17 | 
            +
                    response = Request.new("/api/get_site_info?siteid=#{@id}").tap(&:get).response.body
         | 
| 18 18 | 
             
                    update_from_response(response)
         | 
| 19 19 | 
             
                    @has_info = true
         | 
| 20 20 | 
             
                  end
         | 
| 21 | 
            -
                  return self
         | 
| 22 21 | 
             
                end
         | 
| 23 22 |  | 
| 24 23 | 
             
                def update_from_response(rsp)
         | 
    
        data/lib/hypem/playlist.rb
    CHANGED
    
    | @@ -14,24 +14,23 @@ module Hypem | |
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| 16 16 | 
             
                def get
         | 
| 17 | 
            -
                  response = Request.new(@path).get.response
         | 
| 17 | 
            +
                  response = Request.new(@path).tap(&:get).response
         | 
| 18 18 | 
             
                  @tracks = []
         | 
| 19 19 | 
             
                  # getting rid of version cell
         | 
| 20 20 | 
             
                  response.body.shift
         | 
| 21 21 | 
             
                  response.body.each_value{|v| @tracks << Track.new(v)}
         | 
| 22 | 
            -
                  return self
         | 
| 23 22 | 
             
                end
         | 
| 24 23 |  | 
| 25 24 | 
             
                def next_page
         | 
| 26 | 
            -
                  Playlist.new(@type,@arg,@page+1).get
         | 
| 25 | 
            +
                  Playlist.new(@type,@arg,@page+1).tap(&:get)
         | 
| 27 26 | 
             
                end
         | 
| 28 27 |  | 
| 29 28 | 
             
                def prev_page
         | 
| 30 | 
            -
                  Playlist.new(@type,@arg,@page-1).get
         | 
| 29 | 
            +
                  Playlist.new(@type,@arg,@page-1).tap(&:get)
         | 
| 31 30 | 
             
                end
         | 
| 32 31 |  | 
| 33 32 | 
             
                def page(num)
         | 
| 34 | 
            -
                  Playlist.new(@type,@arg,num).get
         | 
| 33 | 
            +
                  Playlist.new(@type,@arg,num).tap(&:get)
         | 
| 35 34 | 
             
                end
         | 
| 36 35 |  | 
| 37 36 | 
             
                def self.create_url(tracks)
         | 
| @@ -42,21 +41,21 @@ module Hypem | |
| 42 41 | 
             
                end
         | 
| 43 42 |  | 
| 44 43 | 
             
                def self.latest(page=nil)
         | 
| 45 | 
            -
                  Playlist.new(:time,:today,page).get
         | 
| 44 | 
            +
                  Playlist.new(:time,:today,page).tap(&:get)
         | 
| 46 45 | 
             
                end
         | 
| 47 46 |  | 
| 48 47 | 
             
                def self.popular(arg=POPULAR_ARGS.first,page=nil)
         | 
| 49 48 | 
             
                  arg = arg.to_sym if arg.is_a? String
         | 
| 50 49 | 
             
                  raise ArgumentError unless POPULAR_ARGS.include?(arg)
         | 
| 51 | 
            -
                  Playlist.new(:popular,arg,page).get
         | 
| 50 | 
            +
                  Playlist.new(:popular,arg,page).tap(&:get)
         | 
| 52 51 | 
             
                end
         | 
| 53 52 |  | 
| 54 53 | 
             
                def self.friends_history(user,page=nil)
         | 
| 55 | 
            -
                  Playlist.new(:people_history,user,page).get
         | 
| 54 | 
            +
                  Playlist.new(:people_history,user,page).tap(&:get)
         | 
| 56 55 | 
             
                end
         | 
| 57 56 |  | 
| 58 57 | 
             
                def self.friends_favorites(user,page=nil)
         | 
| 59 | 
            -
                  Playlist.new(:people,user,page).get
         | 
| 58 | 
            +
                  Playlist.new(:people,user,page).tap(&:get)
         | 
| 60 59 | 
             
                end
         | 
| 61 60 |  | 
| 62 61 | 
             
                def self.tags(list,page)
         | 
| @@ -68,7 +67,7 @@ module Hypem | |
| 68 67 | 
             
                # meta method definitions for generic playlists
         | 
| 69 68 | 
             
                GENERIC_METHODS.each do |method|
         | 
| 70 69 | 
             
                  define_singleton_method(method) do |arg,page=nil|
         | 
| 71 | 
            -
                    Playlist.new(method,arg,page).get
         | 
| 70 | 
            +
                    Playlist.new(method,arg,page).tap(&:get)
         | 
| 72 71 | 
             
                  end
         | 
| 73 72 | 
             
                end
         | 
| 74 73 |  | 
    
        data/lib/hypem/request.rb
    CHANGED
    
    | @@ -3,7 +3,6 @@ require 'faraday' | |
| 3 3 | 
             
            module Hypem
         | 
| 4 4 | 
             
              ROOT_PATH = 'http://hypem.com'
         | 
| 5 5 | 
             
              class Request
         | 
| 6 | 
            -
                attr_accessor :response
         | 
| 7 6 | 
             
                attr_reader :url
         | 
| 8 7 |  | 
| 9 8 | 
             
                def initialize(url)
         | 
| @@ -11,9 +10,11 @@ module Hypem | |
| 11 10 | 
             
                end
         | 
| 12 11 |  | 
| 13 12 | 
             
                def get
         | 
| 14 | 
            -
                  raw_response = connection.get(@url)
         | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 13 | 
            +
                  @raw_response = connection.get(@url)
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def response
         | 
| 17 | 
            +
                  @response ||= Response.new(@raw_response)
         | 
| 17 18 | 
             
                end
         | 
| 18 19 |  | 
| 19 20 | 
             
                private
         | 
| @@ -21,7 +22,6 @@ module Hypem | |
| 21 22 | 
             
                def connection
         | 
| 22 23 | 
             
                  @@conn ||= Faraday.new(url: ROOT_PATH) do |builder|
         | 
| 23 24 | 
             
                    builder.request :url_encoded
         | 
| 24 | 
            -
                    #builder.response :logger
         | 
| 25 25 | 
             
                    builder.adapter :net_http
         | 
| 26 26 | 
             
                  end
         | 
| 27 27 | 
             
                end
         | 
    
        data/lib/hypem/response.rb
    CHANGED
    
    
    
        data/lib/hypem/user.rb
    CHANGED
    
    | @@ -10,7 +10,9 @@ module Hypem | |
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 12 | 
             
                def api_request(path)
         | 
| 13 | 
            -
                  Request.new("/api/#{path}?username=#{@name}") | 
| 13 | 
            +
                  request = Request.new("/api/#{path}?username=#{@name}")
         | 
| 14 | 
            +
                  request.get
         | 
| 15 | 
            +
                  request.response.body
         | 
| 14 16 | 
             
                end
         | 
| 15 17 |  | 
| 16 18 | 
             
                def get_profile
         | 
| @@ -66,24 +68,24 @@ module Hypem | |
| 66 68 |  | 
| 67 69 | 
             
                #playlist requests
         | 
| 68 70 |  | 
| 69 | 
            -
                def loved_playlist
         | 
| 70 | 
            -
                  @l_p ||= Playlist.loved(@name)
         | 
| 71 | 
            +
                def loved_playlist(page=1)
         | 
| 72 | 
            +
                  @l_p ||= Playlist.loved(@name,page)
         | 
| 71 73 | 
             
                end
         | 
| 72 74 |  | 
| 73 | 
            -
                def obsessed_playlist
         | 
| 74 | 
            -
                  @o_p ||= Playlist.obsessed(@name)
         | 
| 75 | 
            +
                def obsessed_playlist(page=1)
         | 
| 76 | 
            +
                  @o_p ||= Playlist.obsessed(@name,page)
         | 
| 75 77 | 
             
                end
         | 
| 76 78 |  | 
| 77 | 
            -
                def feed_playlist
         | 
| 78 | 
            -
                  @f_p ||= Playlist.feed(@name)
         | 
| 79 | 
            +
                def feed_playlist(page=1)
         | 
| 80 | 
            +
                  @f_p ||= Playlist.feed(@name,page)
         | 
| 79 81 | 
             
                end
         | 
| 80 82 |  | 
| 81 | 
            -
                def friends_favorites_playlist
         | 
| 82 | 
            -
                  @f_f_p ||= Playlist.friends_favorites(@name)
         | 
| 83 | 
            +
                def friends_favorites_playlist(page=1)
         | 
| 84 | 
            +
                  @f_f_p ||= Playlist.friends_favorites(@name,page)
         | 
| 83 85 | 
             
                end
         | 
| 84 86 |  | 
| 85 | 
            -
                def friends_history_playlist
         | 
| 86 | 
            -
                  @f_h_p ||= Playlist.friends_history(@name)
         | 
| 87 | 
            +
                def friends_history_playlist(page=1)
         | 
| 88 | 
            +
                  @f_h_p ||= Playlist.friends_history(@name,page)
         | 
| 87 89 | 
             
                end
         | 
| 88 90 | 
             
              end
         | 
| 89 91 | 
             
            end
         | 
    
        data/lib/hypem/version.rb
    CHANGED
    
    
    
        data/spec/blog_spec.rb
    CHANGED
    
    | @@ -20,7 +20,7 @@ describe Hypem::Blog do | |
| 20 20 |  | 
| 21 21 | 
             
                describe "#get_info" do
         | 
| 22 22 | 
             
                  subject do
         | 
| 23 | 
            -
                    VCR.use_cassette('blog') {blog.get_info}
         | 
| 23 | 
            +
                    VCR.use_cassette('blog') {blog.tap(&:get_info)}
         | 
| 24 24 | 
             
                  end
         | 
| 25 25 | 
             
                  specify {subject.should be_a Hypem::Blog}
         | 
| 26 26 | 
             
                  specify {subject.site_name.should == 'Pasta Primavera'}
         | 
    
        data/spec/playlist_spec.rb
    CHANGED
    
    | @@ -57,32 +57,32 @@ describe Hypem::Playlist do | |
| 57 57 | 
             
                before {Hypem::Playlist.stub_chain(:new, :get)}
         | 
| 58 58 |  | 
| 59 59 | 
             
                it "converts strings to symbols" do
         | 
| 60 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,%s(3day))
         | 
| 60 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,%s(3day),anything)
         | 
| 61 61 | 
             
                  Hypem::Playlist.popular('3day')
         | 
| 62 62 | 
             
                end
         | 
| 63 63 |  | 
| 64 64 | 
             
                it "retrieves 3day by default" do
         | 
| 65 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,%s(3day))
         | 
| 65 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,%s(3day),anything)
         | 
| 66 66 | 
             
                  Hypem::Playlist.popular
         | 
| 67 67 | 
             
                end
         | 
| 68 68 |  | 
| 69 69 | 
             
                it "accepts lastweek" do
         | 
| 70 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,:lastweek)
         | 
| 70 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,:lastweek,anything)
         | 
| 71 71 | 
             
                  Hypem::Playlist.popular(:lastweek)
         | 
| 72 72 | 
             
                end
         | 
| 73 73 |  | 
| 74 74 | 
             
                it "accepts noremix" do
         | 
| 75 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,:noremix)
         | 
| 75 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,:noremix,anything)
         | 
| 76 76 | 
             
                  Hypem::Playlist.popular(:noremix)
         | 
| 77 77 | 
             
                end
         | 
| 78 78 |  | 
| 79 79 | 
             
                it "accepts artists" do
         | 
| 80 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,:artists)
         | 
| 80 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,:artists,anything)
         | 
| 81 81 | 
             
                  Hypem::Playlist.popular(:artists)
         | 
| 82 82 | 
             
                end
         | 
| 83 83 |  | 
| 84 84 | 
             
                it "accepts twitter" do
         | 
| 85 | 
            -
                  Hypem::Playlist.should_receive(:new).with(:popular,:twitter)
         | 
| 85 | 
            +
                  Hypem::Playlist.should_receive(:new).with(:popular,:twitter,anything)
         | 
| 86 86 | 
             
                  Hypem::Playlist.popular(:twitter)
         | 
| 87 87 | 
             
                end
         | 
| 88 88 |  | 
    
        data/spec/request_spec.rb
    CHANGED
    
    
    
        data/spec/response_spec.rb
    CHANGED
    
    | @@ -3,12 +3,20 @@ require 'spec_helper' | |
| 3 3 | 
             
            describe Hypem::Response do
         | 
| 4 4 |  | 
| 5 5 | 
             
              context "at initialization" do
         | 
| 6 | 
            -
                let(: | 
| 6 | 
            +
                let(:request) do
         | 
| 7 | 
            +
                  Hypem::Request.new('/playlist/latest/fresh/json/1')
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                let(:gotten_request) do
         | 
| 7 11 | 
             
                  VCR.use_cassette('fresh_playlist') do
         | 
| 8 | 
            -
                     | 
| 12 | 
            +
                    request.get
         | 
| 9 13 | 
             
                  end
         | 
| 10 14 | 
             
                end
         | 
| 11 15 |  | 
| 16 | 
            +
                let(:response) do
         | 
| 17 | 
            +
                  described_class.new(gotten_request)
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 12 20 | 
             
                it "uses a raw response parameter" do
         | 
| 13 21 | 
             
                  response.body.should_not be_nil
         | 
| 14 22 | 
             
                end
         | 
| @@ -16,6 +24,12 @@ describe Hypem::Response do | |
| 16 24 | 
             
                it "assigns the body attribute" do
         | 
| 17 25 | 
             
                  response.body.should be_a Hash
         | 
| 18 26 | 
             
                end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                it "raises RequestError with null body" do
         | 
| 29 | 
            +
                  raw_response = double('RawResponse')
         | 
| 30 | 
            +
                  raw_response.stub(:body).and_return('null')
         | 
| 31 | 
            +
                  expect { described_class.new(raw_response) }.to raise_error Hypem::RequestError
         | 
| 32 | 
            +
                end
         | 
| 19 33 | 
             
              end
         | 
| 20 34 |  | 
| 21 35 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: hypem
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.4
         | 
| 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: 2012-05- | 
| 12 | 
            +
            date: 2012-05-24 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rspec
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70124648838920 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '2.6'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70124648838920
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: vcr
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70124648838460 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '2.0'
         | 
| 33 33 | 
             
              type: :development
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70124648838460
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: rake
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70124648838080 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70124648838080
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: faraday
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &70124648837540 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ~>
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: '0.7'
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *70124648837540
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: multi_json
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &70124648837040 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ~>
         | 
| @@ -65,10 +65,10 @@ dependencies: | |
| 65 65 | 
             
                    version: '1.1'
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *70124648837040
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: hashie
         | 
| 71 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &70124648836580 !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                none: false
         | 
| 73 73 | 
             
                requirements:
         | 
| 74 74 | 
             
                - - ~>
         | 
| @@ -76,7 +76,7 @@ dependencies: | |
| 76 76 | 
             
                    version: '1.2'
         | 
| 77 77 | 
             
              type: :runtime
         | 
| 78 78 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *70124648836580
         | 
| 80 80 | 
             
            description: 
         | 
| 81 81 | 
             
            email:
         | 
| 82 82 | 
             
            - jackcanderson@gmail.com
         | 
| @@ -104,6 +104,7 @@ files: | |
| 104 104 | 
             
            - fixtures/vcr_cassettes/user_friends.yml
         | 
| 105 105 | 
             
            - fixtures/vcr_cassettes/user_profile.yml
         | 
| 106 106 | 
             
            - hypem.gemspec
         | 
| 107 | 
            +
            - lib/exceptions.rb
         | 
| 107 108 | 
             
            - lib/hypem.rb
         | 
| 108 109 | 
             
            - lib/hypem/blog.rb
         | 
| 109 110 | 
             
            - lib/hypem/playlist.rb
         | 
| @@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 140 141 | 
             
                  version: '0'
         | 
| 141 142 | 
             
                  segments:
         | 
| 142 143 | 
             
                  - 0
         | 
| 143 | 
            -
                  hash:  | 
| 144 | 
            +
                  hash: 1984432069541911698
         | 
| 144 145 | 
             
            requirements: []
         | 
| 145 146 | 
             
            rubyforge_project: hypem
         | 
| 146 147 | 
             
            rubygems_version: 1.8.10
         |