mr_eko 0.5.2 → 0.5.3

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/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: