gitswitch 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,10 +1,6 @@
1
1
  ## MAC OS
2
2
  .DS_Store
3
3
 
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
4
  ## PROJECT::GENERAL
9
5
  coverage
10
6
  rdoc
@@ -14,3 +10,4 @@ pkg/*
14
10
  Gemfile.lock
15
11
 
16
12
  ## PROJECT::SPECIFIC
13
+ spec/tmp/.gitswitch
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ - 1.9.3
5
+ - jruby-18mode
6
+ - jruby-19mode
7
+ - rbx-18mode
8
+ - rbx-19mode
9
+ - ruby-head
data/README.rdoc CHANGED
@@ -58,10 +58,14 @@ Update your global .git user instead of your current repository
58
58
  Show your current git user info. If you are in a git repo directory, it will show you the info associated with the current repository. Outside a repo (or if you use the --global option), it will show you the info from your global .git config.
59
59
  # gitswitch info
60
60
 
61
- == What's with all the aliases?
61
+ == What's with all the aliases for each task?
62
62
 
63
63
  I initially wrote the gem using optparse and used the '-r' style params to keep the commands as short as possible. Now, I've decided to lean toward a rake-style descriptive method of passing commands -- which meshes well with the way Thor likes to do things. But the old command line options still work fine in case you got used to it.
64
64
 
65
- == Copyright
65
+ == Recent changes (2012 edition)
66
66
 
67
- Copyright (c) 2010 Joe Alba. See LICENSE for details.
67
+ I've learned a few things, taken some inspiration from David Copeland's "Build Awesome Command-Line Applications in Ruby" book, and stolen the idea of making everything a class method from Hashrocket's hitch gem.
68
+
69
+ In Ruby 1.9, command line argument strings get frozen, which makes gsub! unhappy. I wasn't on 1.9 two years ago, and my tests are far too incomplete for Travis CI to catch this bug. But alas, it is now fixed.
70
+
71
+ I've made the first steps toward returning reasonable exit status codes. A failed git command will not yet throw a proper exit code.
data/lib/gitswitch.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  require 'gitswitch/version'
2
2
  require 'gitswitch/commands'
3
+ require 'gitswitch/git'
3
4
  require 'gitswitch/cli'
4
- #Gitswitch::CLI.start ## If we decide to use Thor
5
-
6
-
data/lib/gitswitch/cli.rb CHANGED
@@ -3,34 +3,36 @@ require 'thor'
3
3
 
4
4
  class Gitswitch
5
5
  class CLI < Thor
6
-
6
+ EXIT_OK = 0
7
+ EXIT_MISSING_INFO = 1
7
8
 
8
9
  ######################################################################
9
10
  desc "init", "Initialize your .gitswitch file"
10
11
  def init
11
12
  if !Gitswitch::gitswitch_file_exists
12
13
  if yes?("Gitswitch users file ~/.gitswitch not found. Would you like to create one? (y/n): ")
13
- Gitswitch::new.create_fresh_gitswitch_file
14
+ Gitswitch.create_fresh_gitswitch_file
14
15
  else
15
16
  puts "Ok, that's fine. Exiting."
16
- exit
17
+ exit EXIT_OK
17
18
  end
18
19
  else
19
20
  if yes?("Gitswitch users file ~/.gitswitch already exists. Would you like to wipe it out and create a fresh one? (y/n): ")
20
- Gitswitch::new.create_fresh_gitswitch_file
21
+ Gitswitch.create_fresh_gitswitch_file
21
22
  end
22
23
  end
23
24
 
24
25
  # Grab the current global info to drop into the default slot -- if available
25
- user = Gitswitch::get_git_user_info({:global => true})
26
+ user = Gitswitch.get_git_user_info({:global => true})
26
27
  if user[:name].empty? && user[:email].empty?
27
28
  puts "No global git user.name and user.email configurations were found. Set up a default now."
28
29
  add('default')
29
30
  else
30
31
  puts "Adding your global .gitconfig user info to the \"default\" tag..."
31
- Gitswitch::new.set_gitswitch_entry('default', user[:email], user[:name])
32
+ Gitswitch.set_gitswitch_entry('default', user[:email], user[:name])
32
33
  end
33
34
 
35
+ exit EXIT_OK
34
36
  end
35
37
 
36
38
 
@@ -39,6 +41,7 @@ class Gitswitch
39
41
  map ["-v","--version"] => :version
40
42
  def version
41
43
  puts Gitswitch::VERSION
44
+ exit EXIT_OK
42
45
  end
43
46
 
44
47
 
@@ -48,6 +51,7 @@ class Gitswitch
48
51
  method_option :global, :type => :boolean
49
52
  def info
50
53
  puts Gitswitch.current_user_info(options)
54
+ exit EXIT_OK
51
55
  end
52
56
 
53
57
 
@@ -55,7 +59,8 @@ class Gitswitch
55
59
  desc "list", "Show all the git user tags you have configured"
56
60
  map ["-l","--list"] => :list
57
61
  def list
58
- puts Gitswitch.new.list_users
62
+ puts Gitswitch.list_users
63
+ exit EXIT_OK
59
64
  end
60
65
 
61
66
 
@@ -65,8 +70,9 @@ class Gitswitch
65
70
  method_option :global, :type => :boolean, :aliases => ["-s","--global"] ## To support the deprecated behavior
66
71
  method_option :repository, :type => :boolean, :aliases => "-r"
67
72
  def switch(tag = 'default')
68
- options[:global] ? global(tag) : Gitswitch.new.switch_repo_user(tag)
73
+ options[:global] ? global(tag) : Gitswitch.switch_repo_user(tag)
69
74
  puts Gitswitch.current_user_info(options)
75
+ exit EXIT_OK
70
76
  end
71
77
 
72
78
 
@@ -74,7 +80,8 @@ class Gitswitch
74
80
  desc "global [TAG]", "Switch global git user (your ~/.gitconfig file)"
75
81
  map "-s" => :global
76
82
  def global(tag = 'default')
77
- Gitswitch.new.switch_global_user(tag)
83
+ Gitswitch.switch_global_user(tag)
84
+ exit EXIT_OK
78
85
  end
79
86
 
80
87
 
@@ -82,19 +89,19 @@ class Gitswitch
82
89
  desc "add [TAG]", "Add a new tagged user entry"
83
90
  map ["-a","--add"] => :add
84
91
  def add(tag = '')
85
- gs = Gitswitch.new
86
-
87
- tag.gsub!(/\W+/,'')
92
+ # tag.gsub!(/\W+/,'') ## ARGV gets frozen, so gsub! will throw an error.
93
+ tag = tag.gsub(/\W+/,'')
88
94
  tag = ask("Enter a tag to describe this git user entry: ").gsub(/\W+/,'') if (tag.nil? || tag.empty?)
89
95
 
90
96
  if tag.empty?
91
97
  puts "You must enter a short tag to describe the git user entry you would like to save."
92
- exit
98
+ exit EXIT_MISSING_INFO
93
99
  end
94
100
 
95
101
  puts "Adding a new gitswitch user entry for tag '#{tag}'"
96
102
  (email, name) = prompt_for_email_and_name
97
- gs.set_gitswitch_entry(tag, email, name)
103
+ Gitswitch.set_gitswitch_entry(tag, email, name)
104
+ exit EXIT_OK
98
105
  end
99
106
 
100
107
 
@@ -102,33 +109,32 @@ class Gitswitch
102
109
  desc "update [TAG]", "Update a tagged user entry"
103
110
  map ["-o","--overwrite"] => :add
104
111
  def update(tag = '')
105
- gs = Gitswitch.new
106
- tag_table = gs.get_tag_display
112
+ tag_table = Gitswitch.get_tag_display
107
113
 
108
- tag.gsub!(/\W+/,'')
114
+ tag = tag.gsub(/\W+/,'')
109
115
  if (tag.nil? || tag.empty?)
110
116
  tag = ask("Which tag would you like to update: \n#{tag_table}").gsub(/\W+/,'')
111
117
  end
112
118
 
113
119
  puts "Updating #{tag} entry..."
114
120
  (email, name) = prompt_for_email_and_name
115
- Gitswitch.new.set_gitswitch_entry(tag, email, name)
121
+ Gitswitch.set_gitswitch_entry(tag, email, name)
122
+ exit EXIT_OK
116
123
  end
117
124
 
118
125
 
119
126
  ######################################################################
120
127
  desc "delete [TAG]", "Delete a tagged user entry"
121
128
  def delete(tag = '')
122
- gs = Gitswitch.new
123
-
124
- tag_table = gs.get_tag_display
129
+ tag_table = Gitswitch.get_tag_display
125
130
 
126
- tag.gsub!(/\W+/,'')
131
+ tag = tag.gsub(/\W+/,'')
127
132
  if (tag.nil? || tag.empty?)
128
133
  tag = ask("Which tag would you like to delete: \n#{tag_table}").gsub(/\W+/,'')
129
134
  end
130
135
 
131
- Gitswitch.new.delete_gitswitch_entry(tag)
136
+ Gitswitch.delete_gitswitch_entry(tag)
137
+ exit EXIT_OK
132
138
  end
133
139
 
134
140
 
@@ -140,8 +146,7 @@ class Gitswitch
140
146
  email = ask(" E-mail address: ").chomp
141
147
  ## TODO: Validate e-mail
142
148
  if email.nil?
143
- puts "No name provided"
144
- exit
149
+ puts "No e-mail address provided"
145
150
  end
146
151
 
147
152
  name = ask(" Name: (ENTER to use \"" + Gitswitch::get_git_user_info({:global => true})[:name] + "\") ").chomp
@@ -149,7 +154,6 @@ class Gitswitch
149
154
 
150
155
  if name.nil?
151
156
  puts "No name provided"
152
- exit
153
157
  end
154
158
 
155
159
  return [email, name]
@@ -1,45 +1,42 @@
1
1
  require 'yaml'
2
- require 'shellwords' if !String.new.methods.include?('shellescape')
3
-
4
2
 
5
3
  class Gitswitch
6
- GITSWITCH_CONFIG_FILE = File.join ENV["HOME"], ".gitswitch"
7
- GIT_BIN = '/usr/bin/env git'
8
-
9
- attr_reader :users
10
-
4
+ def self.gitswitch_config_file
5
+ ENV['GITSWITCH_CONFIG_FILE'] || File.join(ENV["HOME"], ".gitswitch")
6
+ end
11
7
 
12
8
  ##############################################################
13
- def initialize
14
- @users = {}
9
+ def self.users
10
+ @users ||= load_users
11
+ end
12
+
13
+ def self.load_users
14
+ user_hash = {}
15
15
  if Gitswitch::gitswitch_file_exists
16
- @users = YAML::load_file GITSWITCH_CONFIG_FILE
17
- if @users.nil?
18
- puts "Error loading .gitswitch file. Delete the file and start fresh."
19
- exit
20
- end
16
+ user_hash = YAML::load_file gitswitch_config_file
21
17
  end
18
+ user_hash
22
19
  end
23
-
24
20
 
25
- ##############################################################
26
- # Create a .gitswitch file with the current user defaults
27
- def create_fresh_gitswitch_file
28
- @users = {}
29
- save_gitswitch_file
21
+ ## Create a .gitswitch file with the current user defaults
22
+ def self.create_fresh_gitswitch_file
23
+ save_gitswitch_file({})
30
24
  end
31
25
 
32
26
  def self.gitswitch_file_exists
33
- File.exists? GITSWITCH_CONFIG_FILE
27
+ File.exists? gitswitch_config_file
34
28
  end
35
29
 
36
- def save_gitswitch_file
37
- if fh = File.open(GITSWITCH_CONFIG_FILE, 'w')
38
- fh.write(@users.to_yaml)
39
- fh.close
40
- else
41
- puts "ERROR: Could not open/write the gitswitch config file: #{GITSWITCH_CONFIG_FILE}"
30
+ def self.save_gitswitch_file(users_hash)
31
+ begin
32
+ File.open(gitswitch_config_file, 'w') do |fh|
33
+ fh.write(users_hash.to_yaml)
34
+ end
35
+ rescue
36
+ warn "ERROR: Could not open/write the gitswitch config file: #{gitswitch_config_file}: #{$!}"
37
+ exit
42
38
  end
39
+ @users = nil
43
40
  end
44
41
 
45
42
 
@@ -49,39 +46,40 @@ class Gitswitch
49
46
  # * +tag+ - Required. The tag you want to add to your .gitswitch file
50
47
  # * +email+ - Required
51
48
  # * +name+ - Required
52
- def set_gitswitch_entry(tag, email, name)
53
- @users[tag] = {:name => name, :email => email}
54
- save_gitswitch_file
49
+ def self.set_gitswitch_entry(tag, email, name)
50
+ users[tag] = {:name => name, :email => email}
51
+ save_gitswitch_file(users)
55
52
  end
56
53
 
57
- def delete_gitswitch_entry(tag)
54
+ def self.delete_gitswitch_entry(tag)
58
55
  if tag == 'default'
59
56
  puts "Cannot delete the default tag. Use the update command instead"
60
57
  exit
61
58
  end
62
- @users.delete(tag)
63
- save_gitswitch_file
59
+ users.delete(tag)
60
+ save_gitswitch_file(users)
64
61
  end
65
62
 
66
- def get_user(tag)
67
- if !@users.empty? && @users[tag] && !@users[tag].empty?
68
- @users[tag]
63
+ def self.get_user(tag)
64
+ ## TODO: Stop coding so defensively.
65
+ if !users.empty? && users[tag] && !users[tag].empty?
66
+ users[tag]
69
67
  end
70
68
  end
71
69
 
72
- def get_tags
73
- @users.keys
70
+ def self.get_tags
71
+ users.keys
74
72
  end
75
73
 
76
- def get_tag_display
77
- max_length = @users.keys.sort{|x,y| y.length <=> x.length }.first.length
78
- @users.each_pair.map {|key,value| sprintf(" %#{max_length}s %s\n", key, value[:email]) }
74
+ def self.get_tag_display
75
+ max_length = users.keys.sort{|x,y| y.length <=> x.length }.first.length
76
+ users.each_pair.map {|key,value| sprintf(" %#{max_length}s %s\n", key, value[:email]) }
79
77
  end
80
78
 
81
- def list_users
79
+ def self.list_users
82
80
  response = ''
83
81
  response << "\nCurrent git user options --\n"
84
- @users.each do |key, user|
82
+ users.each do |key, user|
85
83
  response << "#{key}:\n"
86
84
  response << " Name: #{user[:name]}\n" if !user[:name].to_s.empty?
87
85
  response << " E-mail: #{user[:email]}\n\n"
@@ -99,26 +97,12 @@ class Gitswitch
99
97
  response
100
98
  end
101
99
 
102
- def self.in_a_git_repo
103
- %x(#{GIT_BIN} status 2>&1 | head -n 1).to_s =~ /^fatal/i ? false : true
104
- end
105
-
106
-
107
- ##############################################################
108
- def git_config(user, options = {})
109
- git_args = 'config --replace-all'
110
- git_args += ' --global' if options[:global]
111
-
112
- %x(#{GIT_BIN} #{git_args} user.email #{user[:email].to_s.shellescape})
113
- %x(#{GIT_BIN} #{git_args} user.name #{user[:name].to_s.shellescape}) if !user[:name].to_s.empty?
114
- end
115
-
116
100
 
117
101
  ##############################################################
118
102
  # Switch git user in your global .gitconfig file
119
103
  # ==== Parameters
120
104
  # * +tag+ - The tag associated with your desired git info in .gitswitch. Defaults to "default".
121
- def switch_global_user tag = "default"
105
+ def self.switch_global_user(tag = "default")
122
106
  if user = get_user(tag)
123
107
  puts "Switching your .gitconfig user info to \"#{tag}\" tag (#{user[:name]} <#{user[:email]}>)."
124
108
  git_config(user, {:global => true})
@@ -128,11 +112,11 @@ class Gitswitch
128
112
  end
129
113
 
130
114
 
115
+ ##############################################################
131
116
  # Set the git user information for current repository
132
117
  # ==== Parameters
133
118
  # * +tag+ - The tag associated with your desired git info in .gitswitch. Defaults to "default".
134
- def switch_repo_user(tag = "default")
135
- ## TODO: See if we're actually in a git repo
119
+ def self.switch_repo_user(tag = "default")
136
120
  if !Gitswitch::in_a_git_repo
137
121
  puts "You do not appear to currently be in a git repository directory"
138
122
  false
@@ -147,18 +131,18 @@ class Gitswitch
147
131
  end
148
132
 
149
133
 
150
-
151
- private
134
+ ##############################################################
135
+ # TODO: Straight delegation through to Gitswitch::Git
136
+ def self.in_a_git_repo
137
+ Gitswitch::Git.in_a_git_repo
138
+ end
139
+
140
+ def self.git_config(user, options = {})
141
+ Gitswitch::Git.git_config(user, options)
142
+ end
152
143
 
153
- # Show the current git user info
154
144
  def self.get_git_user_info(options = {})
155
- git_args = 'config --get'
156
- git_args += ' --global' if options[:global]
157
-
158
- {
159
- :name => %x(#{GIT_BIN} #{git_args} user.name).to_s.chomp,
160
- :email => %x(#{GIT_BIN} #{git_args} user.email).to_s.chomp
161
- }
145
+ Gitswitch::Git.get_git_user_info(options)
162
146
  end
163
147
 
164
148
  end
@@ -0,0 +1,34 @@
1
+ require 'shellwords' if !String.new.methods.include?('shellescape')
2
+
3
+ class Gitswitch
4
+ class Git
5
+ GIT_BIN = '/usr/bin/env git'
6
+
7
+ def self.version
8
+ %x(#{GIT_BIN} --version).to_s.gsub(/^git version\s*/, '')
9
+ end
10
+
11
+ def self.in_a_git_repo
12
+ %x(#{GIT_BIN} status 2>&1 | head -n 1).to_s =~ /^fatal/i ? false : true
13
+ end
14
+
15
+ def self.git_config(user, options = {})
16
+ git_args = 'config --replace-all'
17
+ git_args += ' --global' if options[:global]
18
+
19
+ %x(#{GIT_BIN} #{git_args} user.email #{user[:email].to_s.shellescape})
20
+ %x(#{GIT_BIN} #{git_args} user.name #{user[:name].to_s.shellescape}) if !user[:name].to_s.empty?
21
+ end
22
+
23
+ def self.get_git_user_info(options = {})
24
+ git_args = 'config --get'
25
+ git_args += ' --global' if options[:global]
26
+
27
+ {
28
+ :name => %x(#{GIT_BIN} #{git_args} user.name).to_s.chomp,
29
+ :email => %x(#{GIT_BIN} #{git_args} user.email).to_s.chomp
30
+ }
31
+ end
32
+
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  class Gitswitch
2
- VERSION = "0.3.2"
2
+ VERSION = "0.4.0"
3
3
  end
data/spec/git_spec.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Gitswitch::Git do
4
+ it "should find the git executable" do
5
+ result = %x[#{Gitswitch::Git::GIT_BIN} --version]
6
+ $?.exitstatus.should == 0
7
+ end
8
+
9
+ it "should grab the local git version" do
10
+ Gitswitch::Git.version.should =~ /^\d+\.+\d+/ # Should start off looking like a version number
11
+ end
12
+
13
+ end
@@ -6,63 +6,58 @@ describe Gitswitch do
6
6
  it "should have a VERSION" do
7
7
  Gitswitch::VERSION.should_not == ''
8
8
  end
9
-
10
- it "should find the git executable" do
11
- result = %x[#{Gitswitch::GIT_BIN} --version]
12
- $?.exitstatus.should == 0
13
- end
14
9
  end
15
10
 
16
-
17
11
  describe "read-only" do
18
- it "should show the current git user credentials" do
19
- Gitswitch.current_user_info.should =~ /^Your git user/
20
- end
21
12
  it "should show the current list of available gitswitch tags" do
22
- pending
13
+
23
14
  end
24
15
  end
25
16
 
26
-
27
17
  describe "write methods" do
18
+ before :each do
19
+ Gitswitch.create_fresh_gitswitch_file
20
+ end
28
21
 
29
- it "should allow you to add a new user entry" do
30
- pending
22
+ it "should allow you to add a new user entry" do
23
+ initial_user_count = Gitswitch.users.keys.count
24
+ set_test_entry
25
+ Gitswitch.users.keys.count.should be > initial_user_count
31
26
  end
32
27
 
33
28
  it "should allow you to update a user entry" do
34
- pending
29
+ set_test_entry
30
+ test_entry = get_test_entry
31
+ Gitswitch.set_gitswitch_entry(test_entry[0], 'testing@test.com', test_entry[2])
32
+ Gitswitch.get_user(test_entry[0])[:email].should eq('testing@test.com')
33
+ Gitswitch.get_user(test_entry[0])[:name].should eq(test_entry[2])
35
34
  end
36
35
 
37
36
  it "should allow you to delete a user entry" do
38
- pending
37
+ set_test_entry
38
+ Gitswitch.delete_gitswitch_entry(get_test_entry[0])
39
+ Gitswitch.users.keys.count.should == 0
39
40
  end
40
41
 
41
42
  it "should allow you to overwrite the current .gitswitch file and start fresh" do
42
- pending
43
+ set_test_entry
44
+ Gitswitch.create_fresh_gitswitch_file
45
+ Gitswitch.users.keys.count.should == 0
43
46
  end
44
47
 
45
48
  end
46
49
 
47
50
 
48
- describe "git proxy methods" do
49
-
50
- it "should allow you to change the global git user credentials" do
51
+ describe "weird outlier cases" do
52
+ it "in a git repo directory with no user info specified, show the global config header and user info" do
51
53
  pending
52
54
  end
53
-
54
- it "should allow you to change a specific repository's user credentials" do
55
- pending
56
- end
57
55
  end
58
56
 
59
57
 
60
- describe "weird outlier cases" do
61
-
62
- it "in a git repo directory with no user info specified, show the global config header and user info" do
63
- pending
64
- end
65
-
58
+ it "should show the current git user credentials" do
59
+ Gitswitch.current_user_info.should =~ /^Your git user/
66
60
  end
67
61
 
62
+
68
63
  end
data/spec/spec_helper.rb CHANGED
@@ -8,5 +8,14 @@ Bundler.setup
8
8
 
9
9
 
10
10
  RSpec.configure do |c|
11
+ end
12
+
13
+ ENV['GITSWITCH_CONFIG_FILE'] = File.join(File.dirname(__FILE__), 'tmp', '.gitswitch')
11
14
 
15
+ def get_test_entry
16
+ ['test','test@null.com', 'A. Tester']
12
17
  end
18
+
19
+ def set_test_entry
20
+ Gitswitch.set_gitswitch_entry(*get_test_entry)
21
+ end
data/spec/tmp/.gitkeep ADDED
File without changes
metadata CHANGED
@@ -1,82 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gitswitch
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 2
10
- version: 0.3.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Joe Alba
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-09-27 00:00:00 -04:00
19
- default_executable: gitswitch
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2010-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rake
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: thor
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
39
25
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: thor
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: rspec
51
39
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
53
41
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 27
58
- segments:
59
- - 2
60
- - 5
61
- - 0
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rspec
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
62
53
  version: 2.5.0
63
54
  type: :development
64
- version_requirements: *id003
65
- description: Easily switch your git name/e-mail user info -- Handy for work vs. personal and for pair programming
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.5.0
62
+ description: Easily switch your git name/e-mail user info -- Handy for work vs. personal
63
+ and for pair programming
66
64
  email: joe@joealba.com
67
- executables:
65
+ executables:
68
66
  - gitswitch
69
67
  extensions: []
70
-
71
- extra_rdoc_files:
68
+ extra_rdoc_files:
72
69
  - LICENSE
73
70
  - README.rdoc
74
- files:
71
+ files:
75
72
  - .bundle/config
76
73
  - .document
77
74
  - .gemtest
78
75
  - .gitignore
79
76
  - .rspec
77
+ - .travis.yml
80
78
  - Gemfile
81
79
  - LICENSE
82
80
  - README.rdoc
@@ -86,43 +84,39 @@ files:
86
84
  - lib/gitswitch.rb
87
85
  - lib/gitswitch/cli.rb
88
86
  - lib/gitswitch/commands.rb
87
+ - lib/gitswitch/git.rb
89
88
  - lib/gitswitch/version.rb
89
+ - spec/git_spec.rb
90
90
  - spec/gitswitch_spec.rb
91
91
  - spec/spec_helper.rb
92
- has_rdoc: true
92
+ - spec/tmp/.gitkeep
93
93
  homepage: http://github.com/joealba/gitswitch
94
94
  licenses: []
95
-
96
95
  post_install_message:
97
- rdoc_options:
96
+ rdoc_options:
98
97
  - --charset=UTF-8
99
- require_paths:
98
+ require_paths:
100
99
  - lib
101
- required_ruby_version: !ruby/object:Gem::Requirement
100
+ required_ruby_version: !ruby/object:Gem::Requirement
102
101
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
107
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
119
112
  requirements: []
120
-
121
113
  rubyforge_project:
122
- rubygems_version: 1.5.2
114
+ rubygems_version: 1.8.23
123
115
  signing_key:
124
116
  specification_version: 3
125
117
  summary: Easy git user switching
126
- test_files:
118
+ test_files:
119
+ - spec/git_spec.rb
127
120
  - spec/gitswitch_spec.rb
128
121
  - spec/spec_helper.rb
122
+ - spec/tmp/.gitkeep