src 0.4.0 → 0.5.0

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: dfa034574b19a8beace39413a4022a28b38af997
4
- data.tar.gz: f765c1e1ba1e83d16385b85408de5546b52285a0
3
+ metadata.gz: cbded57c54e70ec9ff4b05f74162cb27aaaf66aa
4
+ data.tar.gz: 0a073d23861b202d1609731fc79bf09d6d7cc1a6
5
5
  SHA512:
6
- metadata.gz: d3ec821745c6461df5cbe1337b959e5cb7f1443a171e57f1fae277b19b31e0fca8cd162efe8c3cc01a7a268183484aa6c2b1562372cfc29eea1ece4ee684166b
7
- data.tar.gz: c7d9c46d14e92a6942df657af4a61dc2df8ef88fee14f97d097be2a9fb071b36a652519a5cab7716ac844570e7956157800ad4b8571f47acb18d33f461369365
6
+ metadata.gz: 5852bfdb8dcf4275db417726b1ab74c37fabc4daa6f1cdb96250b9f25a20b92797e3b9bd432ebaa42e97234c67c9b67be166d7881c95f87f8537411a62815113
7
+ data.tar.gz: 241bb57f0282271f2a3e47201a798d9e347484734f730d8120619365c4889e8605072671bb00648fb360bf3bce964896bd47898f387d31808c7d1d589d43d70d
@@ -2,6 +2,10 @@ module SRC::Git
2
2
  class Branch
3
3
  VERSION_FILE = 'version'
4
4
 
5
+ AHEAD = /# Your branch is ahead/
6
+ BEHIND = /# Your branch is behind/
7
+ DIVERGED = /# Your branch and .* have diverged/
8
+
5
9
  attr_reader :name
6
10
 
7
11
  class << self
@@ -91,6 +95,28 @@ module SRC::Git
91
95
  end
92
96
  end
93
97
 
98
+ def status
99
+ checked_out do
100
+ `git status -uno`.chomp
101
+ end
102
+ end
103
+
104
+ def remote_ahead?
105
+ status =~ AHEAD
106
+ end
107
+
108
+ def remote_behind?
109
+ status =~ BEHIND
110
+ end
111
+
112
+ def remote_diverged?
113
+ status =~ DIVERGED
114
+ end
115
+
116
+ def remote_up_to_date?
117
+ !(remote_diverged? || remote_behind? || remote_ahead?)
118
+ end
119
+
94
120
  def to_s
95
121
  name
96
122
  end
data/lib/src/git.rb CHANGED
@@ -1,5 +1,7 @@
1
- module SRC::Git
2
- def self.fetch
3
- raise 'fetch failed' unless system('git fetch -q')
1
+ module SRC
2
+ module Git
3
+ def self.fetch
4
+ raise 'fetch failed' unless system('git fetch -q')
5
+ end
4
6
  end
5
7
  end
data/lib/src.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'src/git'
2
+
1
3
  module SRC
2
4
  BRANCHES = {
3
5
  master: nil,
@@ -17,13 +19,21 @@ module SRC
17
19
  }
18
20
 
19
21
  def self.check
22
+ SRC::Git.fetch
23
+
20
24
  report = []
25
+
21
26
  branches.each_with_index do |branch, i|
27
+
22
28
  branches[(i + 1)..-1].each do |superset|
23
29
  unless branch.subset_of?(superset)
24
30
  report << "#{branch} should be merged into #{superset}"
25
31
  end
26
32
  end
33
+
34
+ unless branch.remote_up_to_date?
35
+ report << "#{branch} is not up to date with its remote"
36
+ end
27
37
  end
28
38
 
29
39
  if report.empty?
data/version CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: src
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Hartland