appl 1.12 → 1.13
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 +4 -4
- data/lib/appl.rb +18 -8
- data/lib/applfan.rb +5 -10
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9e3306b330c4d69ef88e6b75511d7b0ab1e030f990aac1800305dcfa4afd0f65
         | 
| 4 | 
            +
              data.tar.gz: eff477635d40b6ff9c443b0fe1256107c85d31bf6aa7c0a2088f26ffa239111c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6ae84d8de622e2e2b4763ef8fbda40b9210edd326d48358707364f4a4c99b0fbee05c1ed1dc5b31d83d3f7429e74922a81af5eb22de7572a1a3c6ad7bec99925
         | 
| 7 | 
            +
              data.tar.gz: ab2ea5f6b9f7850bd62e741201cc10bdaa1c1c6be549c0a45fa435bb7ee55779fabfade33a0801fd931d7313d0b90f3a991b1ec38ee6749db19562ee6969afe2
         | 
    
        data/lib/appl.rb
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            class Application
         | 
| 7 7 |  | 
| 8 | 
            -
              APPL_VERSION = "1. | 
| 8 | 
            +
              APPL_VERSION = "1.13".freeze
         | 
| 9 9 |  | 
| 10 10 | 
             
              OPTIONS_ENV = nil
         | 
| 11 11 |  | 
| @@ -13,14 +13,16 @@ class Application | |
| 13 13 | 
             
              UNKNOWN = "Unknown option: `%s'."
         | 
| 14 14 | 
             
              UNPROCA = "Warning: unprocessed arguments: %s"
         | 
| 15 15 |  | 
| 16 | 
            +
              ALIASES = [].freeze
         | 
| 17 | 
            +
             | 
| 16 18 | 
             
              W_OPTS = 10
         | 
| 17 19 | 
             
              W_ARGS = 16
         | 
| 18 20 |  | 
| 19 21 | 
             
              class OptionError < StandardError ; end
         | 
| 20 22 | 
             
              class Done        < Exception     ; end
         | 
| 21 23 |  | 
| 22 | 
            -
              def initialize args = nil
         | 
| 23 | 
            -
                @args = args | 
| 24 | 
            +
              def initialize name = nil, args = nil
         | 
| 25 | 
            +
                @name, @args = name, args
         | 
