commander 4.1.2 → 4.1.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/.travis.yml +3 -2
- data/History.rdoc +7 -1
- data/README.rdoc +2 -0
- data/bin/commander +2 -2
- data/lib/commander/core_ext/array.rb +7 -6
- data/lib/commander/runner.rb +1 -1
- data/lib/commander/version.rb +2 -2
- data/spec/core_ext/array_spec.rb +7 -2
- data/spec/runner_spec.rb +5 -0
- metadata +31 -11
    
        data/.travis.yml
    CHANGED
    
    
    
        data/History.rdoc
    CHANGED
    
    | @@ -1,3 +1,9 @@ | |
| 1 | 
            +
            === 4.1.3 / 2012-12-15
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * Remove use of eval in Array.parse
         | 
| 4 | 
            +
            * Make generated template executable and set better defaults (@suan)
         | 
| 5 | 
            +
            * Fixed valid_command_names_from to match exact commands only (@fgalassi)
         | 
| 6 | 
            +
             | 
| 1 7 | 
             
            === 4.1.2 / 2012-02-17
         | 
| 2 8 |  | 
| 3 9 | 
             
            * Improvement to `ask_editor` to be more portable across *nix variants. (thanks to Federico Galassi)
         | 
| @@ -336,4 +342,4 @@ | |
| 336 342 |  | 
| 337 343 | 
             
            === 1.0.0 / 2008-10-31
         | 
| 338 344 |  | 
| 339 | 
            -
            * Initial release
         | 
| 345 | 
            +
            * Initial release
         | 
    
        data/README.rdoc
    CHANGED
    
    
    
        data/bin/commander
    CHANGED
    
    | @@ -25,9 +25,8 @@ command :init do |c| | |
| 25 25 |  | 
| 26 26 | 
             
                      require 'rubygems'
         | 
| 27 27 | 
             
                      require 'commander/import'
         | 
| 28 | 
            -
                      require '#{name}'
         | 
| 29 28 |  | 
| 30 | 
            -
                      program :version,  | 
| 29 | 
            +
                      program :version, '0.0.1'
         | 
| 31 30 | 
             
                      program :description, '#{description}'
         | 
| 32 31 |  | 
| 33 32 | 
             
                    ...
         | 
| @@ -47,6 +46,7 @@ command :init do |c| | |
| 47 46 | 
             
                      ...
         | 
| 48 47 | 
             
                    end
         | 
| 49 48 | 
             
                   end
         | 
| 49 | 
            +
                   File.chmod 0755, file
         | 
| 50 50 | 
             
                   say "Initialized template in #{file}"
         | 
| 51 51 | 
             
                 rescue Exception => e
         | 
| 52 52 | 
             
                   abort e
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 |  | 
| 2 | 
            -
            class Array | 
| 3 | 
            -
             | 
| 2 | 
            +
            class Array
         | 
| 3 | 
            +
             | 
| 4 4 | 
             
              ##
         | 
| 5 5 | 
             
              # Split _string_ into an array. Used in
         | 
| 6 6 | 
             
              # conjunction with Highline's #ask, or #ask_for_array
         | 
| @@ -10,16 +10,17 @@ class Array | |
| 10 10 | 
             
              # the arguments foo bar\ baz will become ['foo', 'bar baz']
         | 
| 11 11 | 
             
              #
         | 
| 12 12 | 
             
              # === Example
         | 
| 13 | 
            -
              # | 
| 13 | 
            +
              #
         | 
| 14 14 | 
             
              #   # ask invokes Array#parse
         | 
| 15 15 | 
             
              #   list = ask 'Favorite cookies:', Array
         | 
| 16 16 | 
             
              #
         | 
| 17 17 | 
             
              #   # or use ask_for_CLASS
         | 
| 18 18 | 
             
              #   list = ask_for_array 'Favorite cookies: '
         | 
| 19 19 | 
             
              #
         | 
| 20 | 
            -
             | 
| 20 | 
            +
             | 
| 21 21 | 
             
              def self.parse string
         | 
| 22 | 
            -
                 | 
| 22 | 
            +
                # Using reverse + lookahead to work around Ruby 1.8's lack of lookbehind
         | 
| 23 | 
            +
                string.reverse.split(/\s(?!\\)/).reverse.map { |s| s.reverse.gsub('\\ ', ' ') }
         | 
| 23 24 | 
             
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            +
             | 
| 25 26 | 
             
            end
         | 
    
        data/lib/commander/runner.rb
    CHANGED
    
    | @@ -223,7 +223,7 @@ module Commander | |
| 223 223 |  | 
| 224 224 | 
             
                def valid_command_names_from *args
         | 
| 225 225 | 
             
                  arg_string = args.delete_if { |value| value =~ /^-/ }.join ' '
         | 
