kanye 0.1.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.
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Track do
4
+ before do
5
+ @track = Track.new(:id => 'id', :key => 'key', :artist => 'Alan Braxe', :title => 'Rubicon', :cookie => 'cookie')
6
+ end
7
+
8
+ describe "url" do
9
+ it "should contain contain :id and :key" do
10
+ @track.url.should == "http://hypem.com/serve/play/id/key.mp3"
11
+ end
12
+ end
13
+
14
+ describe "to_s" do
15
+ it "should display the key, artist, and title" do
16
+ @track.to_s.should == "(key, Rubicon, Alan Braxe)"
17
+ end
18
+ end
19
+
20
+ describe "download!" do
21
+ before do
22
+ HTTParty.stub!(:get)
23
+ File.stub!(:open)
24
+ Mp3Info.stub!(:open)
25
+ end
26
+
27
+ it "should request mp3 from hypem with cookie" do
28
+ HTTParty.should_receive(:get).with(@track.url, {:headers => {"cookie" => @track.cookie}})
29
+ @track.download!
30
+ end
31
+
32
+ # This spec could use some love
33
+ it "should set ID3 tags" do
34
+ @track.should_receive(:set_id3_tags!)
35
+ @track.download!
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Kanye do
4
+ describe '#parse_response' do
5
+ let(:html) { File.open('spec/data/sample.html', 'r').read }
6
+
7
+ before do
8
+ resp = mock(:response,
9
+ :parsed_response => html,
10
+ :headers => {'set-cookie' => 'yesplease'})
11
+
12
+ HTTParty.stub!(:get).and_return(resp)
13
+ end
14
+
15
+ let(:kanye) { Kanye.new('test') }
16
+
17
+ describe 'format strings' do
18
+ results = [
19
+ ["Rusko","Jahova","ta42","9ecc8d868239653e7c99a6891a878e01","yesplease"],
20
+ ["Rusko","Everyday","19n3n","c63b38f6714b7273a2c3f28c3e86ea54","yesplease"],
21
+ ["Washed Out feat. Caroline Polachek","You and I","12xxd","c9d3b9a12d0979becf154821c191b151","yesplease"],
22
+ ["Le Castle Vania","DJ Falcon + Thomas Bangalter Together (Le Castle Vania + Computer Club's Summer Bootleg Mix)","1av33","87c503dcc8bc46761a56b7bedfbb1697","yesplease"],
23
+ ["Earl Da Grey","Kick It","1ar7m","dfd3c3f06d2fc5b5a4e0bf22f91982bc","yesplease"],
24
+ ["Earl Da Grey","Heavenly Motion","1ar7k","0b9ccedbaacdb63c4c7d7344a149cde8","yesplease"],
25
+ ["Earl Da Grey","Millionaire Radio","1ar7g","8607e44740e600769d4e3fa2e8ded210","yesplease"],
26
+ ["Earl Da Grey","Taboo","1ar7h","734faa71e9072f3e7fa6ead9909e93cf","yesplease"],
27
+ ["James Varnish","Compare (Lifelike Remix)","1armr","a4fe6cc8ce6b210def2191cc9b705ed3","yesplease"],
28
+ ["Jamaica","I Think I Like U 2 (Breakbot Remix)","1161m","baf3e68ccf6ae0ccc7be7f0ef1554969","yesplease"],
29
+ ["Radiohead","Supercollider","1aqn0","db5724fa6e4c78dcfa49abed5320142a","yesplease"],
30
+ ["Dillon Francis","Beautician","1ag12","d6e55add48919d72c08bb11fc81d998d","yesplease"],
31
+ ["The Human League","Never Let Me Go (Aeroplane Remix Edit)","19men","d53d93bd145589d4a9bd649cdd8179da","yesplease"],
32
+ ["His Majesty Andre","Clubs","1as5w","bb17f53d899643c92020f7f1797b36a5","yesplease"],
33
+ ["Cassian","Getting High (Original Mix)","1as5v","2182d0f18240433b372d8febd08b8dd3","yesplease"],
34
+ ["Les Rythmes Digitales","About Funk","1as5z","3b8198e97bda14db73254b6febbdf42d","yesplease"],
35
+ ["BeatauCue","Behold","1873c","1113b0b95c8ea988661b8bbbf5260d45","yesplease"],
36
+ ["Toddla T","Take It Back (Dillon Francis Remix)","1ancc","ef8efa46115c08cef60b7241c7d82c7c","yesplease"],
37
+ ["Danger Granger","Daniel is a Wild Cat (Porter Robinson vs Bat For Lashes)","1asad","65257400b1a1266adb3173f029bbb1a8","yesplease"],
38
+ ["DEFEP","Rolling it Right (Afrojack vs Adele)","1asae","63cbcb3a740e1ad0cb7163b23e33a9d6","yesplease"]
39
+ ]
40
+ results.each_with_index do |track, index|
41
+ describe "track No. #{index+1}" do
42
+ subject { kanye.tracks[index] }
43
+ its(:artist) { should == results[index][0] }
44
+ its(:title) { should == results[index][1] }
45
+ its(:id) { should == results[index][2] }
46
+ its(:key) { should == results[index][3] }
47
+ its(:cookie) { should == "yesplease" }
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+
11
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
12
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
13
+ require 'rspec'
14
+ require 'kanye'
15
+
16
+ # Requires supporting files with custom matchers and macros, etc,
17
+ # in ./support/ and its subdirectories.
18
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
19
+
20
+ RSpec.configure do |config|
21
+
22
+ end
metadata ADDED
@@ -0,0 +1,276 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kanye
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Sam Vincent
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-24 00:00:00 -07:00
19
+ default_executable: kanye
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: httparty
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 0
32
+ - 7
33
+ - 4
34
+ version: 0.7.4
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: sqlite3
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 3
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ type: :runtime
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ name: character-encodings
53
+ prerelease: false
54
+ requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ type: :runtime
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: nokogiri
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: ruby-mp3info
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ type: :runtime
92
+ version_requirements: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ name: rspec
95
+ prerelease: false
96
+ requirement: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 7
102
+ segments:
103
+ - 2
104
+ version: "2"
105
+ type: :development
106
+ version_requirements: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: bundler
109
+ prerelease: false
110
+ requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ~>
114
+ - !ruby/object:Gem::Version
115
+ hash: 23
116
+ segments:
117
+ - 1
118
+ - 0
119
+ - 0
120
+ version: 1.0.0
121
+ type: :development
122
+ version_requirements: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ name: jeweler
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ hash: 7
132
+ segments:
133
+ - 1
134
+ - 5
135
+ - 2
136
+ version: 1.5.2
137
+ type: :development
138
+ version_requirements: *id008
139
+ - !ruby/object:Gem::Dependency
140
+ name: httparty
141
+ prerelease: false
142
+ requirement: &id009 !ruby/object:Gem::Requirement
143
+ none: false
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 11
148
+ segments:
149
+ - 0
150
+ - 7
151
+ - 4
152
+ version: 0.7.4
153
+ type: :runtime
154
+ version_requirements: *id009
155
+ - !ruby/object:Gem::Dependency
156
+ name: sqlite3
157
+ prerelease: false
158
+ requirement: &id010 !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ hash: 3
164
+ segments:
165
+ - 0
166
+ version: "0"
167
+ type: :runtime
168
+ version_requirements: *id010
169
+ - !ruby/object:Gem::Dependency
170
+ name: character-encodings
171
+ prerelease: false
172
+ requirement: &id011 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ hash: 3
178
+ segments:
179
+ - 0
180
+ version: "0"
181
+ type: :runtime
182
+ version_requirements: *id011
183
+ - !ruby/object:Gem::Dependency
184
+ name: nokogiri
185
+ prerelease: false
186
+ requirement: &id012 !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ">"
190
+ - !ruby/object:Gem::Version
191
+ hash: 7
192
+ segments:
193
+ - 1
194
+ - 4
195
+ - 0
196
+ version: 1.4.0
197
+ type: :runtime
198
+ version_requirements: *id012
199
+ - !ruby/object:Gem::Dependency
200
+ name: ruby-mp3info
201
+ prerelease: false
202
+ requirement: &id013 !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ">"
206
+ - !ruby/object:Gem::Version
207
+ hash: 7
208
+ segments:
209
+ - 0
210
+ - 6
211
+ - 0
212
+ version: 0.6.0
213
+ type: :runtime
214
+ version_requirements: *id013
215
+ description: Ruby HypeM utility
216
+ email: sam.vincent@mac.com
217
+ executables:
218
+ - kanye
219
+ extensions: []
220
+
221
+ extra_rdoc_files:
222
+ - LICENSE.txt
223
+ - README.rdoc
224
+ files:
225
+ - .document
226
+ - Gemfile
227
+ - LICENSE.txt
228
+ - README.rdoc
229
+ - Rakefile
230
+ - VERSION
231
+ - bin/kanye
232
+ - lib/kanye.rb
233
+ - lib/kanye/history.rb
234
+ - lib/kanye/track.rb
235
+ - spec/data/sample.html
236
+ - spec/kanye/track_spec.rb
237
+ - spec/kanye_spec.rb
238
+ - spec/spec_helper.rb
239
+ has_rdoc: true
240
+ homepage: http://github.com/samvincent/kanye
241
+ licenses:
242
+ - MIT
243
+ post_install_message:
244
+ rdoc_options: []
245
+
246
+ require_paths:
247
+ - lib
248
+ required_ruby_version: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ hash: 3
254
+ segments:
255
+ - 0
256
+ version: "0"
257
+ required_rubygems_version: !ruby/object:Gem::Requirement
258
+ none: false
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ hash: 3
263
+ segments:
264
+ - 0
265
+ version: "0"
266
+ requirements: []
267
+
268
+ rubyforge_project:
269
+ rubygems_version: 1.6.2
270
+ signing_key:
271
+ specification_version: 3
272
+ summary: Ruby HypeM utility
273
+ test_files:
274
+ - spec/kanye/track_spec.rb
275
+ - spec/kanye_spec.rb
276
+ - spec/spec_helper.rb