mr_eko 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/bin/mreko CHANGED
@@ -5,9 +5,6 @@ $: << File.join(File.dirname(__FILE__), '../lib')
5
5
  require 'mr_eko'
6
6
  require 'optparse'
7
7
 
8
- require 'sequel/extensions/migration'
9
- Sequel::Migrator.apply(MrEko.connection, File.join(File.dirname(__FILE__), "..", "db", "migrate"))
10
-
11
8
  def parse_options
12
9
 
13
10
  options = { :format => :pls }
@@ -1,16 +1,16 @@
1
- class AddPlaylists < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  create_table(:playlists) do
4
4
  primary_key :id
5
5
  String :name
6
6
  DateTime :created_on
7
7
  DateTime :updated_on
8
-
8
+
9
9
  index :name, :unique => true
10
10
  end
11
11
  end
12
-
13
- def down
12
+
13
+ down do
14
14
  drop_table :playlists
15
15
  end
16
- end
16
+ end
@@ -1,5 +1,5 @@
1
- class AddSongs < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  create_table(:songs) do
4
4
  primary_key :id
5
5
  String :md5, :length => 32
@@ -17,20 +17,20 @@ class AddSongs < Sequel::Migration
17
17
  Integer :mode, :length => 1
18
18
  DateTime :created_on
19
19
  DateTime :updated_on
20
-
20
+
21
21
  index :md5, :unique => true
22
22
  end
23
-
23
+
24
24
  create_table :playlists_songs do
25
25
  Integer :playlist_id
26
26
  Integer :song_id
27
-
27
+
28
28
  index [:playlist_id, :song_id], :unique => true
29
29
  end
30
30
  end
31
-
32
- def down
31
+
32
+ down do
33
33
  drop_table :songs
34
34
  drop_table :playlists_songs
35
35
  end
36
- end
36
+ end
@@ -1,15 +1,15 @@
1
- class AddUsefulSongFields < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  alter_table(:songs) do
4
4
  add_column :echonest_id, String
5
- add_column :danceability, Float
6
- add_column :energy, Float
5
+ add_column :danceability, Float
6
+ add_column :energy, Float
7
7
  add_column :bitrate, Integer, :size => 4
8
8
  add_index :echonest_id
9
9
  end
10
10
  end
11
-
12
- def down
11
+
12
+ down do
13
13
  alter_table(:songs) do
14
14
  drop_column :echonest_id
15
15
  drop_column :danceability
@@ -17,4 +17,4 @@ class AddUsefulSongFields < Sequel::Migration
17
17
  drop_column :bitrate
18
18
  end
19
19
  end
20
- end
20
+ end
@@ -1,13 +1,13 @@
1
- class AddCodeToSongs < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  alter_table(:songs) do
4
4
  add_column :code, String, :text => true
5
5
  end
6
6
  end
7
-
8
- def down
7
+
8
+ down do
9
9
  alter_table(:songs) do
10
10
  drop_column :code
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -1,12 +1,12 @@
1
- class AddCodeToSongs < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  alter_table(:songs) do
4
4
  drop_column :fade_in
5
5
  drop_column :fade_out
6
6
  end
7
7
  end
8
8
 
9
- def down
9
+ down do
10
10
  alter_table(:songs) do
11
11
  add_column :fade_in, Float
12
12
  add_column :fade_out, Float
@@ -1,5 +1,5 @@
1
- class AddSongPosition < Sequel::Migration
2
- def up
1
+ Sequel.migration do
2
+ up do
3
3
  alter_table(:playlists_songs) do
4
4
  add_column :position, Integer
5
5
  end
@@ -7,7 +7,7 @@ class AddSongPosition < Sequel::Migration
7
7
  rename_table :playlists_songs, :playlist_entries
8
8
  end
9
9
 
10
- def down
10
+ down do
11
11
  alter_table(:playlists_songs) do
12
12
  drop_column :position
13
13
  end
data/lib/mr_eko.rb CHANGED
@@ -3,6 +3,7 @@ require "bundler"
3
3
 
4
4
  require "sqlite3"
5
5
  require "sequel"
6
+ require 'sequel/extensions/migration'
6
7
  require "logger"
7
8
  require "hashie"
8
9
  require "digest/md5"
