echonest 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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