midilib 2.0.2 → 3.0.1
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.
- 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
|