@@ -19,7 +20,7 @@ EKO_ENV = ENV['EKO_ENV'] || 'development'
19
20
  Sequel.default_timezone = :utc
20
21
 
21
22
  module MrEko
22
- VERSION = '0.5.1'
23
+ VERSION = '0.5.2'
23
24
  USER_DIR = File.join(ENV['HOME'], ".mreko")
24
25
  FINGERPRINTS_DIR = File.join(USER_DIR, 'fingerprints')
25
26
  LOG_DIR = File.join(USER_DIR, 'logs')
@@ -70,6 +71,9 @@ module MrEko
70
71
  return @connection if @connection
71
72
  @connection = Sequel.sqlite(db_name)
72
73
  @connection.loggers << @logger
74
+
75
+ File.unlink(MrEko.db_name) if File.exist?(MrEko.db_name) && env == 'test'
76
+ Sequel::Migrator.apply(MrEko.connection, File.join(File.dirname(__FILE__), "..", "db", "migrate"))
73
77
  end
74
78
 
75
79
  def setup_echonest!
data/mr_eko.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'mr_eko'
16
- s.version = '0.5.1'
17
- s.date = '2012-06-03'
16
+ s.version = '0.5.2'
17
+ s.date = '2012-09-13'
18
18
  s.rubyforge_project = 'mr_eko'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -76,9 +76,9 @@ Gem::Specification.new do |s|
76
76
  db/migrate/001_add_playlists.rb
77
77
  db/migrate/002_add_songs.rb
78
78
  db/migrate/003_add_useful_song_fields.rb
79
- db/migrate/04_add_code_to_songs.rb
80
- db/migrate/05_remove_fades_from_song.rb
81
- db/migrate/06_add_song_position.rb
79
+ db/migrate/004_add_code_to_songs.rb
80
+ db/migrate/005_remove_fades_from_song.rb
81
+ db/migrate/006_add_song_position.rb
82
82
  ext/enmfp/LICENSE
83
83
  ext/enmfp/README
84
84
  ext/enmfp/RELEASE_NOTES
@@ -102,6 +102,8 @@ Gem::Specification.new do |s|
102
102
  lib/mr_eko/song.rb
103
103
  lib/mr_eko/timed_playlist.rb
104
104
  mr_eko.gemspec
105
+ test/data/tagless.mp3
106
+ test/data/they_want_a_test.mp3
105
107
  test/mr_eko_test.rb
106
108
  test/playlist_test.rb
107
109
  test/song_test.rb
Binary file
Binary file
data/test/test.rb CHANGED
@@ -1,15 +1,11 @@
1
1
  ENV['EKO_ENV'] = 'test'
2
2
  require "bundler/setup"
3
- Bundler.setup
4
3
 
5
4
  require 'test/unit'
6
5
  require 'shoulda'
7
6
  require 'mocha'
8
7
  require "mr_eko"
9
8
  require "ruby-debug"
10
-
11
- require 'sequel/extensions/migration'
12
- Sequel::Migrator.apply(MrEko.connection, File.join(File.dirname(__FILE__), "..", "db", "migrate"))
13
9
  # Clear the tables out
14
10
  (MrEko.connection.tables - [:schema_info]).each do |table|
15
11
  MrEko.connection.run "DELETE FROM #{table}"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mr_eko
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 1
10
- version: 0.5.1
9
+ - 2
10
+ version: 0.5.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ed Hickey
@@ -15,12 +15,10 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-03 00:00:00 Z
18
+ date: 2012-09-13 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: sequel
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
21
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
22
  none: false
25
23
  requirements:
26
24
  - - "="
@@ -30,12 +28,12 @@ dependencies:
30
28
  - 3
31
29
  - 15
32
30
  version: "3.15"
31
+ prerelease: false
33
32
  type: :runtime
34
- version_requirements: *id001
33
+ name: sequel
34
+ requirement: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- name: sqlite3-ruby
37
- prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
37
  none: false
40
38
  requirements:
41
39
  - - ~>
@@ -45,12 +43,12 @@ dependencies:
45
43
  - 1
46
44
  - 3
47
45
  version: "1.3"
46
+ prerelease: false
48
47
  type: :runtime
49
- version_requirements: *id002
48
+ name: sqlite3-ruby
49
+ requirement: *id002
50
50
  - !ruby/object:Gem::Dependency
