gas 0.1.6 → 0.1.7
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/README.textile +10 -4
- data/bin/gas +5 -0
- data/lib/gas.rb +76 -12
- data/lib/gas/config.rb +54 -2
- data/lib/gas/gitconfig.rb +21 -3
- data/lib/gas/ssh.rb +630 -0
- data/lib/gas/user.rb +4 -1
- data/lib/gas/version.rb +1 -1
- data/spec/gas/config_spec.rb +9 -1
- data/spec/gas/gitconfig_spec.rb +52 -11
- data/spec/gas/ssh_spec.rb +328 -0
- data/spec/gas/user_spec.rb +2 -2
- data/spec/spec_helper.rb +73 -0
- metadata +45 -16
    
        data/spec/gas/user_spec.rb
    CHANGED
    
    | @@ -8,14 +8,14 @@ describe Gas::User do | |
| 8 8 | 
             
                email = 'fredrik.wallgren@gmail.com'
         | 
| 9 9 | 
             
                nickname = 'walle'
         | 
| 10 10 | 
             
                user = Gas::User.new name, email, nickname
         | 
| 11 | 
            -
                user.to_s.should == "[#{nickname}]\n | 
| 11 | 
            +
                user.to_s.should == "      [#{nickname}]\n         name = #{name}\n         email = #{email}"
         | 
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              it 'should output a git user in the right format' do
         | 
| 15 15 | 
             
                name = 'Fredrik Wallgren'
         | 
| 16 16 | 
             
                email = 'fredrik.wallgren@gmail.com'
         | 
| 17 17 | 
             
                user = Gas::User.new name, email
         | 
| 18 | 
            -
                user.git_user.should == "[user]\n | 
| 18 | 
            +
                user.git_user.should == "      [user]\n         name = #{name}\n         email = #{email}"
         | 
| 19 19 | 
             
              end
         | 
| 20 20 |  | 
| 21 21 | 
             
              it 'should be able to have a nickname' do
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            # encoding: utf-8
         | 
| 2 2 |  | 
| 3 | 
            +
             | 
| 3 4 | 
             
            RSpec.configure do |config|
         | 
| 4 5 | 
             
              config.mock_with :rr
         | 
| 5 6 | 
             
            end
         | 
| @@ -12,3 +13,75 @@ def mock_cli_call(mock_object, command) | |
| 12 13 | 
             
              # To be able to mock ` (http://blog.astrails.com/2010/7/5/how-to-mock-backticks-operator-in-your-test-specs-using-rr)
         | 
