pair-salad 0.0.4 → 0.0.5
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/bin/pair +0 -1
- data/lib/pair_salad_runner.rb +81 -0
- metadata +5 -5
- data/Rakefile +0 -2
data/bin/pair
CHANGED
@@ -0,0 +1,81 @@
|
|
1
|
+
class PairSaladRunner
|
2
|
+
EMAIL_PREFIX = "engineers"
|
3
|
+
EMAIL_SUFFIX = "@streamsend.com"
|
4
|
+
|
5
|
+
def run(args)
|
6
|
+
@pair_initials = args.sort
|
7
|
+
|
8
|
+
check_for_git_directory
|
9
|
+
check_for_authors_file
|
10
|
+
|
11
|
+
@authors = parse_authors_from_file
|
12
|
+
|
13
|
+
if @authors.any?
|
14
|
+
git_username = build_username
|
15
|
+
system("git config user.name '#{git_username}'")
|
16
|
+
|
17
|
+
git_email_address = build_email_address
|
18
|
+
system("git config user.email '#{git_email_address}'")
|
19
|
+
|
20
|
+
puts <<-message
|
21
|
+
user.name = #{git_username}
|
22
|
+
user.email = #{git_email_address}
|
23
|
+
message
|
24
|
+
else
|
25
|
+
system("git config --unset user.name")
|
26
|
+
system("git config --unset user.email")
|
27
|
+
|
28
|
+
puts "Unset user.name and user.email"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def check_for_git_directory
|
35
|
+
unless File.exists?(".git")
|
36
|
+
puts "This doesn't look like a git repository."
|
37
|
+
exit 1
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def check_for_authors_file
|
42
|
+
unless File.exists?(".authors")
|
43
|
+
puts <<-message
|
44
|
+
You do not have an .authors file in the repository.
|
45
|
+
Repository needs a file named .authors in the following format:
|
46
|
+
ck Clark Kent
|
47
|
+
bw Bruce Wayne
|
48
|
+
pp Peter Parker
|
49
|
+
message
|
50
|
+
|
51
|
+
exit 1
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def parse_authors_from_file
|
56
|
+
authors = {}
|
57
|
+
File.open('.authors').each_line do |line|
|
58
|
+
initials, name = line.match(/^(\w+)\s+(.*)$/).captures
|
59
|
+
if @pair_initials.include? initials
|
60
|
+
authors[initials] = name
|
61
|
+
end
|
62
|
+
end
|
63
|
+
authors
|
64
|
+
end
|
65
|
+
|
66
|
+
def build_username
|
67
|
+
author_name = ""
|
68
|
+
@pair_initials.each_with_index do |initials, index|
|
69
|
+
if index > 0
|
70
|
+
author_name << " and #{@authors[initials]}"
|
71
|
+
else
|
72
|
+
author_name << @authors[initials]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
author_name
|
76
|
+
end
|
77
|
+
|
78
|
+
def build_email_address
|
79
|
+
"#{EMAIL_PREFIX}+#{@pair_initials.join("+")}#{EMAIL_SUFFIX}"
|
80
|
+
end
|
81
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pair-salad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
|
-
description:
|
46
|
+
description: https://github.com/salbertson/pair-salad
|
47
47
|
email:
|
48
48
|
- salbertson@streamsend.com
|
49
49
|
executables:
|
@@ -51,10 +51,10 @@ executables:
|
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
53
53
|
files:
|
54
|
-
- Rakefile
|
55
54
|
- README.md
|
55
|
+
- lib/pair_salad_runner.rb
|
56
56
|
- bin/pair
|
57
|
-
homepage:
|
57
|
+
homepage: https://github.com/salbertson/pair-salad
|
58
58
|
licenses: []
|
59
59
|
post_install_message:
|
60
60
|
rdoc_options: []
|
@@ -77,5 +77,5 @@ rubyforge_project:
|
|
77
77
|
rubygems_version: 1.8.24
|
78
78
|
signing_key:
|
79
79
|
specification_version: 3
|
80
|
-
summary:
|
80
|
+
summary: Handy gem for adding multiple authors to git commits.
|
81
81
|
test_files: []
|
data/Rakefile
DELETED