51
- name: hashie
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
51
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
52
  none: false
55
53
  requirements:
56
54
  - - ">="
@@ -59,12 +57,12 @@ dependencies:
59
57
  segments:
60
58
  - 0
61
59
  version: "0"
60
+ prerelease: false
62
61
  type: :runtime
63
- version_requirements: *id003
62
+ name: hashie
63
+ requirement: *id003
64
64
  - !ruby/object:Gem::Dependency
65
- name: httpclient
66
- prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
65
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
66
  none: false
69
67
  requirements:
70
68
  - - ~>
@@ -74,12 +72,12 @@ dependencies:
74
72
  - 2
75
73
  - 1
76
74
  version: "2.1"
75
+ prerelease: false
77
76
  type: :runtime
78
- version_requirements: *id004
77
+ name: httpclient
78
+ requirement: *id004
79
79
  - !ruby/object:Gem::Dependency
80
- name: bassnode-ruby-echonest
81
- prerelease: false
82
- requirement: &id005 !ruby/object:Gem::Requirement
80
+ version_requirements: &id005 !ruby/object:Gem::Requirement
83
81
  none: false
84
82
  requirements:
85
83
  - - ">="
@@ -88,12 +86,12 @@ dependencies:
88
86
  segments:
89
87
  - 0
90
88
  version: "0"
89
+ prerelease: false
91
90
  type: :runtime
92
- version_requirements: *id005
91
+ name: bassnode-ruby-echonest
92
+ requirement: *id005
93
93
  - !ruby/object:Gem::Dependency
94
- name: json
95
- prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
94
+ version_requirements: &id006 !ruby/object:Gem::Requirement
97
95
  none: false
98
96
  requirements:
99
97
  - - "="
@@ -104,12 +102,12 @@ dependencies:
104
102
  - 4
105
103
  - 6
106
104
  version: 1.4.6
105
+ prerelease: false
107
106
  type: :runtime
108
- version_requirements: *id006
107
+ name: json
108
+ requirement: *id006
109
109
  - !ruby/object:Gem::Dependency
110
- name: id3lib-ruby
111
- prerelease: false
112
- requirement: &id007 !ruby/object:Gem::Requirement
110
+ version_requirements: &id007 !ruby/object:Gem::Requirement
113
111
  none: false
114
112
  requirements:
115
113
  - - ">="
@@ -118,12 +116,12 @@ dependencies:
118
116
  segments:
119
117
  - 0
120
118
  version: "0"
119
+ prerelease: false
121
120
  type: :runtime
122
- version_requirements: *id007
121
+ name: id3lib-ruby
122
+ requirement: *id007
123
123
  - !ruby/object:Gem::Dependency
124
- name: mocha
125
- prerelease: false
126
- requirement: &id008 !ruby/object:Gem::Requirement
124
+ version_requirements: &id008 !ruby/object:Gem::Requirement
127
125
  none: false
128
126
  requirements:
129
127
  - - "="
@@ -134,12 +132,12 @@ dependencies:
134
132
  - 9
135
133
  - 8
136
134
  version: 0.9.8
135
+ prerelease: false
137
136
  type: :development
138
- version_requirements: *id008
137
+ name: mocha
138
+ requirement: *id008
139
139
  - !ruby/object:Gem::Dependency
140
- name: shoulda
141
- prerelease: false
142
- requirement: &id009 !ruby/object:Gem::Requirement
140
+ version_requirements: &id009 !ruby/object:Gem::Requirement
143
141
  none: false
144
142
  requirements:
145
143
  - - ~>
@@ -149,12 +147,12 @@ dependencies:
149
147
  - 2
150
148
  - 11
151
149
  version: "2.11"
150
+ prerelease: false
152
151
  type: :development
153
- version_requirements: *id009
152
+ name: shoulda
153
+ requirement: *id009
154
154
  - !ruby/object:Gem::Dependency
155
- name: test-unit
156
- prerelease: false
157
- requirement: &id010 !ruby/object:Gem::Requirement
155
+ version_requirements: &id010 !ruby/object:Gem::Requirement
158
156
  none: false
159
157
  requirements:
160
158
  - - ~>
