mr_eko 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 Ed Hickey
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/bin/mreko CHANGED
@@ -55,7 +55,7 @@ def parse_options
55
55
  options[:mode] = mode
56
56
  end
57
57
 
58
- opts.on("-x", "--timed SEC", "Limit this playlist to a certain length (in seconds).") do |length|
58
+ opts.on("-x", "--timed SEC", "Limit this playlist to a certain length (in seconds)*") do |length|
59
59
  options[:timed] = length
60
60
  end
61
61
 
@@ -80,12 +80,15 @@ def parse_options
80
80
  exit
81
81
  end
82
82
 
83
- opts.separator "\nNote that if --timed is passed, you may only specify one facet, e.g --tempo. This value will be used as the starting point.
84
- You must also pass --final to set the final value. So for a 10 min. playlist which starts at 120 BPM and ends at 200 BPM: mr_eko playlist --timed 600 --tempo 120 --final 200\n\n"
85
-
86
83
  # No argument, shows at tail. This will print an options summary.
87
84
  opts.on_tail("-h", "--help", "Show this message") do
88
85
  puts opts
86
+ puts <<-EOM
87
+
88
+ * Note that if --timed is passed, you may only specify one facet, e.g --tempo. This value will be used as the starting point.
89
+ You must also pass --final to set the final value. So for a 10 min. playlist which starts at 120 BPM and ends at 200 BPM:
90
+ mr_eko playlist --timed 600 --tempo 120 --final 200\n
91
+ EOM
89
92
  exit
90
93
  end
91
94
 
data/lib/mr_eko/song.rb CHANGED
@@ -143,7 +143,7 @@ class MrEko::Song < Sequel::Model
143
143
  def self.enmfp_data(filename, md5)
144
144
  unless File.exists?(fp_location(md5))
145
145
  log 'Waiting for ENMFP binary...'
146
- `#{File.join(MrEko::HOME_DIR, 'ext', 'enmfp', MrEko.enmfp_binary)} "#{File.expand_path(filename)}" > #{fp_location(md5)}`
146
+ `#{MrEko.enmfp_binary} "#{File.expand_path(filename)}" > #{fp_location(md5)}`
147
147
  end
148
148
 
149
149
  begin
data/lib/mr_eko.rb CHANGED
@@ -20,7 +20,7 @@ EKO_ENV = ENV['EKO_ENV'] || 'development'
20
20
  Sequel.default_timezone = :utc
21
21
 
22
22
  module MrEko
23
- VERSION = '0.5.2'
23
+ VERSION = '0.5.3'
24
24
  USER_DIR = File.join(ENV['HOME'], ".mreko")
25
25
  FINGERPRINTS_DIR = File.join(USER_DIR, 'fingerprints')
26
26
  LOG_DIR = File.join(USER_DIR, 'logs')
@@ -108,7 +108,7 @@ module MrEko
108
108
 
109
109
  # Use the platform-specific binary.
110
110
  def enmfp_binary
111
- case ruby_platform
111
+ bin = case ruby_platform
112
112
  when /darwin/
113
113
  'codegen.Darwin'
114
114
  when /686/
@@ -118,6 +118,8 @@ module MrEko
118
118
  else
119
119
  'codegen.windows.exe'
120
120
  end
121
+
122
+ File.join(HOME_DIR, 'ext', 'enmfp', bin)
121
123
  end
122
124
 
123
125
  def ruby_platform
@@ -130,9 +132,9 @@ end
130
132
 
131
133
  MrEko.setup!
132
134
 
133
- Dir.glob('lib/mr_eko/ext/*.rb').each do |f|
134
- require f
135
- end
135
+ require "mr_eko/ext/array"
136
+ require "mr_eko/ext/numeric"
137
+ require "mr_eko/ext/object"
136
138
  require "mr_eko/exceptions"
137
139
  require "mr_eko/core"
138
140
  require "mr_eko/presets"
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.2'
17
- s.date = '2012-09-13'
16
+ s.version = '0.5.3'
17
+ s.date = '2013-08-09'
18
18
  s.rubyforge_project = 'mr_eko'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -69,6 +69,7 @@ Gem::Specification.new do |s|
69
69
  # = MANIFEST =
