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
         |