gingerhendrix-echonest 0.1.1 → 0.2.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 (63) hide show
  1. data/VERSION.yml +2 -2
  2. data/generators/echonest_acceptance_test/USAGE +5 -0
  3. data/generators/echonest_acceptance_test/echonest_acceptance_test_generator.rb +50 -0
  4. data/generators/echonest_acceptance_test/templates/feature.erb +8 -0
  5. data/generators/echonest_model/USAGE +5 -0
  6. data/generators/echonest_model/echonest_model_generator.rb +52 -0
  7. data/generators/echonest_model/templates/doc.rb.erb +12 -0
  8. data/generators/echonest_model/templates/result.rb.erb +12 -0
  9. data/generators/echonest_model/templates/results.rb.erb +15 -0
  10. data/generators/echonest_resource/USAGE +5 -0
  11. data/generators/echonest_resource/echonest_resource_generator.rb +50 -0
  12. data/generators/echonest_unit_test/USAGE +5 -0
  13. data/generators/echonest_unit_test/echonest_unit_test_generator.rb +50 -0
  14. data/generators/echonest_unit_test/templates/unit_test.rb.erb +44 -0
  15. data/lib/echonest/api_request.rb +1 -1
  16. data/lib/echonest/artist.rb +52 -1
  17. data/lib/echonest/{audio.rb → audio_result.rb} +1 -1
  18. data/lib/echonest/blog_doc.rb +13 -0
  19. data/lib/echonest/blog_result.rb +12 -0
  20. data/lib/echonest/blog_results.rb +15 -0
  21. data/lib/echonest/familiarity_result.rb +11 -0
  22. data/lib/echonest/hotttnesss_result.rb +11 -0
  23. data/lib/echonest/news_doc.rb +13 -0
  24. data/lib/echonest/news_result.rb +12 -0
  25. data/lib/echonest/news_results.rb +15 -0
  26. data/lib/echonest/profile_result.rb +11 -0
  27. data/lib/echonest/reviews_doc.rb +15 -0
  28. data/lib/echonest/reviews_result.rb +12 -0
  29. data/lib/echonest/reviews_results.rb +15 -0
  30. data/lib/echonest/similar_doc.rb +13 -0
  31. data/lib/echonest/similar_result.rb +12 -0
  32. data/lib/echonest/similar_results.rb +11 -0
  33. data/lib/echonest/urls_result.rb +11 -0
  34. data/lib/echonest/video_doc.rb +14 -0
  35. data/lib/echonest/video_result.rb +12 -0
  36. data/lib/echonest/video_results.rb +15 -0
  37. data/lib/echonest.rb +25 -1
  38. data/spec/echonest/api_request_spec.rb +7 -0
  39. data/spec/echonest/{audio_spec.rb → audio_result_spec.rb} +4 -4
  40. data/spec/echonest/blog_result_spec.rb +48 -0
  41. data/spec/echonest/familiarity_result_spec.rb +33 -0
  42. data/spec/echonest/hotttness_result_spec.rb +31 -0
  43. data/spec/echonest/news_result_spec.rb +49 -0
  44. data/spec/echonest/profile_result_spec.rb +26 -0
  45. data/spec/echonest/reviews_result_spec.rb +49 -0
  46. data/spec/echonest/similar_result_spec.rb +35 -0
  47. data/spec/echonest/urls_result_spec.rb +38 -0
  48. data/spec/echonest/video_result_spec.rb +48 -0
  49. data/spec/fixtures/blog/radiohead.xml +32 -0
  50. data/spec/fixtures/familiarity/radiohead.xml +17 -0
  51. data/spec/fixtures/hotttnesss/radiohead.xml +17 -0
  52. data/spec/fixtures/news/radiohead.xml +32 -0
  53. data/spec/fixtures/profile/radiohead.xml +16 -0
  54. data/spec/fixtures/reviews/radiohead.xml +40 -0
  55. data/spec/fixtures/similar/radiohead.xml +31 -0
  56. data/spec/fixtures/urls/radiohead.xml +21 -0
  57. data/spec/fixtures/video/radiohead.xml +32 -0
  58. data/test/test_echonest_acceptance_test_generator.rb +52 -0
  59. data/test/test_echonest_model_generator.rb +47 -0
  60. data/test/test_echonest_resource_generator.rb +45 -0
  61. data/test/test_echonest_unit_test_generator.rb +35 -0
  62. data/test/test_generator_helper.rb +29 -0
  63. metadata +76 -7
@@ -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,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 CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gingerhendrix-echonest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gareth Andrew
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-22 00:00:00 -07:00
12
+ date: 2009-07-14 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -27,20 +27,75 @@ files:
27
27
  - README.rdoc
28
28
  - Rakefile
29
29
  - VERSION.yml
30
+ - generators/echonest_acceptance_test/USAGE
31
+ - generators/echonest_acceptance_test/echonest_acceptance_test_generator.rb
32
+ - generators/echonest_acceptance_test/templates/feature.erb
33
+ - generators/echonest_model/USAGE
34
+ - generators/echonest_model/echonest_model_generator.rb
35
+ - generators/echonest_model/templates/doc.rb.erb
36
+ - generators/echonest_model/templates/result.rb.erb
37
+ - generators/echonest_model/templates/results.rb.erb
38
+ - generators/echonest_resource/USAGE
39
+ - generators/echonest_resource/echonest_resource_generator.rb
40
+ - generators/echonest_unit_test/USAGE
41
+ - generators/echonest_unit_test/echonest_unit_test_generator.rb
42
+ - generators/echonest_unit_test/templates/unit_test.rb.erb
30
43
  - lib/echonest.rb
31
44
  - lib/echonest/api_request.rb
32
45
  - lib/echonest/artist.rb
33
46
  - lib/echonest/artist_search.rb
34
- - lib/echonest/audio.rb
35
47
  - lib/echonest/audio_doc.rb
48
+ - lib/echonest/audio_result.rb
36
49
  - lib/echonest/audio_results.rb
50
+ - lib/echonest/blog_doc.rb
51
+ - lib/echonest/blog_result.rb
52
+ - lib/echonest/blog_results.rb
53
+ - lib/echonest/familiarity_result.rb
54
+ - lib/echonest/hotttnesss_result.rb
55
+ - lib/echonest/news_doc.rb
56
+ - lib/echonest/news_result.rb
57
+ - lib/echonest/news_results.rb
58
+ - lib/echonest/profile_result.rb
59
+ - lib/echonest/reviews_doc.rb
60
+ - lib/echonest/reviews_result.rb
61
+ - lib/echonest/reviews_results.rb
62
+ - lib/echonest/similar_doc.rb
63
+ - lib/echonest/similar_result.rb
64
+ - lib/echonest/similar_results.rb
65
+ - lib/echonest/urls_result.rb
66
+ - lib/echonest/video_doc.rb
67
+ - lib/echonest/video_result.rb
68
+ - lib/echonest/video_results.rb
37
69
  - spec/echonest/api_request_spec.rb
38
- - spec/echonest/audio_spec.rb
70
+ - spec/echonest/audio_result_spec.rb
71
+ - spec/echonest/blog_result_spec.rb
72
+ - spec/echonest/familiarity_result_spec.rb
73
+ - spec/echonest/hotttness_result_spec.rb
74
+ - spec/echonest/news_result_spec.rb
75
+ - spec/echonest/profile_result_spec.rb
76
+ - spec/echonest/reviews_result_spec.rb
39
77
  - spec/echonest/search_spec.rb
78
+ - spec/echonest/similar_result_spec.rb
79
+ - spec/echonest/urls_result_spec.rb
80
+ - spec/echonest/video_result_spec.rb
40
81
  - spec/fixtures/audio/wavves.xml
82
+ - spec/fixtures/blog/radiohead.xml
83
+ - spec/fixtures/familiarity/radiohead.xml
84
+ - spec/fixtures/hotttnesss/radiohead.xml
85
+ - spec/fixtures/news/radiohead.xml
86
+ - spec/fixtures/profile/radiohead.xml
87
+ - spec/fixtures/reviews/radiohead.xml
41
88
  - spec/fixtures/search_artists/wavves.xml
89
+ - spec/fixtures/similar/radiohead.xml
90
+ - spec/fixtures/urls/radiohead.xml
91
+ - spec/fixtures/video/radiohead.xml
42
92
  - spec/spec_helper.rb
43
- has_rdoc: true
93
+ - test/test_echonest_acceptance_test_generator.rb
94
+ - test/test_echonest_model_generator.rb
95
+ - test/test_echonest_resource_generator.rb
96
+ - test/test_echonest_unit_test_generator.rb
97
+ - test/test_generator_helper.rb
98
+ has_rdoc: false
44
99
  homepage: http://github.com/gingerhendrix/echonest
45
100
  post_install_message:
46
101
  rdoc_options:
@@ -64,10 +119,24 @@ requirements: []
64
119
  rubyforge_project:
65
120
  rubygems_version: 1.2.0
66
121
  signing_key:
67
- specification_version: 2
122
+ specification_version: 3
68
123
  summary: A ruby ribrary for accessing the echonest api
69
124
  test_files:
70
125
  - spec/spec_helper.rb
71
- - spec/echonest/audio_spec.rb
126
+ - spec/echonest/audio_result_spec.rb
72
127
  - spec/echonest/search_spec.rb
73
128
  - spec/echonest/api_request_spec.rb
129
+ - spec/echonest/blog_result_spec.rb
130
+ - spec/echonest/news_result_spec.rb
131
+ - spec/echonest/familiarity_result_spec.rb
132
+ - spec/echonest/hotttness_result_spec.rb
133
+ - spec/echonest/profile_result_spec.rb
134
+ - spec/echonest/urls_result_spec.rb
135
+ - spec/echonest/reviews_result_spec.rb
136
+ - spec/echonest/similar_result_spec.rb
137
+ - spec/echonest/video_result_spec.rb
138
+ - test/test_echonest_acceptance_test_generator.rb
139
+ - test/test_echonest_model_generator.rb
140
+ - test/test_echonest_resource_generator.rb
141
+ - test/test_generator_helper.rb
142
+ - test/test_echonest_unit_test_generator.rb