70
70
  s.files = %w[
71
71
  Gemfile
72
+ LICENSE
72
73
  README.md
73
74
  Rakefile
74
75
  TODO
data/test/mr_eko_test.rb CHANGED
@@ -1,5 +1,9 @@
1
1
  class MrEkoTest < Test::Unit::TestCase
2
2
 
3
+ def path_to(binary)
4
+ File.join(MrEko::HOME_DIR, 'ext', 'enmfp', binary)
5
+ end
6
+
3
7
  context "the module" do
4
8
 
5
9
  should "return an Echonest API instance for nest" do
@@ -31,22 +35,22 @@ class MrEkoTest < Test::Unit::TestCase
31
35
 
32
36
  should 'return proper Darwin bin' do
33
37
  MrEko.stubs(:ruby_platform).returns("i686-darwin10.6.0")
34
- assert_equal 'codegen.Darwin', MrEko.enmfp_binary
38
+ assert_equal path_to('codegen.Darwin'), MrEko.enmfp_binary
35
39
  end
36
40
 
37
41
  should 'return proper Windows bin' do
38
42
  MrEko.stubs(:ruby_platform).returns("Win32")
39
- assert_equal 'codegen.windows.exe', MrEko.enmfp_binary
43
+ assert_equal path_to('codegen.windows.exe'), MrEko.enmfp_binary
40
44
  end
41
45
 
42
46
  should 'return proper 686 bin' do
43
47
  MrEko.stubs(:ruby_platform).returns("i686-linux")
44
- assert_equal 'codegen.Linux-i686', MrEko.enmfp_binary
48
+ assert_equal path_to('codegen.Linux-i686'), MrEko.enmfp_binary
45
49
  end
46
50
 
47
51
  should 'return proper x86 bin' do
48
52
  MrEko.stubs(:ruby_platform).returns("x86_64-linux")
49
- assert_equal 'codegen.Linux-x86_64', MrEko.enmfp_binary
53
+ assert_equal path_to('codegen.Linux-x86_64'), MrEko.enmfp_binary
50
54
  end
51
55
  end
52
56
  end
metadata CHANGED
@@ -1,237 +1,250 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mr_eko
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 2
10
- version: 0.5.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ed Hickey
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-09-13 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - "="
25
- - !ruby/object:Gem::Version
26
- hash: 25
27
- segments:
28
- - 3
29
- - 15
30
- version: "3.15"
31
- prerelease: false
32
- type: :runtime
12
+ date: 2013-08-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
33
15
  name: sequel
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
37
17
  none: false
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- hash: 9
42
- segments:
43
- - 1
44
- - 3
45
- version: "1.3"
46
- prerelease: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.15'
47
22
  type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.15'
30
+ - !ruby/object:Gem::Dependency
48
31
  name: sqlite3-ruby
49
- requirement: *id002
50
- - !ruby/object:Gem::Dependency
51
- version_requirements: &id003 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
52
33
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
60
- prerelease: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '1.3'
61
38
  type: :runtime
62
- name: hashie
63
- requirement: *id003
64
- - !ruby/object:Gem::Dependency
65
- version_requirements: &id004 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
66
41
  none: false
67
- requirements:
42
+ requirements:
68
43
  - - ~>
69
- - !ruby/object:Gem::Version
70
- hash: 1
71
- segments:
72
- - 2
73
- - 1
74
- version: "2.1"
75
- prerelease: false
44
+ - !ruby/object:Gem::Version
45
+ version: '1.3'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hashie
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
76
54
  type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
77
63
  name: httpclient
78
- requirement: *id004
79
- - !ruby/object:Gem::Dependency
80
- version_requirements: &id005 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
81
65
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
- version: "0"
89
- prerelease: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '2.1'
90
70
  type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.1'
78
+ - !ruby/object:Gem::Dependency
91
79
  name: bassnode-ruby-echonest
92
- requirement: *id005
93
- - !ruby/object:Gem::Dependency
94
- version_requirements: &id006 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
95
81
  none: false
96
- requirements:
97
- - - "="
98
- - !ruby/object:Gem::Version
99
- hash: 11
100
- segments:
101
- - 1
102
- - 4
103
- - 6
104
- version: 1.4.6
105
- prerelease: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
106
86
  type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
107
95
  name: json
108
- requirement: *id006
109
- - !ruby/object:Gem::Dependency
110
- version_requirements: &id007 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
111
97
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
119
- prerelease: false
98
+ requirements:
99
+ - - '='
100
+ - !ruby/object:Gem::Version
101
+ version: 1.4.6
120
102
  type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - '='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.4.6
110
+ - !ruby/object:Gem::Dependency
121
111
  name: id3lib-ruby
122
- requirement: *id007
123
- - !ruby/object:Gem::Dependency
124
- version_requirements: &id008 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
125
113
  none: false
126
- requirements:
127
- - - "="
128
- - !ruby/object:Gem::Version
129
- hash: 43
130
- segments:
131
- - 0
132
- - 9
133
- - 8
134
- version: 0.9.8
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
135
119
  prerelease: false
136
- type: :development
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
137
127
  name: mocha
138
- requirement: *id008
139
- - !ruby/object:Gem::Dependency
140
- version_requirements: &id009 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
141
129
  none: false
142
- requirements:
143
- - - ~>
144
- - !ruby/object:Gem::Version
145
- hash: 21
146
- segments:
147
- - 2
148
- - 11
149
- version: "2.11"
150
- prerelease: false
130
+ requirements:
131
+ - - '='
132
+ - !ruby/object:Gem::Version
133
+ version: 0.9.8
151
134
  type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - '='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.9.8
142
+ - !ruby/object:Gem::Dependency
152
143
  name: shoulda
153
- requirement: *id009
154
- - !ruby/object:Gem::Dependency
155
- version_requirements: &id010 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
156
145
  none: false
157
- requirements:
146
+ requirements:
158
147
  - - ~>
159
- - !ruby/object:Gem::Version
160
- hash: 1
161
- segments:
162
- - 2
163
- - 1
164
- version: "2.1"
165
- prerelease: false
148
+ - !ruby/object:Gem::Version
149
+ version: '2.11'
166
150
  type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '2.11'
158
+ - !ruby/object:Gem::Dependency
167
159
  name: test-unit
168
- requirement: *id010
169
- - !ruby/object:Gem::Dependency
170
- version_requirements: &id011 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
171
161
  none: false
172
- requirements:
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- hash: 3
176
- segments:
177
- - 0
178
- version: "0"
179
- prerelease: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '2.1'
180
166
  type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '2.1'
174
+ - !ruby/object:Gem::Dependency
181
175
  name: ruby-debug
182
- requirement: *id011
183
- - !ruby/object:Gem::Dependency
184
- version_requirements: &id012 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
185
177
  none: false
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- hash: 3
190
- segments:
191
- - 0
192
- version: "0"
193
- prerelease: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
194
182
  type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
195
191
  name: autotest
196
- requirement: *id012
197
- - !ruby/object:Gem::Dependency
198
- version_requirements: &id013 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
199
193
  none: false
200
- requirements:
201
- - - ">="
202
- - !ruby/object:Gem::Version
203
- hash: 3
204
- segments:
205
- - 0
206
- version: "0"
207
- prerelease: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
208
198
  type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
209
207
  name: pry
210
- requirement: *id013
211
- - !ruby/object:Gem::Dependency
212
- version_requirements: &id014 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
213
209
  none: false
214
- requirements:
215
- - - ">="
216
- - !ruby/object:Gem::Version
217
- hash: 3
218
- segments:
219
- - 0
220
- version: "0"
221
- prerelease: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
222
214
  type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ - !ruby/object:Gem::Dependency
223
223
  name: yard
224
- requirement: *id014
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ! '>='
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
225
238
  description: Catalogs music file data and exposes a playlist interface
226
239
  email: bassnode@gmail.com
227
- executables:
240
+ executables:
228
241
  - mreko
229
242
  extensions: []
230
-
231
- extra_rdoc_files:
243
+ extra_rdoc_files:
232
244
  - README.md
233
- files:
245
+ files:
234
246
  - Gemfile
247
+ - LICENSE
235
248
  - README.md
236
249
  - Rakefile
237
250
  - TODO
@@ -274,37 +287,28 @@ files:
274
287
  - test/timed_playlist_test.rb
275
288
  homepage: http://github.com/bassnode/mreko
276
289
  licenses: []
277
-
278
290
  post_install_message:
279
- rdoc_options:
291
+ rdoc_options:
280
292
  - --charset=UTF-8
281
- require_paths:
293
+ require_paths:
282
294
  - lib
283
- required_ruby_version: !ruby/object:Gem::Requirement
295
+ required_ruby_version: !ruby/object:Gem::Requirement
284
296
  none: false
285
- requirements:
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- hash: 3
289
- segments:
290
- - 0
291
- version: "0"
292
- required_rubygems_version: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - ! '>='
299
+ - !ruby/object:Gem::Version
300
+ version: '0'
301
+ required_rubygems_version: !ruby/object:Gem::Requirement
293
302
  none: false
294
- requirements:
295
- - - ">="
296
- - !ruby/object:Gem::Version
297
- hash: 3
298
- segments:
299
- - 0
300
- version: "0"
303
+ requirements:
304
+ - - ! '>='
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
301
307
  requirements: []
302
-
303
308
  rubyforge_project: mr_eko
304
- rubygems_version: 1.8.24
309
+ rubygems_version: 1.8.25
305
310
  signing_key:
306
311
  specification_version: 2
307
312
  summary: Catalogs music file data and exposes a playlist interface
308
313
  test_files: []
309
-
310
314
  has_rdoc: