midilib 2.0.2 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/ChangeLog +2 -1
- data/Credits +44 -2
- data/README.rdoc +42 -33
- data/Rakefile +36 -53
- data/TODO.rdoc +13 -2
- data/examples/from_scratch.rb +4 -6
- data/examples/measures_mbt.rb +11 -11
- data/examples/print_program_changes.rb +11 -11
- data/examples/reader2text.rb +191 -190
- data/examples/seq2text.rb +18 -18
- data/examples/split.rb +21 -20
- data/examples/strings.rb +15 -15
- data/examples/transpose.rb +41 -42
- data/install.rb +53 -34
- data/lib/midilib/consts.rb +406 -408
- data/lib/midilib/event.rb +335 -306
- data/lib/midilib/info.rb +5 -7
- data/lib/midilib/io/midifile.rb +424 -452
- data/lib/midilib/io/seqreader.rb +187 -192
- data/lib/midilib/io/seqwriter.rb +151 -147
- data/lib/midilib/measure.rb +78 -80
- data/lib/midilib/mergesort.rb +39 -0
- data/lib/midilib/sequence.rb +99 -86
- data/lib/midilib/track.rb +71 -118
- data/lib/midilib/utils.rb +17 -20
- data/lib/midilib.rb +5 -5
- data/test/event_equality.rb +50 -52
- data/test/test_event.rb +120 -124
- data/test/test_io.rb +107 -40
- data/test/test_mergesort.rb +37 -0
- data/test/test_midifile.rb +6 -19
- data/test/test_sequence.rb +64 -52
- data/test/test_track.rb +126 -155
- data/test/test_varlen.rb +23 -27
- metadata +20 -22
data/install.rb
CHANGED
@@ -5,53 +5,72 @@
|
|
5
5
|
# This script installs midilib into the Ruby site-local library directory.
|
6
6
|
#
|
7
7
|
# Author:: Jim Menard (mailto:jim@jimmenard.com)
|
8
|
-
# Copyright:: Copyright (c) 2003-
|
8
|
+
# Copyright:: Copyright (c) 2003-2013 by Jim Menard
|
9
9
|
# License:: Distributed under the same license as Ruby.
|
10
10
|
#
|
11
11
|
|
12
12
|
require 'getoptlong'
|
13
|
-
require 'ftools'
|
14
13
|
require 'find'
|
14
|
+
begin
|
15
|
+
require 'ftools'
|
16
|
+
def mkdirs(dir)
|
17
|
+
File.makedirs(dir)
|
18
|
+
end
|
19
|
+
|
20
|
+
def install(*args)
|
21
|
+
File.install(*args)
|
22
|
+
end
|
23
|
+
rescue LoadError
|
24
|
+
require 'fileutils'
|
25
|
+
def mkdirs(dir)
|
26
|
+
FileUtils.mkdir_p(dir)
|
27
|
+
end
|
28
|
+
|
29
|
+
def install(*args)
|
30
|
+
args[2] = { mode: args[2], verbose: args[3] }
|
31
|
+
args.pop
|
32
|
+
FileUtils.install(*args)
|
33
|
+
end
|
34
|
+
end
|
15
35
|
|
16
36
|
SOURCE_DIR = 'lib'
|
17
37
|
LIB_DIR = 'midilib'
|
18
38
|
IO_DIR = File.join(LIB_DIR, 'io')
|
19
39
|
|
20
40
|
def instdir
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
}
|
29
|
-
|
30
|
-
begin
|
31
|
-
require 'rbconfig'
|
32
|
-
libdir = Config::CONFIG['sitedir'] + "/" +
|
33
|
-
Config::CONFIG['MAJOR'] + "." +
|
34
|
-
Config::CONFIG['MINOR']
|
35
|
-
rescue ScriptError
|
36
|
-
$LOAD_PATH.each do |l|
|
37
|
-
if l =~ /site_ruby/ && l =~ /\d$/ && l !~ /#{PLATFORM}/
|
38
|
-
libdir = l
|
39
|
-
break
|
40
|
-
end
|
41
|
-
end
|
42
|
-
STDERR.puts "Can't find required file `rbconfig.rb'."
|
43
|
-
STDERR.puts "The `midilib' files need to be installed manually in" +
|
44
|
-
" #{libdir}"
|
41
|
+
g = GetoptLong.new(['--install-dir', '-i', GetoptLong::REQUIRED_ARGUMENT])
|
42
|
+
g.each do |name, arg|
|
43
|
+
if name == '--install-dir'
|
44
|
+
return arg
|
45
|
+
else
|
46
|
+
warn 'usage: $0 [--install-dir dir]'
|
45
47
|
end
|
46
|
-
|
48
|
+
end
|
49
|
+
|
50
|
+
begin
|
51
|
+
require 'rbconfig'
|
52
|
+
libdir = Config::CONFIG['sitedir'] + '/' +
|
53
|
+
Config::CONFIG['MAJOR'] + '.' +
|
54
|
+
Config::CONFIG['MINOR']
|
55
|
+
rescue ScriptError
|
56
|
+
$LOAD_PATH.each do |l|
|
57
|
+
if l =~ /site_ruby/ && l =~ /\d$/ && l !~ /#{PLATFORM}/
|
58
|
+
libdir = l
|
59
|
+
break
|
60
|
+
end
|
61
|
+
end
|
62
|
+
warn "Can't find required file `rbconfig.rb'."
|
63
|
+
warn "The `midilib' files need to be installed manually in #{libdir}"
|
64
|
+
end
|
65
|
+
libdir
|
47
66
|
end
|
48
67
|
|
49
|
-
INSTALL_DIR = instdir
|
68
|
+
INSTALL_DIR = instdir
|
50
69
|
files = Dir.chdir('lib') { Dir['**/*.rb'] }
|
51
70
|
|
52
|
-
files.each
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
71
|
+
files.each do |f|
|
72
|
+
dir = File.dirname(f)
|
73
|
+
target_dir = File.join(INSTALL_DIR, dir)
|
74
|
+
mkdirs(target_dir) unless File.exist?(target_dir)
|
75
|
+
install(File.join('lib', f), File.join(INSTALL_DIR, f), 0o644, true)
|
76
|
+
end
|