@@ -164,12 +162,12 @@ dependencies:
164
162
  - 2
165
163
  - 1
166
164
  version: "2.1"
165
+ prerelease: false
167
166
  type: :development
168
- version_requirements: *id010
167
+ name: test-unit
168
+ requirement: *id010
169
169
  - !ruby/object:Gem::Dependency
170
- name: ruby-debug
171
- prerelease: false
172
- requirement: &id011 !ruby/object:Gem::Requirement
170
+ version_requirements: &id011 !ruby/object:Gem::Requirement
173
171
  none: false
174
172
  requirements:
175
173
  - - ">="
@@ -178,12 +176,12 @@ dependencies:
178
176
  segments:
179
177
  - 0
180
178
  version: "0"
179
+ prerelease: false
181
180
  type: :development
182
- version_requirements: *id011
181
+ name: ruby-debug
182
+ requirement: *id011
183
183
  - !ruby/object:Gem::Dependency
184
- name: autotest
185
- prerelease: false
186
- requirement: &id012 !ruby/object:Gem::Requirement
184
+ version_requirements: &id012 !ruby/object:Gem::Requirement
187
185
  none: false
188
186
  requirements:
189
187
  - - ">="
@@ -192,12 +190,12 @@ dependencies:
192
190
  segments:
193
191
  - 0
194
192
  version: "0"
193
+ prerelease: false
195
194
  type: :development
196
- version_requirements: *id012
195
+ name: autotest
196
+ requirement: *id012
197
197
  - !ruby/object:Gem::Dependency
198
- name: pry
199
- prerelease: false
200
- requirement: &id013 !ruby/object:Gem::Requirement
198
+ version_requirements: &id013 !ruby/object:Gem::Requirement
201
199
  none: false
202
200
  requirements:
203
201
  - - ">="
@@ -206,12 +204,12 @@ dependencies:
206
204
  segments:
207
205
  - 0
208
206
  version: "0"
207
+ prerelease: false
209
208
  type: :development
210
- version_requirements: *id013
209
+ name: pry
210
+ requirement: *id013
211
211
  - !ruby/object:Gem::Dependency
212
- name: yard
213
- prerelease: false
214
- requirement: &id014 !ruby/object:Gem::Requirement
212
+ version_requirements: &id014 !ruby/object:Gem::Requirement
215
213
  none: false
216
214
  requirements:
217
215
  - - ">="
@@ -220,8 +218,10 @@ dependencies:
220
218
  segments:
221
219
  - 0
222
220
  version: "0"
221
+ prerelease: false
223
222
  type: :development
224
- version_requirements: *id014
223
+ name: yard
224
+ requirement: *id014
225
225
  description: Catalogs music file data and exposes a playlist interface
226
226
  email: bassnode@gmail.com
227
227
  executables:
@@ -239,9 +239,9 @@ files:
239
239
  - db/migrate/001_add_playlists.rb
240
240
  - db/migrate/002_add_songs.rb
241
241
  - db/migrate/003_add_useful_song_fields.rb
242
- - db/migrate/04_add_code_to_songs.rb
243
- - db/migrate/05_remove_fades_from_song.rb
244
- - db/migrate/06_add_song_position.rb
242
+ - db/migrate/004_add_code_to_songs.rb
243
+ - db/migrate/005_remove_fades_from_song.rb
244
+ - db/migrate/006_add_song_position.rb
245
245
  - ext/enmfp/LICENSE
246
246
  - ext/enmfp/README
247
247
  - ext/enmfp/RELEASE_NOTES
@@ -265,6 +265,8 @@ files:
265
265
  - lib/mr_eko/song.rb
266
266
  - lib/mr_eko/timed_playlist.rb
267
267
  - mr_eko.gemspec
268
+ - test/data/tagless.mp3
269
+ - test/data/they_want_a_test.mp3
268
270
  - test/mr_eko_test.rb
269
271
  - test/playlist_test.rb
270
272
  - test/song_test.rb
@@ -299,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
301
  requirements: []
300
302
 
301
303
  rubyforge_project: mr_eko
302
- rubygems_version: 1.8.11
304
+ rubygems_version: 1.8.24
303
305
  signing_key:
304
306
  specification_version: 2
305
307
  summary: Catalogs music file data and exposes a playlist interface