gh_compare 0.1.1 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d81428269393c2c040e803a321a5ad1ac1bb1ccdea1013f250c32de905941acc
4
- data.tar.gz: 68d60a458276c64d47c57f343f0bd3a5c657a173097a8daef462368978804481
3
+ metadata.gz: b388008432820bed2c4b1a15356d3d891808bc7d1efcbd0fd5658aeac6e600bf
4
+ data.tar.gz: 6688c0cb19acb42a673f9d4c7f9155c27dd754f7b9521c8ce1a313e5a56a5139
5
5
  SHA512:
6
- metadata.gz: 94f6c32851f8e1ad69e4ad294150434cd76538176236ea32b2df3cb226f58163e88ae43a560d5a2620c81ccfd54c9bdb7acf9f97e962faba67266f74bc12a82e
7
- data.tar.gz: cd007739d7c0bdff9418ee40c7e4a7a8658b94d360a870b892432454c0ac99ca47be26e68276a501fe9fbb5636bbdfcdb00bf6582529bf4d3ef76e2487d81db5
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.0)
4
+ gh_compare (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -6,22 +6,18 @@ Generate GitHub compare url like [this](https://github.com/kenzo-tanaka/gh_compa
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- ```ruby
10
- gem 'gh_compare'
9
+ ```shell
10
+ gem install gh_compare
11
11
  ```
12
12
 
13
- And then execute:
14
-
15
- $ bundle
16
-
17
- Or install it yourself as:
18
-
19
- $ gem install gh_compare
20
-
21
13
  ## Usage
22
14
 
23
15
  ```shell
24
- gh_compare [from-hash] [to-hash]
16
+ gh_compare -n [number]
17
+ ```
18
+
19
+ ```shell
20
+ gh_compare -d [from-hash] [to-hash]
25
21
  ```
26
22
 
27
23
  ## Development
data/bin/gh_compare CHANGED
@@ -1,7 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- raise ArgumentError, "wrong number of arguments (given #{ARGV.length}, expected 2)" if ARGV.length != 2
4
-
5
- require_relative '../lib/gh_compare'
6
- compare = GhCompare::CommitCompare.new
7
- puts compare.compare_url(ARGV[0], ARGV[1])
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.1"
2
+ VERSION = '0.1.5'
3
3
  end
data/lib/gh_compare.rb CHANGED
@@ -1,35 +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
- private
22
-
23
- def get_remote_origin
24
- `git config --get remote.origin.url`.strip
25
- end
26
-
27
- def remote_url?
28
- URI.parse(remote_origin).is_a?(URI::HTTP) rescue false
29
- end
30
-
31
- def ssh_to_url
32
- "https://github.com/#{remote_origin.gsub(/git@github.com:/, '').gsub(/\.git$/, '')}"
33
- end
34
- end
35
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.1
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - kenzo-tanaka
@@ -56,9 +56,7 @@ description: Generate GitHub compare url
56
56
  email:
57
57
  - kenzou.kenzou104809@gmail.com
58
58
  executables:
59
- - console
60
59
  - gh_compare
61
- - setup
62
60
  extensions: []
63
61
  extra_rdoc_files: []
64
62
  files:
@@ -71,11 +69,11 @@ files:
71
69
  - LICENSE.txt
72
70
  - README.md
73
71
  - Rakefile
74
- - bin/console
75
72
  - bin/gh_compare
76
- - bin/setup
77
73
  - gh_compare.gemspec
78
74
  - lib/gh_compare.rb
75
+ - lib/gh_compare/commit_compare.rb
76
+ - lib/gh_compare/exec/commit_compare.rb
79
77
  - lib/gh_compare/version.rb
80
78
  homepage: https://github.com/kenzo-tanaka/gh_compare
81
79
  licenses:
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "gh_compare"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here