pair_see 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4468520de0bab522937f9add129ee9fcc5139248
4
- data.tar.gz: fc21650e37c36b1c981458e7b9706309bb958fb9
3
+ metadata.gz: 91867b4aa809ce97b3d2ebd3c89d4f63bcc4235d
4
+ data.tar.gz: 810cb42dcf300ae3d17b3fc5de02b130a8a1b865
5
5
  SHA512:
6
- metadata.gz: 3fc1a18cc03c97cc058020114b6a9e8dfb6a82cc1829726d1f56e750870067a64a198466b7102521a542a6fb8241aaf5e750a5cc4cbc5a49aeadb16b1b809821
7
- data.tar.gz: 8b26eacc964788b574231ab8e6be2cc5521a3b38bd3bdb45b3aba484fdac7ecae6a4436a9efd1dde8cd85a83a0da643837cd03378c74c6150f05312325122172
6
+ metadata.gz: fb5a8d573a3938fc02cc839d10358b74a09e4016a2bacad1bf9344944626ab218b32bbe64aeb9ecacd89d2efdd79bb153d94d5240ae1d24e73b0c8e15943e70d
7
+ data.tar.gz: 4589340a27248139639bc0693feb6a395cd5ee5a26d97247e0bf855a64dd809e670edabdc2aa10c1408d1d9d1da22b743e3cdbac9b235127c9db27912c2a1ff3
data/.gitignore CHANGED
@@ -9,4 +9,5 @@ config/config.yml
9
9
  /pkg/
10
10
  /spec/reports/
11
11
  /tmp/
