bassnode-ruby-echonest 0.1.2 → 0.1.3
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/README.rdoc +0 -1
 - data/Rakefile +4 -3
 - data/bassnode-ruby-echonest.gemspec +2 -2
 - data/console +45 -0
 - data/lib/echonest.rb +16 -0
 - data/lib/echonest/api.rb +61 -3
 - data/lib/echonest/version.rb +1 -1
 - data/spec/api_spec.rb +2 -1
 - data/spec/catalog_spec.rb +32 -0
 - metadata +8 -8
 
    
        data/README.rdoc
    CHANGED
    
    
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ require 'rake' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'rake/clean'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'rake/testtask'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'rake/packagetask'
         
     | 
| 
       6 
     | 
    
         
            -
            require ' 
     | 
| 
       7 
     | 
    
         
            -
            require ' 
     | 
| 
      
 6 
     | 
    
         
            +
            require 'rubygems/package_task'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'rdoc/task'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'rake/contrib/sshpublisher'
         
     | 
| 
       9 
9 
     | 
    
         
             
            require 'spec/rake/spectask'
         
     | 
| 
       10 
10 
     | 
    
         
             
            require 'fileutils'
         
     | 
| 
         @@ -24,7 +24,7 @@ Spec::Rake::SpecTask.new do |t| 
     | 
|
| 
       24 
24 
     | 
    
         
             
            end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
            spec = eval(File.read("bassnode-ruby-echonest.gemspec"))
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 27 
     | 
    
         
            +
            Gem::PackageTask.new(spec) do |p|
         
     | 
| 
       28 
28 
     | 
    
         
             
              p.need_tar = true
         
     | 
| 
       29 
29 
     | 
    
         
             
              p.gem_spec = spec
         
     | 
| 
       30 
30 
     | 
    
         
             
            end
         
     | 
| 
         @@ -34,3 +34,4 @@ desc "Show information about the gem" 
     | 
|
| 
       34 
34 
     | 
    
         
             
            task :debug_gem do
         
     | 
| 
       35 
35 
     | 
    
         
             
              puts spec.to_ruby
         
     | 
| 
       36 
36 
     | 
    
         
             
            end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
         @@ -2,11 +2,11 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       4 
4 
     | 
    
         
             
              s.name = %q{bassnode-ruby-echonest}
         
     | 
| 
       5 
     | 
    
         
            -
              s.version = "0.1. 
     | 
| 
      
 5 
     | 
    
         
            +
              s.version = "0.1.3"
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       8 
8 
     | 
    
         
             
              s.authors = ["youpy", "bassnode"]
         
     | 
