mr_eko 0.5.1 → 0.5.2

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.
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