| 13 14 | 
             
              mock(mock_object).__double_definition_create__.call(:`, command) { yield }
         | 
| 14 15 | 
             
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
             | 
| 18 | 
            +
            def move_the_testers_personal_ssh_key_out_of_way
         | 
| 19 | 
            +
              if File.exists?(SSH_DIRECTORY + "/id_rsa") 
         | 
| 20 | 
            +
                @pattern_to_restore_privl = File.open(SSH_DIRECTORY + "/id_rsa","r").read      # this test requires some juggling of files that may already exist.
         | 
| 21 | 
            +
                File.open(GAS_DIRECTORY + "/temp_test","w+").puts @pattern_to_restore_privl
         | 
| 22 | 
            +
                File.delete(SSH_DIRECTORY + "/id_rsa")
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
              
         | 
| 25 | 
            +
              if File.exists?(SSH_DIRECTORY + "/id_rsa.pub")
         | 
| 26 | 
            +
                @pattern_to_restore_publ = File.open(SSH_DIRECTORY + "/id_rsa.pub","r").read   # We don't want to mess things up for the tester, so we will need to save these files and then delete them
         | 
| 27 | 
            +
                File.open(GAS_DIRECTORY + "/temp_test.pub","w+").puts @pattern_to_restore_publ
         | 
| 28 | 
            +
                File.delete(SSH_DIRECTORY + "/id_rsa.pub")
         | 
| 29 | 
            +
              end
         | 
| 30 | 
            +
              
         | 
| 31 | 
            +
            end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            def restore_the_testers_ssh_key
         | 
| 34 | 
            +
              if File.exists?(GAS_DIRECTORY + "/temp_test") 
         | 
| 35 | 
            +
                @pattern_to_restore_privl = File.open(GAS_DIRECTORY + "/temp_test","r").read      # this test requires some juggling of files that may already exist.
         | 
| 36 | 
            +
                File.open(SSH_DIRECTORY + "/id_rsa","w+").puts @pattern_to_restore_privl
         | 
| 37 | 
            +
                File.delete(GAS_DIRECTORY + "/temp_test")
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
              
         | 
| 40 | 
            +
              if File.exists?(GAS_DIRECTORY + "/temp_test.pub")
         | 
| 41 | 
            +
                @pattern_to_restore_publ = File.open(GAS_DIRECTORY + "/temp_test.pub","r").read   # We don't want to mess things up for the tester, so we will need to save these files and then delete them
         | 
| 42 | 
            +
                File.open(SSH_DIRECTORY + "/id_rsa.pub","w+").puts @pattern_to_restore_publ
         | 
| 43 | 
            +
                File.delete(GAS_DIRECTORY + "/temp_test.pub")
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
            end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
             | 
| 48 | 
            +
            def clean_out_ssh_directory
         | 
| 49 | 
            +
              if File.exists?(SSH_DIRECTORY + "/id_rsa") 
         | 
| 50 | 
            +
                File.delete(SSH_DIRECTORY + "/id_rsa")
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
              
         | 
| 53 | 
            +
              if File.exists?(SSH_DIRECTORY + "/id_rsa.pub")
         | 
| 54 | 
            +
                File.delete(SSH_DIRECTORY + "/id_rsa.pub")      
         | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
            end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            def clean_out_gas_directory(nickname)
         | 
| 59 | 
            +
              if File.exists?(GAS_DIRECTORY + "/#{nickname}_id_rsa") 
         | 
| 60 | 
            +
                  File.delete(GAS_DIRECTORY + "/#{nickname}_id_rsa")
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
                
         | 
| 63 | 
            +
                if File.exists?(SSH_DIRECTORY + "/#{nickname}_id_rsa.pub")
         | 
| 64 | 
            +
                  File.delete(@ssh_dir + "/#{nickname}_id_rsa.pub")      
         | 
| 65 | 
            +
                end
         | 
| 66 | 
            +
            end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
             | 
| 69 | 
            +
            def create_user_no_git(nickname, name, email)
         | 
| 70 | 
            +
                Gas::Ssh.stub!(:user_wants_gas_to_handle_rsa_keys?).and_return(true)
         | 
| 71 | 
            +
                #Gas::Ssh.stub!(:user_wants_to_use_key_already_in_ssh?).and_return(false)
         | 
| 72 | 
            +
                Gas::Ssh.stub!(:user_wants_to_install_key_to_github?).and_return(false)
         | 
| 73 | 
            +
                
         | 
| 74 | 
            +
                Gas.add(nickname,name,email)
         | 
| 75 | 
            +
                
         | 
| 76 | 
            +
                Gas::Ssh.unstub!(:user_wants_gas_to_handle_rsa_keys?)
         | 
| 77 | 
            +
                #Gas::Ssh.unstub!(:user_wants_to_use_key_already_in_ssh?)
         | 
| 78 | 
            +
                Gas::Ssh.unstub!(:user_wants_to_install_key_to_github?)
         | 
| 79 | 
            +
            end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            # toasts ssh keys for a given nickname and removal from gas.authors
         | 
| 82 | 
            +
            def delete_user_no_git(nickname)
         | 
| 83 | 
            +
              
         | 
| 84 | 
            +
              Gas.delete(nickname)
         | 
| 85 | 
            +
              
         | 
| 86 | 
            +
            end
         | 
| 87 | 
            +
             | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gas
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.7
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,12 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 13 | 
            -
            default_executable: 
         | 
| 12 | 
            +
            date: 2011-10-15 00:00:00.000000000Z
         | 
| 14 13 | 
             
            dependencies:
         | 
| 15 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 15 | 
             
              name: thor
         | 
| 17 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &14036680 !ruby/object:Gem::Requirement
         | 
| 18 17 | 
             
                none: false
         | 
| 19 18 | 
             
                requirements:
         | 
| 20 19 | 
             
                - - ~>
         | 
| @@ -22,10 +21,32 @@ dependencies: | |
| 22 21 | 
             
                    version: 0.14.6
         | 
| 23 22 | 
             
              type: :runtime
         | 
| 24 23 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *14036680
         | 
| 25 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 26 | 
            +
              name: sshkey
         | 
| 27 | 
            +
              requirement: &14032240 !ruby/object:Gem::Requirement
         | 
| 28 | 
            +
                none: false
         | 
| 29 | 
            +
                requirements:
         | 
| 30 | 
            +
                - - ~>
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: 1.2.2
         | 
| 33 | 
            +
              type: :runtime
         | 
| 34 | 
            +
              prerelease: false
         | 
| 35 | 
            +
              version_requirements: *14032240
         | 
| 36 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 37 | 
            +
              name: highline
         | 
| 38 | 
            +
              requirement: &14030920 !ruby/object:Gem::Requirement
         | 
| 39 | 
            +
                none: false
         | 
| 40 | 
            +
                requirements:
         | 
| 41 | 
            +
                - - ! '>='
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            +
                    version: '0'
         | 
| 44 | 
            +
              type: :runtime
         | 
| 45 | 
            +
              prerelease: false
         | 
| 46 | 
            +
              version_requirements: *14030920
         | 
| 26 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 27 48 | 
             
              name: rake
         | 
| 28 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &14028160 !ruby/object:Gem::Requirement
         | 
| 29 50 | 
             
                none: false
         | 
| 30 51 | 
             
                requirements:
         | 
| 31 52 | 
             
                - - ! '>='
         | 
| @@ -33,10 +54,10 @@ dependencies: | |
| 33 54 | 
             
                    version: '0'
         | 
| 34 55 | 
             
              type: :development
         | 
| 35 56 | 
             
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *14028160
         | 
| 37 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 38 59 | 
             
              name: bundler
         | 
| 39 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &14026440 !ruby/object:Gem::Requirement
         | 
| 40 61 | 
             
                none: false
         | 
| 41 62 | 
             
                requirements:
         | 
| 42 63 | 
             
                - - ! '>='
         | 
| @@ -44,10 +65,10 @@ dependencies: | |
| 44 65 | 
             
                    version: '0'
         | 
| 45 66 | 
             
              type: :development
         | 
| 46 67 | 
             
              prerelease: false
         | 
| 47 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *14026440
         | 
| 48 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 70 | 
             
              name: rspec
         | 
| 50 | 
            -
              requirement: & | 
| 71 | 
            +
              requirement: &14023560 !ruby/object:Gem::Requirement
         | 
| 51 72 | 
             
                none: false
         | 
| 52 73 | 
             
                requirements:
         | 
| 53 74 | 
             
                - - ! '>='
         | 
| @@ -55,10 +76,10 @@ dependencies: | |
| 55 76 | 
             
                    version: '0'
         | 
| 56 77 | 
             
              type: :development
         | 
| 57 78 | 
             
              prerelease: false
         | 
| 58 | 
            -
              version_requirements: * | 
| 79 | 
            +
              version_requirements: *14023560
         | 
| 59 80 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 60 81 | 
             
              name: rr
         | 
| 61 | 
            -
              requirement: & | 
| 82 | 
            +
              requirement: &14022040 !ruby/object:Gem::Requirement
         | 
| 62 83 | 
             
                none: false
         | 
| 63 84 | 
             
                requirements:
         | 
| 64 85 | 
             
                - - ! '>='
         | 
| @@ -66,9 +87,10 @@ dependencies: | |
| 66 87 | 
             
                    version: '0'
         | 
| 67 88 | 
             
              type: :development
         | 
| 68 89 | 
             
              prerelease: false
         | 
| 69 | 
            -
              version_requirements: * | 
| 90 | 
            +
              version_requirements: *14022040
         | 
| 70 91 | 
             
            description: Gas is a utility to keep track of your git authors. Add them to gas and
         | 
| 71 | 
            -
              switch at any time. Great if you use one author at work and one at home  | 
| 92 | 
            +
              switch at any time. Great if you use one author at work and one at home or if you
         | 
| 93 | 
            +
              are doing pair programming.  Includes SSH support.
         | 
| 72 94 | 
             
            email: fredrik.wallgren@gmail.com
         | 
| 73 95 | 
             
            executables:
         | 
| 74 96 | 
             
            - gas
         | 
| @@ -80,16 +102,17 @@ files: | |
| 80 102 | 
             
            - bin/gas
         | 
| 81 103 | 
             
            - lib/gas.rb
         | 
| 82 104 | 
             
            - lib/gas/version.rb
         | 
| 105 | 
            +
            - lib/gas/ssh.rb
         | 
| 83 106 | 
             
            - lib/gas/user.rb
         | 
| 84 107 | 
             
            - lib/gas/gitconfig.rb
         | 
| 85 108 | 
             
            - lib/gas/config.rb
         | 
| 86 109 | 
             
            - spec/spec_helper.rb
         | 
| 87 110 | 
             
            - spec/gas/user_spec.rb
         | 
| 111 | 
            +
            - spec/gas/ssh_spec.rb
         | 
| 88 112 | 
             
            - spec/gas/config_spec.rb
         | 
| 89 113 | 
             
            - spec/gas/gitconfig_spec.rb
         | 
| 90 114 | 
             
            - LICENSE
         | 
| 91 115 | 
             
            - README.textile
         | 
| 92 | 
            -
            has_rdoc: true
         | 
| 93 116 | 
             
            homepage: https://github.com/walle/gas
         | 
| 94 117 | 
             
            licenses: []
         | 
| 95 118 | 
             
            post_install_message: 
         | 
| @@ -103,15 +126,21 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 103 126 | 
             
              - - ! '>='
         | 
| 104 127 | 
             
                - !ruby/object:Gem::Version
         | 
| 105 128 | 
             
                  version: '0'
         | 
| 129 | 
            +
                  segments:
         | 
| 130 | 
            +
                  - 0
         | 
| 131 | 
            +
                  hash: 3442034922902480779
         | 
| 106 132 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 107 133 | 
             
              none: false
         | 
| 108 134 | 
             
              requirements:
         | 
| 109 135 | 
             
              - - ! '>='
         | 
| 110 136 | 
             
                - !ruby/object:Gem::Version
         | 
| 111 137 | 
             
                  version: '0'
         | 
| 138 | 
            +
                  segments:
         | 
| 139 | 
            +
                  - 0
         | 
| 140 | 
            +
                  hash: 3442034922902480779
         | 
| 112 141 | 
             
            requirements: []
         | 
| 113 142 | 
             
            rubyforge_project: gas
         | 
| 114 | 
            -
            rubygems_version: 1.6 | 
| 143 | 
            +
            rubygems_version: 1.8.6
         | 
| 115 144 | 
             
            signing_key: 
         | 
| 116 145 | 
             
            specification_version: 3
         | 
| 117 146 | 
             
            summary: Manage your git author accounts
         |