12
- .DS_Store
12
+ .DS_Store
13
+ pair_see*.gem
data/Gemfile.lock CHANGED
@@ -2,9 +2,9 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  pair_see (0.1.0)
5
- git
6
- trollop
7
- yamler
5
+ git (~> 1.2)
6
+ trollop (~> 2.0)
7
+ yamler (~> 0.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
@@ -49,17 +49,17 @@ GEM
49
49
  multi_json (~> 1.0)
50
50
  simplecov-html (~> 0.9.0)
51
51
  simplecov-html (0.9.0)
52
- trollop (2.1.1)
52
+ trollop (2.1.2)
53
53
  yamler (0.1.0)
54
54
 
55
55
  PLATFORMS
56
56
  ruby
57
57
 
58
58
  DEPENDENCIES
59
- bundler
60
- codeclimate-test-reporter
59
+ bundler (~> 1.8)
60
+ codeclimate-test-reporter (~> 0.4.7)
61
61
  pair_see!
62
- rake
63
- rake_commit
64
- rspec
65
- rubocop
62
+ rake (~> 10.4)
63
+ rake_commit (~> 1.1.0)
64
+ rspec (~> 3.2)
65
+ rubocop (~> 0.29)
data/bin/pairsee CHANGED
@@ -15,9 +15,9 @@ opts = Trollop.options do
15
15
  end
16
16
 
17
17
  def run_command(opts)
18
- log_lines = LogLines.new(opts[:root], opts[:after])
18
+ log_lines = PairSee::LogLines.new(opts[:root], opts[:after])
19
19
 
20
- pair_see = Seer.new(log_lines, opts[:config])
20
+ pair_see = PairSee::Seer.new(log_lines, opts[:config])
21
21
  if opts[:extras]
22
22
  pair_see.commits_not_by_known_pair
23
23
  elsif opts[:latest]
data/lib/pair_see/card.rb CHANGED
@@ -1,18 +1,20 @@
1
- class Card
2
- attr_reader :card_name, :number_of_commits
1
+ module PairSee
2
+ class Card
3
+ attr_reader :card_name, :number_of_commits
3
4
 
4
- def initialize(card_name, number_of_commits, first_date, last_date)
5
- @card_name = card_name
6
- @number_of_commits = number_of_commits
7
- @first_date, @last_date = first_date, last_date
8
- end
5
+ def initialize(card_name, number_of_commits, first_date, last_date)
6
+ @card_name = card_name
7
+ @number_of_commits = number_of_commits
8
+ @first_date, @last_date = first_date, last_date
9
+ end
9
10
 
10
- def duration
11
- (@first_date - @last_date).to_i + 1
12
- end
11
+ def duration
12
+ (@first_date - @last_date).to_i + 1
13
+ end
13
14
 
14
- def ==(other)
15
- card_name == other.card_name
16
- number_of_commits == other.number_of_commits
17
- end
15
+ def ==(other)
16
+ card_name == other.card_name
17
+ number_of_commits == other.number_of_commits
18
+ end
19
+ end
18
20
  end
@@ -1,15 +1,17 @@
1
- class Combo
2
- attr_reader :count, :devs
1
+ module PairSee
2
+ class Combo
3
+ attr_reader :count, :devs
3
4
 
4
- def initialize(count, *devs)
5
- @count, @devs = count, devs
6
- end
5
+ def initialize(count, *devs)
6
+ @count, @devs = count, devs
7
+ end
7
8
 
8
- def to_s
9
- "#{devs.join ', '}: #{count}"
10
- end
9
+ def to_s
10
+ "#{devs.join ', '}: #{count}"
11
+ end
11
12
 
12
- def empty?
13
- count == 0
14
- end
13
+ def empty?
14
+ count == 0
15
+ end
16
+ end
15
17
  end
@@ -1,27 +1,29 @@
1
- class DateCombo
2
- attr_reader :date, :devs
1
+ module PairSee
2
+ class DateCombo
3
+ attr_reader :date, :devs
3
4
 
4
- def initialize(date, *devs)
5
- @date, @devs = date, devs
6
- end
5
+ def initialize(date, *devs)
6
+ @date, @devs = date, devs
7
+ end
7
8
 
8
- def to_s
9
- if date.nil?
10
- "#{devs.join ', '}: not yet"
11
- else
12
- "#{devs.join ', '}: #{date}"
9
+ def to_s
10
+ if date.nil?
11
+ "#{devs.join ', '}: not yet"
12
+ else
13
+ "#{devs.join ', '}: #{date}"
14
+ end
13
15
  end
14
- end
15
16
 
16
- def <=>(other)
17
- if date && other.date
18
- date <=> other.date
19
- elsif date
20
- 1
21
- elsif other.date
22
- -1
23
- else
24
- 0
17
+ def <=>(other)
18
+ if date && other.date
19
+ date <=> other.date
20
+ elsif date
21
+ 1
22
+ elsif other.date
23
+ -1
24
+ else
25
+ 0
26
+ end
25
27
  end
26
28
  end
27
29
  end
@@ -1,54 +1,56 @@
1
- require 'time'
2
- class LogLine
3
- attr_reader :line
1
+ module PairSee
2
+ class LogLine
3
+ require 'time'
4
+ attr_reader :line
4
5
 
5
- def initialize(line)
6
- @line = line
7
- end
6
+ def initialize(line)
7
+ @line = line
8
+ end
8
9
 
9
- def authored_by?(*people)
10
- people.empty? ? false : people.all? do |person|
11
- /(^|\s+|\W)#{person}(\s+|$|\W)/i =~ line
10
+ def authored_by?(*people)
11
+ people.empty? ? false : people.all? do |person|
12
+ /(^|\s+|\W)#{person}(\s+|$|\W)/i =~ line
13
+ end
12
14
  end
13
- end
14
15
 
15
- def contains_card?(card_prefix)
16
- line.match(card_prefix)
17
- end
16
+ def contains_card?(card_prefix)
17
+ line.match(card_prefix)
18
+ end
18
19
 
19
- def contains_card_name?(card_name)
20
- git_regex = /#{card_name}[\]\s\[,:]/
21
- git_matcher = line.match(git_regex)
22
- !git_matcher.nil?
23
- end
20
+ def contains_card_name?(card_name)
21
+ git_regex = /#{card_name}[\]\s\[,:]/
22
+ git_matcher = line.match(git_regex)
23
+ !git_matcher.nil?
24
+ end
24
25
 
25
- def card_name(card_prefix)
26
- regex = /(#{card_prefix}\d+)/
27
- matcher = line.match(regex)
28
- matcher.nil? ? nil : (line.match regex)[1]
29
- end
26
+ def card_name(card_prefix)
27
+ regex = /(#{card_prefix}\d+)/
28
+ matcher = line.match(regex)
29
+ matcher.nil? ? nil : (line.match regex)[1]
30
+ end
30
31
 
31
- def card_number(card_prefix)
32
- card_num = card_name(card_prefix)
33
- card_num ? card_num.gsub(card_prefix, '') : nil
34
- end
32
+ def card_number(card_prefix)
33
+ card_num = card_name(card_prefix)
34
+ card_num ? card_num.gsub(card_prefix, '') : nil
35
+ end
35
36
 
36
- def merge_commit?
37
- line.match('Merge remote-tracking branch') || line.match('Merge branch')
38
- end
37
+ def merge_commit?
38
+ line.match('Merge remote-tracking branch') || line.match('Merge branch')
39
+ end
39
40
 
40
- def date
41
- regex = /(\d{4}-\d{2}-\d{2})/
42
- matcher = line.match(regex)
43
- part_to_parse = matcher.nil? ? '' : (line.match regex)[1]
44
- Date.parse(part_to_parse)
45
- end
41
+ def date
42
+ regex = /(\d{4}-\d{2}-\d{2})/
43
+ matcher = line.match(regex)
44
+ part_to_parse = matcher.nil? ? '' : (line.match regex)[1]
45
+ Date.parse(part_to_parse)
46
+ end
46
47
 
47
- def not_by_pair?(devs)
48
- devs.any? { |dev| authored_by?(dev) || merge_commit? }
49
- end
48
+ def not_by_pair?(devs)
49
+ devs.any? { |dev| authored_by?(dev) || merge_commit? }
50
+ end
50
51
 
51
- def to_s
52
- line
52
+ def to_s
53
+ line
54
+ end
53
55
  end
54
56
  end
@@ -1,49 +1,51 @@
1
- require_relative 'log_line'
2
- require 'git'
1
+ module PairSee
2
+ class LogLines
3
+ require_relative 'log_line'
4
+ require 'git'
3
5
 
4
- class LogLines
5
- include Enumerable
6
+ include Enumerable
6
7
 
7
- def initialize(git_home, date_string)
8
- @lines = _lines_from(git_home, date_string)
9
- end
8
+ def initialize(git_home, date_string)
9
+ @lines = _lines_from(git_home, date_string)
10
+ end
10
11
 
11
- def _lines_from(git_home, date_string)
12
- g = Git.open(git_home)
13
- g.log.since(date_string).map do |l|
14
- LogLine.new("#{l.date} #{l.message}")
12
+ def _lines_from(git_home, date_string)
13
+ g = Git.open(git_home)
14
+ g.log.since(date_string).map do |l|
15
+ LogLine.new("#{l.date} #{l.message}")
16
+ end
15
17
  end
16
- end
17
18
 
18
- def each(&block)
19
- lines.each &block
20
- end
19
+ def each(&block)
20
+ lines.each &block
21
+ end
21
22
 
22
- def last
23
- lines.last
24
- end
23
+ def last
24
+ lines.last
25
+ end
25
26
 
26
- def active?(dev)
27
- any? do |log_line|
28
- log_line.authored_by?(dev)
27
+ def active?(dev)
28
+ any? do |log_line|
29
+ log_line.authored_by?(dev)
30
+ end
29
31
  end
30
- end
31
32
 
32
- def commits_for_pair(person1, person2)
33
- select { |log_line| log_line.authored_by?(person1, person2) }
34
- end
33
+ def commits_for_pair(person1, person2)
34
+ select { |log_line| log_line.authored_by?(person1, person2) }
35
+ end
35
36
 
36
- def commits_not_by_known_pair(devs)
37
- reject { |log_line| log_line.not_by_pair? devs }
38
- end
37
+ def commits_not_by_known_pair(devs)
38
+ reject { |log_line| log_line.not_by_pair? devs }
39
+ end
39
40
 
40
- def solo_commits(devs, dev)
41
- select do |log_line|
42
- log_line.authored_by?(dev) && (devs - [dev]).none? { |d| log_line.authored_by?(d) }
41
+ def solo_commits(devs, dev)
42
+ select do |log_line|
43
+ log_line.authored_by?(dev) && (devs - [dev]).none? { |d| log_line.authored_by?(d) }
44
+ end
43
45
  end
44
- end
45
46
 
46
- private
47
+ private
47
48
 
48
- attr_reader :lines
49
+ attr_reader :lines
50
+ end
49
51
  end
data/lib/pair_see/seer.rb CHANGED
@@ -1,134 +1,136 @@
1
- class Seer
2
- require 'yamler'
3
- require_relative 'combo'
4
- require_relative 'date_combo'
5
- require_relative 'log_lines'
6
- require_relative 'card'
7
-
8
- attr_reader :log_lines, :devs, :dev_pairs, :card_prefix
9
-
10
- def initialize(log_lines, config_file)
11
- @log_lines = log_lines
12
- @devs = active_devs(config_file)
13
- @dev_pairs = devs.combination(2)
14
- @card_prefix = get_card_prefix(config_file)
15
- end
16
-
17
- def cards_per_person
18
- @devs.map do |dev|
19
- { dev => cards_dev_worked_on(log_lines, dev) }
20
- end.inject({}) do |result, element|
21
- result.merge(element)
22
- end.map do |dev_name, cards_worked|
23
- { dev_name => cards_worked.uniq }
24
- end.inject({}) do |result, element|
25
- result.merge(element)
26
- end.map do|dev, cards|
27
- "#{dev}: [#{cards.size} cards] #{cards.sort.join(', ')}"
28
- end
29
- end
30
-
31
- def cards_dev_worked_on(log_lines, dev)
32
- log_lines.select do |log_line|
33
- log_line.authored_by?(dev)
34
- end.map do|log_line|
35
- log_line.card_number(@card_prefix)
36
- end.compact
37
- end
38
-
39
- def pretty_card_data
40
- card_data(card_prefix).map do |card|
41
- "#{card.card_name} - - - commits: #{card.number_of_commits} - - - duration: #{card.duration} days " unless card.nil?
42
- end
43
- end
44
-
45
- def card_data(card_prefix)
46
- card_numbers(card_prefix).map do |card_name|
47
- commits = commits_on_card(card_name)
48
- Card.new(card_name, commits.count, commits.first.date, commits.last.date)
49
- end.sort_by(&:duration).reverse
50
- end
51
-
52
- def commits_on_card(card_name)
53
- log_lines.select { |line| line.contains_card_name?(card_name) }
54
- end
55
-
56
- def card_numbers(card_prefix)
57
- log_lines.select do |line|
58
- line.contains_card?(card_prefix)
59
- end.map do |line|
60
- line.card_name(card_prefix)
61
- end.uniq.compact
62
- end
63
-
64
- def get_card_prefix(config_file)
65
- config = YAML.load_file(config_file)
66
- config['card_prefix']
67
- end
68
-
69
- def active_devs(config_file)
70
- config = YAML.load_file(config_file)
71
- devs_in_config = config['names'].split(' ')
72
- devs_in_config.select do |dev|
73
- is_active(dev)
74
- end
75
- end
76
-
77
- def is_active(dev)
78
- log_lines.active? dev
79
- end
80
-
81
- def pair_commits
82
- dev_pairs.map do |person1, person2|
83
- Combo.new(commits_for_pair(person1, person2).count, person1, person2)
84
- end
85
- end
86
-
87
- def solo_commits
88
- devs.map do |dev|
89
- Combo.new(log_lines.solo_commits(devs, dev).count, dev)
90
- end
91
- end
92
-
93
- def all_commits
94
- (pair_commits + solo_commits).sort_by(&:count).reject(&:empty?).map(&:to_s)
95
- end
96
-
97
- def commits_for_pair(person1, person2)
98
- log_lines.commits_for_pair person1, person2
99
- end
100
-
101
- def commits_not_by_known_pair
102
- log_lines.commits_not_by_known_pair devs
103
- end
104
-
105
- def most_recent_commit_date(person1, person2)
106
- recent_commit = commits_for_pair(person1, person2).sort_by(&:date).first
107
- recent_commit ? recent_commit.date : nil
108
- end
109
-
110
- def all_most_recent_commits
111
- dev_pairs.map do |person1, person2|
112
- DateCombo.new(most_recent_commit_date(person1, person2), person1, person2)
113
- end.sort.reverse.map &:to_s
114
- end
115
-
116
- def recommended_pairings
117
- should_pair = unpaired_in_range
118
- should_pair.empty? ? least_recent_pair : should_pair
119
- end
120
-
121
- def least_recent_pair
122
- devs.select do |dev|
123
- log_lines.last.line.match(dev)
124
- end.join(', ')
125
- end
126
-
127
- def unpaired_in_range
128
- dev_pairs.select do |person1, person2|
129
- most_recent_commit_date(person1, person2).nil?
130
- end.map do |person1, person2|
131
- "#{person1}, #{person2}"
132
- end
133
- end
1
+ module PairSee
2
+ class Seer
3
+ require 'yamler'
4
+ require_relative 'combo'
5
+ require_relative 'date_combo'
6
+ require_relative 'log_lines'
7
+ require_relative 'card'
8
+
9
+ attr_reader :log_lines, :devs, :dev_pairs, :card_prefix
10
+
11
+ def initialize(log_lines, config_file)
12
+ @log_lines = log_lines
13
+ @devs = active_devs(config_file)
14
+ @dev_pairs = devs.combination(2)
15
+ @card_prefix = get_card_prefix(config_file)
16
+ end
17
+
18
+ def cards_per_person
19
+ @devs.map do |dev|
20
+ { dev => cards_dev_worked_on(log_lines, dev) }
21
+ end.inject({}) do |result, element|
22
+ result.merge(element)
23
+ end.map do |dev_name, cards_worked|
24
+ { dev_name => cards_worked.uniq }
25
+ end.inject({}) do |result, element|
26
+ result.merge(element)
27
+ end.map do|dev, cards|
28
+ "#{dev}: [#{cards.size} cards] #{cards.sort.join(', ')}"
29
+ end
30
+ end
31
+
32
+ def cards_dev_worked_on(log_lines, dev)
33
+ log_lines.select do |log_line|
34
+ log_line.authored_by?(dev)
35
+ end.map do|log_line|
36
+ log_line.card_number(@card_prefix)
37
+ end.compact
38
+ end
39
+
40
+ def pretty_card_data
41
+ card_data(card_prefix).map do |card|
42
+ "#{card.card_name} - - - commits: #{card.number_of_commits} - - - duration: #{card.duration} days " unless card.nil?
43
+ end
44
+ end
45
+
46
+ def card_data(card_prefix)
47
+ card_numbers(card_prefix).map do |card_name|
48
+ commits = commits_on_card(card_name)
49
+ Card.new(card_name, commits.count, commits.first.date, commits.last.date)
50
+ end.sort_by(&:duration).reverse
51
+ end
52
+
53
+ def commits_on_card(card_name)
54
+ log_lines.select { |line| line.contains_card_name?(card_name) }
55
+ end
56
+
57
+ def card_numbers(card_prefix)
58
+ log_lines.select do |line|
59
+ line.contains_card?(card_prefix)
60
+ end.map do |line|
61
+ line.card_name(card_prefix)
62
+ end.uniq.compact
63
+ end
64
+
65
+ def get_card_prefix(config_file)
66
+ config = YAML.load_file(config_file)
67
+ config['card_prefix']
68
+ end
69
+
70
+ def active_devs(config_file)
71
+ config = YAML.load_file(config_file)
72
+ devs_in_config = config['names'].split(' ')
73
+ devs_in_config.select do |dev|
74
+ is_active(dev)
75
+ end
76
+ end
77
+
78
+ def is_active(dev)
79
+ log_lines.active? dev
80
+ end
81
+
82
+ def pair_commits
83
+ dev_pairs.map do |person1, person2|
84
+ Combo.new(commits_for_pair(person1, person2).count, person1, person2)
85
+ end
86
+ end
87
+
88
+ def solo_commits
89
+ devs.map do |dev|
90
+ Combo.new(log_lines.solo_commits(devs, dev).count, dev)
91
+ end
92
+ end
93
+
94
+ def all_commits
95
+ (pair_commits + solo_commits).sort_by(&:count).reject(&:empty?).map(&:to_s)
96
+ end
97
+
98
+ def commits_for_pair(person1, person2)
99
+ log_lines.commits_for_pair person1, person2
100
+ end
101
+
102
+ def commits_not_by_known_pair
103
+ log_lines.commits_not_by_known_pair devs
104
+ end
105
+
106
+ def most_recent_commit_date(person1, person2)
107
+ recent_commit = commits_for_pair(person1, person2).sort_by(&:date).first
108
+ recent_commit ? recent_commit.date : nil
109
+ end
110
+
111
+ def all_most_recent_commits
112
+ dev_pairs.map do |person1, person2|
113
+ DateCombo.new(most_recent_commit_date(person1, person2), person1, person2)
114
+ end.sort.reverse.map &:to_s
115
+ end
116
+
117
+ def recommended_pairings
118
+ should_pair = unpaired_in_range
119
+ should_pair.empty? ? least_recent_pair : should_pair
120
+ end
121
+
122
+ def least_recent_pair
123
+ devs.select do |dev|
124
+ log_lines.last.line.match(dev)
125
+ end.join(', ')
126
+ end
127
+
128
+ def unpaired_in_range
129
+ dev_pairs.select do |person1, person2|
130
+ most_recent_commit_date(person1, person2).nil?
131
+ end.map do |person1, person2|
132
+ "#{person1}, #{person2}"
133
+ end
134
+ end
135
+ end
134
136
  end
@@ -1,3 +1,3 @@
1
1
  module PairSee
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/pair_see.rb CHANGED
@@ -1 +1,5 @@
1
1
  require_relative 'pair_see/version.rb'
2
+ require_relative 'pair_see/seer.rb'
3
+
4
+ module PairSee
5
+ end
data/pair_see.gemspec CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ['compiledwrong@gmail.com']
11
11
 
12
12
  spec.summary = 'See metrics about pair programming from the commandline'
13
+ spec.description = 'See commits not by known pair, most recent commits by pairs, recommended pairings, card duration and pairing data, and cards each person has worked on'
13
14
  spec.homepage = 'https://github.com/compwron/pairsee'
14
15
  spec.license = 'MIT'
15
16
 
@@ -18,14 +19,14 @@ Gem::Specification.new do |spec|
18
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
20
  spec.require_paths = ['lib']
20
21
 
21
- spec.add_dependency 'yamler'
22
- spec.add_dependency 'trollop'
23
- spec.add_dependency 'git'
22
+ spec.add_dependency 'yamler', '~> 0.1'
23
+ spec.add_dependency 'trollop', '~> 2.0'
24
+ spec.add_dependency 'git', '~> 1.2'
24
25
 
25
- spec.add_development_dependency 'bundler'
26
- spec.add_development_dependency 'rake'
27
- spec.add_development_dependency 'rspec'
28
- spec.add_development_dependency 'rubocop'
29
- spec.add_development_dependency 'rake_commit'
30
- spec.add_development_dependency 'codeclimate-test-reporter'
26
+ spec.add_development_dependency 'bundler', '~> 1.8'
27
+ spec.add_development_dependency 'rake', '~> 10.4'
28
+ spec.add_development_dependency 'rspec', '~> 3.2'
29
+ spec.add_development_dependency 'rubocop', '~> 0.29'
30
+ spec.add_development_dependency 'rake_commit', '~> 1.1'
31
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.4.7'
31
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pair_see
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - compwron
@@ -14,129 +14,130 @@ dependencies:
14
14
  name: yamler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: trollop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: git
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.8'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.8'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '10.4'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '10.4'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '3.2'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '3.2'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '0.29'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '0.29'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake_commit
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: '1.1'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0'
124
+ version: '1.1'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: codeclimate-test-reporter
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '0'
131
+ version: 0.4.7
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '0'
139
- description:
138
+ version: 0.4.7
139
+ description: See commits not by known pair, most recent commits by pairs, recommended
140
+ pairings, card duration and pairing data, and cards each person has worked on
140
141
  email:
141
142
  - compiledwrong@gmail.com
142
143
  executables: []