| 226 | 
            -
                  commands.keys.find_all { |name| name if /^#{name}/.match arg_string }
         | 
| 226 | 
            +
                  commands.keys.find_all { |name| name if /^#{name}\b/.match arg_string }
         | 
| 227 227 | 
             
                end
         | 
| 228 228 |  | 
| 229 229 | 
             
                ##
         | 
    
        data/lib/commander/version.rb
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 1 | 
             
            module Commander
         | 
| 2 | 
            -
              VERSION = '4.1. | 
| 3 | 
            -
            end
         | 
| 2 | 
            +
              VERSION = '4.1.3'
         | 
| 3 | 
            +
            end
         | 
    
        data/spec/core_ext/array_spec.rb
    CHANGED
    
    | @@ -1,15 +1,20 @@ | |
| 1 1 | 
             
            require 'spec_helper'
         | 
| 2 2 |  | 
| 3 3 | 
             
            describe Array do
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             | 
| 5 5 | 
             
              describe "#parse" do
         | 
| 6 6 | 
             
                it "should seperate a list of words into an array" do
         | 
| 7 7 | 
             
                  Array.parse('just a test').should eq(['just', 'a', 'test'])
         | 
| 8 8 | 
             
                end
         | 
| 9 | 
            -
             | 
| 9 | 
            +
             | 
| 10 10 | 
             
                it "should preserve escaped whitespace" do
         | 
| 11 11 | 
             
                  Array.parse('just a\ test').should eq(['just', 'a test'])
         | 
| 12 12 | 
             
                end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                it "should match %w behavior with multiple backslashes" do
         | 
| 15 | 
            +
                  str = 'just a\\ test'
         | 
| 16 | 
            +
                  Array.parse(str).should eq(eval("%w(#{str})"))
         | 
| 17 | 
            +
                end
         | 
| 13 18 | 
             
              end
         | 
| 14 19 |  | 
| 15 20 | 
             
            end
         | 
    
        data/spec/runner_spec.rb
    CHANGED
    
    | @@ -361,6 +361,11 @@ describe Commander do | |
| 361 361 | 
             
                it "should return empty array when no possible command names exist" do
         | 
| 362 362 | 
             
                  command_runner.valid_command_names_from('fake', 'command', 'name').should eq([])
         | 
| 363 363 | 
             
                end
         | 
| 364 | 
            +
             | 
| 365 | 
            +
                it "should match exact commands only" do
         | 
| 366 | 
            +
                  command('foo') {}
         | 
| 367 | 
            +
                  command_runner.valid_command_names_from('foobar').should eq([])
         | 
| 368 | 
            +
                end
         | 
| 364 369 | 
             
              end
         | 
| 365 370 |  | 
| 366 371 | 
             
              describe "#command_name_from_args" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: commander
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4.1. | 
| 4 | 
            +
              version: 4.1.3
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,11 +10,11 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012- | 
| 13 | 
            +
            date: 2012-12-16 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: highline
         | 
| 17 | 
            -
              requirement:  | 
| 17 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 18 18 | 
             
                none: false
         | 
| 19 19 | 
             
                requirements:
         | 
| 20 20 | 
             
                - - ~>
         | 
| @@ -22,10 +22,15 @@ dependencies: | |
| 22 22 | 
             
                    version: 1.6.11
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements:  | 
| 25 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 | 
            +
                none: false
         | 
| 27 | 
            +
                requirements:
         | 
| 28 | 
            +
                - - ~>
         | 
| 29 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 30 | 
            +
                    version: 1.6.11
         | 
| 26 31 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 27 32 | 
             
              name: rspec
         | 
| 28 | 
            -
              requirement:  | 
| 33 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 29 34 | 
             
                none: false
         | 
| 30 35 | 
             
                requirements:
         | 
| 31 36 | 
             
                - - ~>
         | 
| @@ -33,10 +38,15 @@ dependencies: | |
| 33 38 | 
             
                    version: '2'
         | 
| 34 39 | 
             
              type: :development
         | 
| 35 40 | 
             
              prerelease: false
         | 
| 36 | 
            -
              version_requirements:  | 
| 41 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 42 | 
            +
                none: false
         | 
| 43 | 
            +
                requirements:
         | 
| 44 | 
            +
                - - ~>
         | 
| 45 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            +
                    version: '2'
         | 
| 37 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 38 48 | 
             
              name: rake
         | 
| 39 | 
            -
              requirement:  | 
| 49 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 40 50 | 
             
                none: false
         | 
| 41 51 | 
             
                requirements:
         | 
| 42 52 | 
             
                - - ! '>='
         | 
| @@ -44,10 +54,15 @@ dependencies: | |
| 44 54 | 
             
                    version: '0'
         | 
| 45 55 | 
             
              type: :development
         | 
| 46 56 | 
             
              prerelease: false
         | 
| 47 | 
            -
              version_requirements:  | 
| 57 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                none: false
         | 
| 59 | 
            +
                requirements:
         | 
| 60 | 
            +
                - - ! '>='
         | 
| 61 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            +
                    version: '0'
         | 
| 48 63 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 64 | 
             
              name: simplecov
         | 
| 50 | 
            -
              requirement:  | 
| 65 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 51 66 | 
             
                none: false
         | 
| 52 67 | 
             
                requirements:
         | 
| 53 68 | 
             
                - - ! '>='
         | 
| @@ -55,7 +70,12 @@ dependencies: | |
| 55 70 | 
             
                    version: '0'
         | 
| 56 71 | 
             
              type: :development
         | 
| 57 72 | 
             
              prerelease: false
         | 
| 58 | 
            -
              version_requirements:  | 
| 73 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 74 | 
            +
                none: false
         | 
| 75 | 
            +
                requirements:
         | 
| 76 | 
            +
                - - ! '>='
         | 
| 77 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 78 | 
            +
                    version: '0'
         | 
| 59 79 | 
             
            description: The complete solution for Ruby command-line executables. Commander bridges
         | 
| 60 80 | 
             
              the gap between other terminal related libraries you know and love (OptionParser,
         | 
| 61 81 | 
             
              HighLine), while providing many new features, and an elegant API.
         | 
| @@ -123,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 123 143 | 
             
                  version: '0'
         | 
| 124 144 | 
             
            requirements: []
         | 
| 125 145 | 
             
            rubyforge_project: commander
         | 
| 126 | 
            -
            rubygems_version: 1.8. | 
| 146 | 
            +
            rubygems_version: 1.8.22
         | 
| 127 147 | 
             
            signing_key: 
         | 
| 128 148 | 
             
            specification_version: 3
         | 
| 129 149 | 
             
            summary: The complete solution for Ruby command-line executables
         |