| 
       9 
     | 
    
         
            -
              s.date = %q{ 
     | 
| 
      
 9 
     | 
    
         
            +
              s.date = %q{2012-02-12}
         
     | 
| 
       10 
10 
     | 
    
         
             
              s.description = %q{An Ruby interface for Echo Nest Developer API}
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.summary = %q{An Ruby interface for Echo Nest Developer API}
         
     | 
| 
       12 
12 
     | 
    
         
             
              s.email = %q{youpy@buycheapviagraonlinenow.com}
         
     | 
    
        data/console
    ADDED
    
    | 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'irb'
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            # ensure we use local gem
         
     | 
| 
      
 5 
     | 
    
         
            +
            $LOAD_PATH.unshift('lib')
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            def consolize &block
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              yield
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
              IRB.setup(nil)
         
     | 
| 
      
 12 
     | 
    
         
            +
              irb = IRB::Irb.new
         
     | 
| 
      
 13 
     | 
    
         
            +
              IRB.conf[:MAIN_CONTEXT] = irb.context
         
     | 
| 
      
 14 
     | 
    
         
            +
              irb.context.evaluate("require 'irb/completion'", 0)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              trap("SIGINT") do
         
     | 
| 
      
 17 
     | 
    
         
            +
                irb.signal_handle
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
              catch(:IRB_EXIT) do
         
     | 
| 
      
 20 
     | 
    
         
            +
                irb.eval_input
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            consolize do
         
     | 
| 
      
 25 
     | 
    
         
            +
              require 'echonest'
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              key = nil
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              locations = ["~/.mreko/echonest_api.key", "~/.echonest/api_key"]
         
     | 
| 
      
 30 
     | 
    
         
            +
              locations.each do |config|
         
     | 
| 
      
 31 
     | 
    
         
            +
                if File.exists?(File.expand_path(config))
         
     | 
| 
      
 32 
     | 
    
         
            +
                  key = File.read(File.expand_path(config))
         
     | 
| 
      
 33 
     | 
    
         
            +
                  break
         
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              raise "Need an EN key in one of these locations: #{locations.inspect}" unless key
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              @en = Echonest(key)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              def en; @en; end
         
     | 
| 
      
 42 
     | 
    
         
            +
            end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
    
        data/lib/echonest.rb
    CHANGED
    
    | 
         @@ -13,4 +13,20 @@ require 'echonest/element/tatum' 
     | 
|
| 
       13 
13 
     | 
    
         
             
            def Echonest(api_key) Echonest::Api.new(api_key) end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            module Echonest
         
     | 
| 
      
 16 
     | 
    
         
            +
              extend self
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def debug(obj)
         
     | 
| 
      
 19 
     | 
    
         
            +
                return unless debug?
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                if obj.is_a?(String)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  puts obj
         
     | 
| 
      
 23 
     | 
    
         
            +
                else
         
     | 
| 
      
 24 
     | 
    
         
            +
                  puts obj.inspect
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              # MOAR DEBUGGING! *just for now
         
     | 
| 
      
 29 
     | 
    
         
            +
              def debug?
         
     | 
| 
      
 30 
     | 
    
         
            +
                true || ENV['DEBUG']
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
       16 
32 
     | 
    
         
             
            end
         
     | 
    
        data/lib/echonest/api.rb
    CHANGED
    
    | 
         @@ -36,6 +36,10 @@ module Echonest 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  end
         
     | 
| 
       37 
37 
     | 
    
         
             
                end
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
      
 39 
     | 
    
         
            +
                def catalog
         
     | 
| 
      
 40 
     | 
    
         
            +
                  ApiMethods::Catalog.new(self)
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
       39 
43 
     | 
    
         
             
                def song
         
     | 
| 
       40 
44 
     | 
    
         
             
                  ApiMethods::Song.new(self)
         
     | 
| 
       41 
45 
     | 
    
         
             
                end
         
     | 
| 
         @@ -61,7 +65,7 @@ module Echonest 
     | 
|
| 
       61 
65 
     | 
    
         
             
                  hash_to_list = lambda{|kv| [kv[0].to_s, kv[1]]}
         
     | 
| 
       62 
66 
     | 
    
         
             
                  params.each do |param|
         
     | 
| 
       63 
67 
     | 
    
         
             
                    if param.instance_of? Array
         
     | 
| 
       64 
     | 
    
         
            -
                      param[1].map do |p1|
         
     | 
| 
      
 68 
     | 
    
         
            +
                      Array(param[1]).map do |p1|
         
     | 
| 
       65 
69 
     | 
    
         
             
                        result << [param[0].to_s, p1]
         
     | 
| 
       66 
70 
     | 
    
         
             
                      end
         
     | 
| 
       67 
71 
     | 
    
         
             
                    else
         
     | 
| 
         @@ -105,6 +109,8 @@ module Echonest 
     | 
|
| 
       105 
109 
     | 
    
         
             
                      res = connection.pop
         
     | 
| 
       106 
110 
     | 
    
         
             
                      response_body = res.content.read
         
     | 
| 
       107 
111 
     | 
    
         
             
                  else
         
     | 
| 
      
 112 
     | 
    
         
            +
                    Echonest.debug "#{method.to_s.upcase} #{uri}?#{build_params_to_list(params).inject(''){ |str, (key,val)| str << "#{key}=#{val}&"; str }}"
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
       108 
114 
     | 
    
         
             
                    response_body = @user_agent.__send__(
         
     | 
| 
       109 
115 
     | 
    
         
             
                      method.to_s + '_content',
         
     | 
| 
       110 
116 
     | 
    
         
             
                      uri,
         
     | 
| 
         @@ -323,8 +329,60 @@ module Echonest 
     | 
|
| 
       323 
329 
     | 
    
         
             
                end
         
     | 
| 
       324 
330 
     | 
    
         | 
| 
       325 
331 
     | 
    
         
             
                class Playlist < Base
         
     | 
| 
       326 
     | 
    
         
            -
                   
     | 
| 
       327 
     | 
    
         
            -
             
     | 
| 
      
 332 
     | 
    
         
            +
                  @basic_parameters = %w[ format type artist_id artist song_id track_id results bucket limit dmca]
         
     | 
| 
      
 333 
     | 
    
         
            +
             
     | 
| 
      
 334 
     | 
    
         
            +
                  @static_parameters = %w[  artist_pick variety distribution adventurousness
         
     | 
| 
      
 335 
     | 
    
         
            +
                                            seed_catalog description style mood
         
     | 
| 
      
 336 
     | 
    
         
            +
                                            max_tempo min_tempo max_duration min_duration max_loudness min_loudness max_danceability min_danceability
         
     | 
| 
      
 337 
     | 
    
         
            +
                                            max_energy min_energy artist_max_familiarity artist_min_familiarity artist_max_hotttnesss artist_min_hotttnesss
         
     | 
| 
      
 338 
     | 
    
         
            +
                                            artist_start_year_before artist_start_year_after artist_end_year_before artist_end_year_after song_max_hotttnesss song_min_hotttnesss
         
     | 
| 
      
 339 
     | 
    
         
            +
                                            min_longitude max_longitude min_latitude max_latitude mode key sort ] + @basic_parameters
         
     | 
| 
      
 340 
     | 
    
         
            +
             
     | 
| 
      
 341 
     | 
    
         
            +
                  @dynamic_parameters = %w[ session_id dmca adventurousness rating chain_xspf
         
     | 
| 
      
 342 
     | 
    
         
            +
                                            steer steer_description steer_style steer_mood ] + @static_parameters
         
     | 
| 
      
 343 
     | 
    
         
            +
             
     | 
| 
      
 344 
     | 
    
         
            +
                  method_with_option(:basic,  @basic_parameters)
         
     | 
| 
      
 345 
     | 
    
         
            +
                  method_with_option(:static,  @static_parameters)
         
     | 
| 
      
 346 
     | 
    
         
            +
                  method_with_option(:dynamic, @dynamic_parameters)
         
     | 
| 
      
 347 
     | 
    
         
            +
                end
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
                # http://developer.echonest.com/docs/v4/catalog.html
         
     | 
| 
      
 350 
     | 
    
         
            +
                class Catalog < Base
         
     | 
| 
      
 351 
     | 
    
         
            +
                  # type can be 'song' or 'artist' (Default)
         
     | 
| 
      
 352 
     | 
    
         
            +
                  def create(name, type="artist")
         
     | 
| 
      
 353 
     | 
    
         
            +
                    @api.request('catalog/create', :post, {:name => name, :type => type, :format => "json"}).body
         
     | 
| 
      
 354 
     | 
    
         
            +
                  end
         
     | 
| 
      
 355 
     | 
    
         
            +
             
     | 
| 
      
 356 
     | 
    
         
            +
                  # Updates (adds or deletes) items from a catalog. The body of the post should include an item block that describes modifications to the catalog.
         
     | 
| 
      
 357 
     | 
    
         
            +
                  # data: [{:item=>{:item_id => "hogehoge", :artist_name => "Oscar Peterson"}}]
         
     | 
| 
      
 358 
     | 
    
         
            +
                  def update(catalog_id, data)
         
     | 
| 
      
 359 
     | 
    
         
            +
                    json_data = data.to_json
         
     | 
| 
      
 360 
     | 
    
         
            +
                    @api.request('catalog/update', :post, {:id => catalog_id, :data_type => "json", :format => "json", :data => json_data}).body
         
     | 
| 
      
 361 
     | 
    
         
            +
                  end
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
      
 363 
     | 
    
         
            +
                  # Checks the status of a catalog update.
         
     | 
| 
      
 364 
     | 
    
         
            +
                  method_with_option(:status, %w[format ticket])
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
                  # Get basic information on a catalog
         
     | 
| 
      
 367 
     | 
    
         
            +
                  method_with_option(:profile, %w[format id name])
         
     | 
| 
      
 368 
     | 
    
         
            +
             
     | 
| 
      
 369 
     | 
    
         
            +
                  # Returns data stored in the catalog. Also returns Echo Nest IDs for items that have been resolved to Echo Nest IDs
         
     | 
| 
      
 370 
     | 
    
         
            +
                  # along with information requested via bucket. If item_id is not set, all items (subject to the limits of the start and results parameters)
         
     | 
| 
      
 371 
     | 
    
         
            +
                  # are returned, otherwise, only the items explicitly specified by item_id are returned.
         
     | 
| 
      
 372 
     | 
    
         
            +
                  method_with_option(:read, %w[format id name item_id bucket results start])
         
     | 
| 
      
 373 
     | 
    
         
            +
             
     | 
| 
      
 374 
     | 
    
         
            +
                  # Returns feeds based on the artists in a taste profile. Unlike catalog/read method, the catalog/feed method interleaves items and sorts them by date.
         
     | 
| 
      
 375 
     | 
    
         
            +
                  # since: YYYY-mm-dd
         
     | 
| 
      
 376 
     | 
    
         
            +
                  # high_relevance: boolean (default false)
         
     | 
| 
      
 377 
     | 
    
         
            +
                  # bucket: news, blogs, reviews, audio and video blogs. If omitted defaults to news.
         
     | 
| 
      
 378 
     | 
    
         
            +
                  # result: default of 25
         
     | 
| 
      
 379 
     | 
    
         
            +
                  method_with_option(:feed, %w[format id bucket results start since high_relevance])
         
     | 
| 
      
 380 
     | 
    
         
            +
             
     | 
| 
      
 381 
     | 
    
         
            +
                  # Deletes the entire catalog. Only the API key used to create a catalog can be used to delete that catalog.
         
     | 
| 
      
 382 
     | 
    
         
            +
                  method_with_required_any('catalog', :delete, :post, %w[id], [], %w[format], lambda{})
         
     | 
| 
      
 383 
     | 
    
         
            +
             
     | 
| 
      
 384 
     | 
    
         
            +
                  # Returns a list of all catalogs created with the current key (account)
         
     | 
| 
      
 385 
     | 
    
         
            +
                  method_with_option(:list, %w[format results start])
         
     | 
| 
       328 
386 
     | 
    
         
             
                end
         
     | 
| 
       329 
387 
     | 
    
         
             
              end
         
     | 
| 
       330 
388 
     | 
    
         
             
            end
         
     | 
    
        data/lib/echonest/version.rb
    CHANGED
    
    
    
        data/spec/api_spec.rb
    CHANGED
    
    | 
         @@ -40,10 +40,11 @@ describe Echonest::Api do 
     | 
|
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
              it "should pass arguments including a file to user agent" do
         
     | 
| 
      
 43 
     | 
    
         
            +
                pending "Failes due to incorrect stubbing."
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       43 
45 
     | 
    
         
             
                file = open(fixture('sample.mp3'))
         
     | 
| 
       44 
46 
     | 
    
         
             
                file.should_receive(:read).and_return('content')
         
     | 
| 
       45 
47 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
48 
     | 
    
         
             
                @api.user_agent.should_receive(:post_async).
         
     | 
| 
       48 
49 
     | 
    
         
             
                  with(
         
     | 
| 
       49 
50 
     | 
    
         
             
                  URI('http://developer.echonest.com/api/v4/xxx/zzz?api_key=8TPE3VC60ODJTNTFE&bar=baz&format=json'),
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $:.unshift File.dirname(__FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "echonest"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            include SpecHelper
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            describe Echonest::ApiMethods::Catalog do
         
     | 
| 
      
 9 
     | 
    
         
            +
              before do
         
     | 
| 
      
 10 
     | 
    
         
            +
                @api = Echonest::Api.new('8TPE3VC60ODJTNTFE')
         
     | 
| 
      
 11 
     | 
    
         
            +
                @catalog = Echonest::ApiMethods::Catalog.new(@api)
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe "#create" do
         
     | 
| 
      
 15 
     | 
    
         
            +
                it "should request to catalog/create with option" do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  catalog_name = "catalog_name"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  catalog_type = "artist"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @api.should_receive(:request).with("catalog/create", :post, {:name => catalog_name, :type => catalog_type, :format => "json"}).and_return{ Echonest::Response.new('{"hello":"world"}') }
         
     | 
| 
      
 19 
     | 
    
         
            +
                  @catalog.create(catalog_name, catalog_type)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              describe "#update" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                it "should request to catalog/update with option" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                  catalog_id = "catalog_id"
         
     | 
| 
      
 26 
     | 
    
         
            +
                  data = [{:item=>{:item_id => "hogehoge", :artist_name => "Oscar Peterson"}}]
         
     | 
| 
      
 27 
     | 
    
         
            +
                  @api.should_receive(:request).with("catalog/update", :post, {:id => catalog_id, :data_type => "json", :format => "json", :data => data.to_json}).and_return{ Echonest::Response.new('{"hello":"world"}') }
         
     | 
| 
      
 28 
     | 
    
         
            +
                  @catalog.update(catalog_id, data)
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bassnode-ruby-echonest
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
       5 
     | 
    
         
            -
              prerelease:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 29
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 1
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 3
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.1.3
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - youpy
         
     | 
| 
         @@ -16,8 +16,7 @@ autorequire: 
     | 
|
| 
       16 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            date:  
     | 
| 
       20 
     | 
    
         
            -
            default_executable: 
         
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2012-02-12 00:00:00 Z
         
     | 
| 
       21 
20 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       22 
21 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       23 
22 
     | 
    
         
             
              name: libxml-ruby
         
     | 
| 
         @@ -90,6 +89,7 @@ files: 
     | 
|
| 
       90 
89 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       91 
90 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       92 
91 
     | 
    
         
             
            - bassnode-ruby-echonest.gemspec
         
     | 
| 
      
 92 
     | 
    
         
            +
            - console
         
     | 
| 
       93 
93 
     | 
    
         
             
            - lib/echonest.rb
         
     | 
| 
       94 
94 
     | 
    
         
             
            - lib/echonest/analysis.rb
         
     | 
| 
       95 
95 
     | 
    
         
             
            - lib/echonest/api.rb
         
     | 
| 
         @@ -106,6 +106,7 @@ files: 
     | 
|
| 
       106 
106 
     | 
    
         
             
            - spec/api_spec.rb
         
     | 
| 
       107 
107 
     | 
    
         
             
            - spec/apimethods_base_spec.rb
         
     | 
| 
       108 
108 
     | 
    
         
             
            - spec/artist_spec.rb
         
     | 
| 
      
 109 
     | 
    
         
            +
            - spec/catalog_spec.rb
         
     | 
| 
       109 
110 
     | 
    
         
             
            - spec/echonest_spec.rb
         
     | 
| 
       110 
111 
     | 
    
         
             
            - spec/fixtures/analysis.json
         
     | 
| 
       111 
112 
     | 
    
         
             
            - spec/fixtures/profile.json
         
     | 
| 
         @@ -118,7 +119,6 @@ files: 
     | 
|
| 
       118 
119 
     | 
    
         
             
            - spec/spec.opts
         
     | 
| 
       119 
120 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       120 
121 
     | 
    
         
             
            - spec/track_spec.rb
         
     | 
| 
       121 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
       122 
122 
     | 
    
         
             
            homepage: http://github.com/bassnode/ruby-echonest
         
     | 
| 
       123 
123 
     | 
    
         
             
            licenses: []
         
     | 
| 
       124 
124 
     | 
    
         | 
| 
         @@ -159,7 +159,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       159 
159 
     | 
    
         
             
            requirements: []
         
     | 
| 
       160 
160 
     | 
    
         | 
| 
       161 
161 
     | 
    
         
             
            rubyforge_project: bassnode-ruby-echonest
         
     | 
| 
       162 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 162 
     | 
    
         
            +
            rubygems_version: 1.8.11
         
     | 
| 
       163 
163 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       164 
164 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       165 
165 
     | 
    
         
             
            summary: An Ruby interface for Echo Nest Developer API
         
     |