| 24 26 | 
             
                self.class.each_option { |opt,desc,arg,dfl,act|
         | 
| 25 27 | 
             
                  begin
         | 
| 26 28 | 
             
                    send act, dfl if dfl
         | 
| @@ -92,7 +94,8 @@ class Application | |
| 92 94 | 
             
                private
         | 
| 93 95 |  | 
| 94 96 | 
             
                def execute args = nil
         | 
| 95 | 
            -
                   | 
| 97 | 
            +
                  n = File.basename $0
         | 
| 98 | 
            +
                  i = new n, args||cmdline_arguments
         | 
| 96 99 | 
             
                  i.execute
         | 
| 97 100 | 
             
                rescue Done
         | 
| 98 101 | 
             
                  0
         | 
| @@ -214,12 +217,19 @@ class Application | |
| 214 217 | 
             
                  self
         | 
| 215 218 | 
             
                end
         | 
| 216 219 |  | 
| 217 | 
            -
                def  | 
| 218 | 
            -
                  self::NAME
         | 
| 220 | 
            +
                def all_names
         | 
| 221 | 
            +
                  [ self::NAME, *self::ALIASES].join "|"
         | 
| 219 222 | 
             
                end
         | 
| 220 223 |  | 
| 221 224 | 
             
                def help
         | 
| 222 | 
            -
                   | 
| 225 | 
            +
                  n = []
         | 
| 226 | 
            +
                  s = self
         | 
| 227 | 
            +
                  begin
         | 
| 228 | 
            +
                    l = s.all_names
         | 
| 229 | 
            +
                    n.unshift l
         | 
| 230 | 
            +
                    s = s.root
         | 
| 231 | 
            +
                  end while s != root
         | 
| 232 | 
            +
                  puts "#{n.join ' '}  --  #{self::SUMMARY}"
         | 
| 223 233 | 
             
                  puts
         | 
| 224 234 | 
             
                  puts self::DESCRIPTION
         | 
| 225 235 | 
             
                  puts
         | 
| @@ -231,7 +241,7 @@ class Application | |
| 231 241 | 
             
                end
         | 
| 232 242 |  | 
| 233 243 | 
             
                def version
         | 
| 234 | 
            -
                  puts "#{ | 
| 244 | 
            +
                  puts "#{self::NAME} #{self::VERSION}  --  #{self::SUMMARY}"
         | 
| 235 245 | 
             
                  puts self::COPYRIGHT if const_defined? :COPYRIGHT
         | 
| 236 246 | 
             
                  puts "License: #{self::LICENSE}" if const_defined? :LICENSE
         | 
| 237 247 | 
             
                  a = []
         | 
    
        data/lib/applfan.rb
    CHANGED
    
    | @@ -5,9 +5,7 @@ | |
| 5 5 | 
             
            require "appl"
         | 
| 6 6 |  | 
| 7 7 |  | 
| 8 | 
            -
            ApplicationFan  | 
| 9 | 
            -
             | 
| 10 | 
            -
            class ApplicationFan
         | 
| 8 | 
            +
            class ApplicationFan < Application
         | 
| 11 9 |  | 
| 12 10 | 
             
              AVAILCMDS = "Available commands (say -h after one for help)"
         | 
| 13 11 | 
             
              NOCOMMAND = "No command given. Say -h for a list."
         | 
| @@ -22,7 +20,7 @@ class ApplicationFan | |
| 22 20 | 
             
                attr_accessor :commands
         | 
| 23 21 |  | 
| 24 22 | 
             
                def find_command name
         | 
| 25 | 
            -
                  @commands.find { |c| c::NAME == name }
         | 
| 23 | 
            +
                  @commands.find { |c| c::NAME == name or c::ALIASES.include? name }
         | 
| 26 24 | 
             
                end
         | 
| 27 25 |  | 
| 28 26 |  | 
| @@ -35,7 +33,7 @@ class ApplicationFan | |
| 35 33 | 
             
                    puts self::AVAILCMDS
         | 
| 36 34 | 
             
                    puts
         | 
| 37 35 | 
             
                    @commands.each { |c|
         | 
| 38 | 
            -
                      puts "  %-*s  %s" % [ self::W_CMDS, c | 
| 36 | 
            +
                      puts "  %-*s  %s" % [ self::W_CMDS, c.all_names, c::SUMMARY]
         | 
| 39 37 | 
             
                    }
         | 
| 40 38 | 
             
                  end
         | 
| 41 39 | 
             
                end
         | 
| @@ -52,10 +50,7 @@ class ApplicationFan | |
| 52 50 | 
             
                          super c
         | 
| 53 51 | 
             
                        end
         | 
| 54 52 | 
             
                        define_singleton_method :root do
         | 
| 55 | 
            -
                          sub
         | 
| 56 | 
            -
                        end
         | 
| 57 | 
            -
                        define_singleton_method :applname do
         | 
| 58 | 
            -
                          "#{root::NAME} #{self::NAME}"
         | 
| 53 | 
            +
                          sub.root
         | 
| 59 54 | 
             
                        end
         | 
| 60 55 | 
             
                      end
         | 
| 61 56 | 
             
                    )
         | 
| @@ -70,7 +65,7 @@ class ApplicationFan | |
| 70 65 | 
             
                c or raise CommandError, self.class::NOCOMMAND
         | 
| 71 66 | 
             
                cmd = self.class.find_command c
         | 
| 72 67 | 
             
                cmd or raise CommandError, self.class::UNKNWNCMD % c
         | 
| 73 | 
            -
                sub = cmd.new @args.slice! 0, @args.length
         | 
| 68 | 
            +
                sub = cmd.new c, (@args.slice! 0, @args.length)
         | 
| 74 69 | 
             
                yield sub if block_given?
         | 
| 75 70 | 
             
                sub.execute
         | 
| 76 71 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: appl
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: '1. | 
| 4 | 
            +
              version: '1.13'
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Bertram Scharpf
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-04-11 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: |
         | 
| 14 14 | 
             
              A base class for command line applications doing options parsing
         |