gh_compare 0.1.4 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86877317391ee3415a229a9375e59a9e123a071920856f3ea5154d28fa3c86ba
4
- data.tar.gz: 75f5e9d408a90459b5a67f03e436112d5871c60faef29dca712016786252c196
3
+ metadata.gz: b388008432820bed2c4b1a15356d3d891808bc7d1efcbd0fd5658aeac6e600bf
4
+ data.tar.gz: 6688c0cb19acb42a673f9d4c7f9155c27dd754f7b9521c8ce1a313e5a56a5139
5
5
  SHA512:
6
- metadata.gz: '0493f939e0ce4ed7083e35238932d483eeb04c152c9c96b2c6c59a2ccbb2816d200c7496328ab58d22b40fa06f83d203d411f0530a39839b35193485723365bf'
7
- data.tar.gz: ca56c90e1bd6523674b4a8e268478670258521ada18164a8e00437347b77878e85d80ebf8b67a061dcf75043b5a98c7987544d2f9a8997976fda9ae4e9e3c2a7
6
+ metadata.gz: 2f1c806fefef3966209608eb6d26adebe6b34178f1d46258bac72019d1b36892342a05c1b64db2bb49ec99dc0c06f85c41cc1bd6071f69f79a3f1b46af6cb7b6
7
+ data.tar.gz: 78746dde6a70d96f98dad153c1f67fd83cb3f7269800f08fb11d9c174413e150829573e80db3ef43866bf5f069f4e8c768b0cce0fa9800ca0358afc81010d250
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gh_compare (0.1.3)
4
+ gh_compare (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/bin/gh_compare CHANGED
@@ -1,22 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require_relative '../lib/gh_compare'
4
- require 'optparse'
5
- options = {}
6
-
7
- OptionParser.new do |opt|
8
- opt.on('--n=NUM', Integer) { |v| options[:num] = v }
9
- opt.on('--d==V,V', Array) { |v| options[:commits] = v }
10
-
11
- opt.parse!(ARGV)
12
- end
13
-
14
- if options[:num]
15
- compare = GhCompare::CommitCompare.new
16
- puts compare.compare_before(options[:num])
17
- end
18
-
19
- if options[:commits]
20
- compare = GhCompare::CommitCompare.new
21
- puts compare.compare_url(options[:commits][0], options[:commits][1])
22
- end
3
+ require_relative '../lib/gh_compare/exec/commit_compare'
4
+ puts GhCompare::Exec::CommitCompare.new(ARGV).run
@@ -0,0 +1,45 @@
1
+ require 'uri'
2
+
3
+ module GhCompare
4
+ class CommitCompare
5
+ attr_reader :remote_origin
6
+
7
+ def initialize
8
+ @remote_origin = get_remote_origin
9
+ end
10
+
11
+ def remote_url
12
+ remote_url? ? remote_origin.gsub(/\.git$/, '') : ssh_to_url
13
+ end
14
+
15
+ def compare_url(from, to)
16
+ remote_url + "/compare/#{from}...#{to}"
17
+ end
18
+
19
+ def compare_before(num)
20
+ compare_url(head_before(num), head)
21
+ end
22
+
23
+ private
24
+
25
+ def get_remote_origin
26
+ `git config --get remote.origin.url`.strip
27
+ end
28
+
29
+ def remote_url?
30
+ URI.parse(remote_origin).is_a?(URI::HTTP) rescue false
31
+ end
32
+
33
+ def ssh_to_url
34
+ "https://github.com/#{remote_origin.gsub(/git@github.com:/, '').gsub(/\.git$/, '')}"
35
+ end
36
+
37
+ def head
38
+ `git rev-parse HEAD`.strip
39
+ end
40
+
41
+ def head_before(num)
42
+ `git rev-parse HEAD~#{num}`.strip
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,54 @@
1
+ require 'optparse'
2
+ require_relative '../commit_compare'
3
+
4
+ module GhCompare::Exec
5
+ class CommitCompare
6
+ attr_reader :options
7
+
8
+ def initialize(args)
9
+ @options = parse_args(args)
10
+ end
11
+
12
+ def run
13
+ return compare_before if num_arg_passed?
14
+ return compare_url if commit_arg_passed?
15
+ end
16
+
17
+ private
18
+
19
+ def parse_args(args)
20
+ opts = {}
21
+ OptionParser.new do |opt|
22
+ opt.on('--n=NUM', Integer) { |v| opts[:num] = v }
23
+ opt.on('--d==V,V', Array) { |v| opts[:commits] = v }
24
+
25
+ opt.parse!(args)
26
+ end
27
+ opts
28
+ end
29
+
30
+ def num_arg_passed?
31
+ options[:num]
32
+ end
33
+
34
+ def compare_before
35
+ GhCompare::CommitCompare.new.compare_before(options[:num])
36
+ end
37
+
38
+ def commit_arg_passed?
39
+ options[:commits]
40
+ end
41
+
42
+ def compare_url
43
+ GhCompare::CommitCompare.new.compare_url(from_commit, to_commit)
44
+ end
45
+
46
+ def from_commit
47
+ options[:commits][0]
48
+ end
49
+
50
+ def to_commit
51
+ options[:commits][1]
52
+ end
53
+ end
54
+ end
@@ -1,3 +1,3 @@
1
1
  module GhCompare
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
data/lib/gh_compare.rb CHANGED
@@ -1,47 +1,8 @@
1
1
  require 'uri'
2
+ require_relative './gh_compare/commit_compare'
3
+ require_relative './gh_compare/exec/commit_compare'
2
4
 
3
5
  module GhCompare
4
6
  class Error < StandardError; end
5
-
6
- class CommitCompare
7
- attr_reader :remote_origin
8
-
9
- def initialize
10
- @remote_origin = get_remote_origin
11
- end
12
-
13
- def remote_url
14
- remote_url? ? remote_origin.gsub(/\.git$/, '') : ssh_to_url
15
- end
16
-
17
- def compare_url(from, to)
18
- remote_url + "/compare/#{from}...#{to}"
19
- end
20
-
21
- def compare_before(num)
22
- compare_url(head_before(num), head)
23
- end
24
-
25
- private
26
-
27
- def get_remote_origin
28
- `git config --get remote.origin.url`.strip
29
- end
30
-
31
- def remote_url?
32
- URI.parse(remote_origin).is_a?(URI::HTTP) rescue false
33
- end
34
-
35
- def ssh_to_url
36
- "https://github.com/#{remote_origin.gsub(/git@github.com:/, '').gsub(/\.git$/, '')}"
37
- end
38
-
39
- def head
40
- `git rev-parse HEAD`.strip
41
- end
42
-
43
- def head_before(num)
44
- `git rev-parse HEAD~#{num}`.strip
45
- end
46
- end
47
7
  end
8
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gh_compare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - kenzo-tanaka
@@ -72,6 +72,8 @@ files:
72
72
  - bin/gh_compare
73
73
  - gh_compare.gemspec
74
74
  - lib/gh_compare.rb
75
+ - lib/gh_compare/commit_compare.rb
76
+ - lib/gh_compare/exec/commit_compare.rb
75
77
  - lib/gh_compare/version.rb
76
78
  homepage: https://github.com/kenzo-tanaka/gh_compare
77
79
  licenses: