echonest 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +7 -0
  3. data/Rakefile +56 -0
  4. data/VERSION.yml +4 -0
  5. data/examples/artist_audio.rb +33 -0
  6. data/generators/echonest_acceptance_test/USAGE +5 -0
  7. data/generators/echonest_acceptance_test/echonest_acceptance_test_generator.rb +50 -0
  8. data/generators/echonest_acceptance_test/templates/feature.erb +8 -0
  9. data/generators/echonest_model/USAGE +5 -0
  10. data/generators/echonest_model/echonest_model_generator.rb +52 -0
  11. data/generators/echonest_model/templates/doc.rb.erb +12 -0
  12. data/generators/echonest_model/templates/result.rb.erb +12 -0
  13. data/generators/echonest_model/templates/results.rb.erb +15 -0
  14. data/generators/echonest_resource/USAGE +5 -0
  15. data/generators/echonest_resource/echonest_resource_generator.rb +50 -0
  16. data/generators/echonest_unit_test/USAGE +5 -0
  17. data/generators/echonest_unit_test/echonest_unit_test_generator.rb +50 -0
  18. data/generators/echonest_unit_test/templates/unit_test.rb.erb +44 -0
  19. data/lib/echonest.rb +56 -0
  20. data/lib/echonest/api_request.rb +26 -0
  21. data/lib/echonest/artist.rb +74 -0
  22. data/lib/echonest/paged_result.rb +33 -0
  23. data/lib/echonest/xml/artist_doc.rb +23 -0
  24. data/lib/echonest/xml/artist_search_results.rb +14 -0
  25. data/lib/echonest/xml/audio_doc.rb +20 -0
  26. data/lib/echonest/xml/audio_result.rb +13 -0
  27. data/lib/echonest/xml/audio_results.rb +16 -0
  28. data/lib/echonest/xml/blogs_doc.rb +15 -0
  29. data/lib/echonest/xml/blogs_result.rb +14 -0
  30. data/lib/echonest/xml/blogs_results.rb +18 -0
  31. data/lib/echonest/xml/familiarity_result.rb +12 -0
  32. data/lib/echonest/xml/hotttnesss_result.rb +12 -0
  33. data/lib/echonest/xml/news_doc.rb +15 -0
  34. data/lib/echonest/xml/news_result.rb +14 -0
  35. data/lib/echonest/xml/news_results.rb +16 -0
  36. data/lib/echonest/xml/profile_result.rb +12 -0
  37. data/lib/echonest/xml/reviews_doc.rb +16 -0
  38. data/lib/echonest/xml/reviews_result.rb +15 -0
  39. data/lib/echonest/xml/reviews_results.rb +17 -0
  40. data/lib/echonest/xml/similar_doc.rb +15 -0
  41. data/lib/echonest/xml/similar_result.rb +14 -0
  42. data/lib/echonest/xml/similar_results.rb +16 -0
  43. data/lib/echonest/xml/urls_result.rb +14 -0
  44. data/lib/echonest/xml/video_doc.rb +16 -0
  45. data/lib/echonest/xml/video_result.rb +14 -0
  46. data/lib/echonest/xml/video_results.rb +17 -0
  47. data/spec/echonest/api_request_spec.rb +38 -0
  48. data/spec/echonest/paged_result_spec.rb +66 -0
  49. data/spec/echonest/xml/artist_search_results_spec.rb +25 -0
  50. data/spec/echonest/xml/audio_result_spec.rb +49 -0
  51. data/spec/echonest/xml/blogs_result_spec.rb +48 -0
  52. data/spec/echonest/xml/familiarity_result_spec.rb +33 -0
  53. data/spec/echonest/xml/hotttness_result_spec.rb +31 -0
  54. data/spec/echonest/xml/news_result_spec.rb +49 -0
  55. data/spec/echonest/xml/profile_result_spec.rb +26 -0
  56. data/spec/echonest/xml/refactor.rb +12 -0
  57. data/spec/echonest/xml/reviews_result_spec.rb +49 -0
  58. data/spec/echonest/xml/similar_result_spec.rb +35 -0
  59. data/spec/echonest/xml/urls_result_spec.rb +38 -0
  60. data/spec/echonest/xml/video_result_spec.rb +48 -0
  61. data/spec/fixtures/audio/wavves.xml +2 -0
  62. data/spec/fixtures/blog/radiohead.xml +32 -0
  63. data/spec/fixtures/familiarity/radiohead.xml +17 -0
  64. data/spec/fixtures/hotttnesss/radiohead.xml +17 -0
  65. data/spec/fixtures/news/radiohead.xml +32 -0
  66. data/spec/fixtures/profile/radiohead.xml +16 -0
  67. data/spec/fixtures/reviews/radiohead.xml +40 -0
  68. data/spec/fixtures/search_artists/wavves.xml +2 -0
  69. data/spec/fixtures/similar/radiohead.xml +31 -0
  70. data/spec/fixtures/urls/radiohead.xml +21 -0
  71. data/spec/fixtures/video/radiohead.xml +32 -0
  72. data/spec/spec_helper.rb +15 -0
  73. data/test/test_echonest_acceptance_test_generator.rb +52 -0
  74. data/test/test_echonest_model_generator.rb +47 -0
  75. data/test/test_echonest_resource_generator.rb +45 -0
  76. data/test/test_echonest_unit_test_generator.rb +35 -0
  77. data/test/test_generator_helper.rb +29 -0
  78. metadata +164 -0
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3">
3
+ <status>
4
+ <code>0</code>
5
+ <message>Success</message>
6
+ </status>
7
+ <query>
8
+ <parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter>
9
+ <parameter name="id">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
10
+ </query>
11
+ <artist>
12
+ <name>Radiohead</name>
13
+ <id>music://id.echonest.com/~/AR/ARH6W4X1187B99274F</id>
14
+ <mb_url>http://musicbrainz.org/artist/a74b1b7f-71a5-4011-9441-d0b5e4122711</mb_url>
15
+ <official_url>http://radiohead.com</official_url>
16
+ <myspace_url>http://profile.myspace.com/215759866</myspace_url>
17
+ <wikipedia_url>http://en.wikipedia.org/wiki/Radiohead</wikipedia_url>
18
+ <amazon_url>http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=Radiohead&amp;tag=httpechonecom-20&amp;index=music</amazon_url>
19
+ <itunes_url>http://click.linksynergy.com/fs-bin/stat?id=a9bjKyUFOyQ&amp;offerid=78941&amp;type=3&amp;subid=0&amp;tmpid=1826&amp;RD_PARM1=itms%253A%252F%252Fphobos.apple.com%252FWebObjects%252FMZSearch.woa%252Fwa%252Fcom.apple.jingle.search.DirectAction%252FadvancedSearchResults%253FartistTerm%253DRadiohead%2526partnerId%3D30</itunes_url>
20
+ </artist>
21
+ </response>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <response version="3">
3
+ <status>
4
+ <code>0</code>
5
+ <message>Success</message>
6
+ </status>
7
+ <query>
8
+ <parameter name="api_key">5ZAOMB3BUR8QUN4PE</parameter>
9
+ <parameter name="name">music://id.echonest.com/~/AR/ARH6W4X1187B99274F</parameter>
10
+ <parameter name="start">0</parameter>
11
+ <parameter name="rows">2</parameter>
12
+ </query>
13
+ <artist>
14
+ <name>Radiohead</name>
15
+ <id>music://id.echonest.com/~/AR/ARH6W4X1187B99274F</id>
16
+ </artist>
17
+ <results found="88" shown="2" start="0">
18
+ <doc id="1bbd537e754abd3b82210b70eb2767ca" type="video">
19
+ <site>youtube</site>
20
+ <title>Radiohead- Tell Me Why- Live Hollywood Bowl Neil Young 8-25</title>
21
+ <url>http://youtube.com/watch?v=kHIJcx9EB94</url>
22
+ <date_found>2008-11-02 16:32:27.001000</date_found>
23
+ </doc>
24
+ <doc id="63f31317e85bec3809a82bfc969c3337" type="video">
25
+ <site>myspace</site>
26
+ <title>Karma Police - Radiohead</title>
27
+ <url>http://vids.myspace.com/index.cfm?fuseaction=vids.individual&amp;videoid=4938205</url>
28
+ <date_found>2008-11-02 16:32:27.001000</date_found>
29
+ <image_url>http://b2.ac-images.myspacecdn.com/01657/29/07/1657067092_thumb1.jpg</image_url>
30
+ </doc>
31
+ </results>
32
+ </response>
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'spec'
3
+
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ require 'echonest'
7
+ #require 'fakeweb'
8
+
9
+ #FakeWeb.allow_net_connect = false
10
+
11
+ Spec::Runner.configure do |config|
12
+
13
+ end
14
+
15
+ include EchoNest::Xml
@@ -0,0 +1,52 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestEchonestAcceptanceTestGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "blah"
31
+ run_generator('echonest_acceptance_test', [name], sources)
32
+ assert_directory_exists "features/"
33
+ assert_generated_file "features/artist_#{name}.feature" do |feature|
34
+ assert feature.include?("Feature: Artist #{name}")
35
+ assert feature.include?("In order to find #{name} about an an artist")
36
+ assert feature.include?("A user should be able to retrieve #{name} for an artist")
37
+ assert feature.include?("Scenario: Artist #{name}")
38
+ assert feature.include?("Then I should get some #{name} results")
39
+ end
40
+
41
+ end
42
+
43
+ private
44
+ def sources
45
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
46
+ ]
47
+ end
48
+
49
+ def generator_path
50
+ "generators"
51
+ end
52
+ end
@@ -0,0 +1,47 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestEchonestModelGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "myapp"
31
+ run_generator('echonest_model', [name], sources)
32
+ assert_directory_exists "lib/echonest"
33
+ assert_generated_file "lib/echonest/#{name}_doc.rb"
34
+ assert_generated_file "lib/echonest/#{name}_result.rb"
35
+ assert_generated_file "lib/echonest/#{name}_results.rb"
36
+ end
37
+
38
+ private
39
+ def sources
40
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
41
+ ]
42
+ end
43
+
44
+ def generator_path
45
+ "generators"
46
+ end
47
+ end
@@ -0,0 +1,45 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestEchonestResourceGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ # Some generator-related assertions:
16
+ # assert_generated_file(name, &block) # block passed the file contents
17
+ # assert_directory_exists(name)
18
+ # assert_generated_class(name, &block)
19
+ # assert_generated_module(name, &block)
20
+ # assert_generated_test_for(name, &block)
21
+ # The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
22
+ # assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
23
+ #
24
+ # Other helper methods are:
25
+ # app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
26
+ # bare_setup - place this in setup method to create the APP_ROOT folder for each test
27
+ # bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
28
+
29
+ def test_generator_without_options
30
+ name = "myapp"
31
+ run_generator('echonest_resource', [name], sources)
32
+ assert_directory_exists "some/directory"
33
+ assert_generated_file "some_file"
34
+ end
35
+
36
+ private
37
+ def sources
38
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
39
+ ]
40
+ end
41
+
42
+ def generator_path
43
+ "generators"
44
+ end
45
+ end
@@ -0,0 +1,35 @@
1
+ require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
2
+
3
+
4
+ class TestEchonestUnitTestGenerator < Test::Unit::TestCase
5
+ include RubiGen::GeneratorTestHelper
6
+
7
+ def setup
8
+ bare_setup
9
+ end
10
+
11
+ def teardown
12
+ bare_teardown
13
+ end
14
+
15
+ def test_generator_without_options
16
+ name = "blah"
17
+ run_generator('echonest_unit_test', [name], sources)
18
+
19
+ assert_directory_exists "spec/echonest"
20
+ assert_generated_file "spec/echonest/#{name}_result_spec.rb" do |spec|
21
+
22
+ end
23
+
24
+ end
25
+
26
+ private
27
+ def sources
28
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
29
+ ]
30
+ end
31
+
32
+ def generator_path
33
+ "generators"
34
+ end
35
+ end
@@ -0,0 +1,29 @@
1
+ begin
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ rescue LoadError
4
+ require 'test/unit'
5
+ end
6
+ require 'fileutils'
7
+
8
+ # Must set before requiring generator libs.
9
+ TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
10
+ PROJECT_NAME = "echonest" unless defined?(PROJECT_NAME)
11
+ app_root = File.join(TMP_ROOT, PROJECT_NAME)
12
+ if defined?(APP_ROOT)
13
+ APP_ROOT.replace(app_root)
14
+ else
15
+ APP_ROOT = app_root
16
+ end
17
+ if defined?(RAILS_ROOT)
18
+ RAILS_ROOT.replace(app_root)
19
+ else
20
+ RAILS_ROOT = app_root
21
+ end
22
+
23
+ begin
24
+ require 'rubigen'
25
+ rescue LoadError
26
+ require 'rubygems'
27
+ require 'rubigen'
28
+ end
29
+ require 'rubigen/helpers/generator_test_helper'
metadata ADDED
@@ -0,0 +1,164 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: echonest
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
+ platform: ruby
12
+ authors:
13
+ - Gareth Andrew
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2009-08-02 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description:
23
+ email: gingerhendrix@hotmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files:
29
+ - LICENSE
30
+ - README.rdoc
31
+ files:
32
+ - LICENSE
33
+ - README.rdoc
34
+ - Rakefile
35
+ - VERSION.yml
36
+ - examples/artist_audio.rb
37
+ - generators/echonest_acceptance_test/USAGE
38
+ - generators/echonest_acceptance_test/echonest_acceptance_test_generator.rb
39
+ - generators/echonest_acceptance_test/templates/feature.erb
40
+ - generators/echonest_model/USAGE
41
+ - generators/echonest_model/echonest_model_generator.rb
42
+ - generators/echonest_model/templates/doc.rb.erb
43
+ - generators/echonest_model/templates/result.rb.erb
44
+ - generators/echonest_model/templates/results.rb.erb
45
+ - generators/echonest_resource/USAGE
46
+ - generators/echonest_resource/echonest_resource_generator.rb
47
+ - generators/echonest_unit_test/USAGE
48
+ - generators/echonest_unit_test/echonest_unit_test_generator.rb
49
+ - generators/echonest_unit_test/templates/unit_test.rb.erb
50
+ - lib/echonest.rb
51
+ - lib/echonest/api_request.rb
52
+ - lib/echonest/artist.rb
53
+ - lib/echonest/paged_result.rb
54
+ - lib/echonest/xml/artist_doc.rb
55
+ - lib/echonest/xml/artist_search_results.rb
56
+ - lib/echonest/xml/audio_doc.rb
57
+ - lib/echonest/xml/audio_result.rb
58
+ - lib/echonest/xml/audio_results.rb
59
+ - lib/echonest/xml/blogs_doc.rb
60
+ - lib/echonest/xml/blogs_result.rb
61
+ - lib/echonest/xml/blogs_results.rb
62
+ - lib/echonest/xml/familiarity_result.rb
63
+ - lib/echonest/xml/hotttnesss_result.rb
64
+ - lib/echonest/xml/news_doc.rb
65
+ - lib/echonest/xml/news_result.rb
66
+ - lib/echonest/xml/news_results.rb
67
+ - lib/echonest/xml/profile_result.rb
68
+ - lib/echonest/xml/reviews_doc.rb
69
+ - lib/echonest/xml/reviews_result.rb
70
+ - lib/echonest/xml/reviews_results.rb
71
+ - lib/echonest/xml/similar_doc.rb
72
+ - lib/echonest/xml/similar_result.rb
73
+ - lib/echonest/xml/similar_results.rb
74
+ - lib/echonest/xml/urls_result.rb
75
+ - lib/echonest/xml/video_doc.rb
76
+ - lib/echonest/xml/video_result.rb
77
+ - lib/echonest/xml/video_results.rb
78
+ - spec/echonest/api_request_spec.rb
79
+ - spec/echonest/paged_result_spec.rb
80
+ - spec/echonest/xml/artist_search_results_spec.rb
81
+ - spec/echonest/xml/audio_result_spec.rb
82
+ - spec/echonest/xml/blogs_result_spec.rb
83
+ - spec/echonest/xml/familiarity_result_spec.rb
84
+ - spec/echonest/xml/hotttness_result_spec.rb
85
+ - spec/echonest/xml/news_result_spec.rb
86
+ - spec/echonest/xml/profile_result_spec.rb
87
+ - spec/echonest/xml/refactor.rb
88
+ - spec/echonest/xml/reviews_result_spec.rb
89
+ - spec/echonest/xml/similar_result_spec.rb
90
+ - spec/echonest/xml/urls_result_spec.rb
91
+ - spec/echonest/xml/video_result_spec.rb
92
+ - spec/fixtures/audio/wavves.xml
93
+ - spec/fixtures/blog/radiohead.xml
94
+ - spec/fixtures/familiarity/radiohead.xml
95
+ - spec/fixtures/hotttnesss/radiohead.xml
96
+ - spec/fixtures/news/radiohead.xml
97
+ - spec/fixtures/profile/radiohead.xml
98
+ - spec/fixtures/reviews/radiohead.xml
99
+ - spec/fixtures/search_artists/wavves.xml
100
+ - spec/fixtures/similar/radiohead.xml
101
+ - spec/fixtures/urls/radiohead.xml
102
+ - spec/fixtures/video/radiohead.xml
103
+ - spec/spec_helper.rb
104
+ - test/test_echonest_acceptance_test_generator.rb
105
+ - test/test_echonest_model_generator.rb
106
+ - test/test_echonest_resource_generator.rb
107
+ - test/test_echonest_unit_test_generator.rb
108
+ - test/test_generator_helper.rb
109
+ has_rdoc: true
110
+ homepage: http://github.com/gingerhendrix/echonest
111
+ licenses: []
112
+
113
+ post_install_message:
114
+ rdoc_options:
115
+ - --charset=UTF-8
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ hash: 3
124
+ segments:
125
+ - 0
126
+ version: "0"
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
136
+ requirements: []
137
+
138
+ rubyforge_project:
139
+ rubygems_version: 1.3.7
140
+ signing_key:
141
+ specification_version: 3
142
+ summary: A ruby ribrary for accessing the echonest api
143
+ test_files:
144
+ - spec/spec_helper.rb
145
+ - spec/echonest/paged_result_spec.rb
146
+ - spec/echonest/xml/artist_search_results_spec.rb
147
+ - spec/echonest/xml/audio_result_spec.rb
148
+ - spec/echonest/xml/blogs_result_spec.rb
149
+ - spec/echonest/xml/familiarity_result_spec.rb
150
+ - spec/echonest/xml/hotttness_result_spec.rb
151
+ - spec/echonest/xml/news_result_spec.rb
152
+ - spec/echonest/xml/profile_result_spec.rb
153
+ - spec/echonest/xml/refactor.rb
154
+ - spec/echonest/xml/reviews_result_spec.rb
155
+ - spec/echonest/xml/similar_result_spec.rb
156
+ - spec/echonest/xml/urls_result_spec.rb
157
+ - spec/echonest/xml/video_result_spec.rb
158
+ - spec/echonest/api_request_spec.rb
159
+ - test/test_echonest_acceptance_test_generator.rb
160
+ - test/test_echonest_model_generator.rb
161
+ - test/test_echonest_resource_generator.rb
162
+ - test/test_generator_helper.rb
163
+ - test/test_echonest_unit_test_generator.rb
164
+ - examples/artist_audio.rb