gemdiff 2.5.5 → 4.0.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 +4 -4
- data/README.md +30 -8
- data/bin/gemdiff +1 -1
- data/lib/gemdiff.rb +0 -1
- data/lib/gemdiff/bundle_inspector.rb +1 -1
- data/lib/gemdiff/cli.rb +7 -6
- data/lib/gemdiff/gem_updater.rb +2 -2
- data/lib/gemdiff/outdated_gem.rb +11 -5
- data/lib/gemdiff/repo_finder.rb +12 -14
- data/lib/gemdiff/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e111a272d3cfc29dd3af0ce56ed591987bf3b32e96f0aceb9a4072f093a8f9bb
|
4
|
+
data.tar.gz: 5bd138ca9d683ef421254383e3aad597e55040504b0f54649e1da78bfcdd91a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b3266162b26eaf306985f60270d445d44454b53d4394d49658275cf6f3d1924af8c3b247beb62945faa781f3ef1477bf6de5494b523b3df5bf35a14eb45b7c7
|
7
|
+
data.tar.gz: 84609af2a57a3d3eef8ad4aaff2fc1af2c234877b4a45e4c2464524eeeb3f5b544dfddebb8a3972479fef50e5e0f852c24125632544277132bb3c9bc1cef222b
|
data/README.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# gemdiff
|
2
2
|
|
3
3
|
[](http://rubygems.org/gems/gemdiff)
|
4
|
-
[](https://travis-ci.org/teeparham/gemdiff)
|
5
5
|
|
6
6
|
`gemdiff` is a command-line tool to find source code for ruby gems.
|
7
7
|
It connects gem version management (rubygems + bundler) with source code (GitHub).
|
8
8
|
|
9
|
-
`gemdiff` provides commands to
|
9
|
+
`gemdiff` provides commands to
|
10
10
|
* Find GitHub repositories for gems
|
11
11
|
* Open the compare view for two gem versions
|
12
12
|
* Inspect your bundle and list all the available updates
|
@@ -146,6 +146,15 @@ to run with the `open` command with a URL argument):
|
|
146
146
|
$ gemdiff open pundit
|
147
147
|
```
|
148
148
|
|
149
|
+
You may also use `.` as a shortcut for the current directory name.
|
150
|
+
This is helpful if you would like to quickly open the gem you are developing, for example:
|
151
|
+
|
152
|
+
```sh
|
153
|
+
$ pwd
|
154
|
+
/Users/you/projects/somegem
|
155
|
+
$ gemdiff open .
|
156
|
+
```
|
157
|
+
|
149
158
|
### `gemdiff compare [gem] [version] [version]`
|
150
159
|
|
151
160
|
Open a compare view for an individual outdated gem in your bundle:
|
@@ -166,7 +175,7 @@ $ gemdiff compare pundit 1.0.0 0.3.0
|
|
166
175
|
You can compare a version with a branch name:
|
167
176
|
|
168
177
|
```sh
|
169
|
-
$ gemdiff compare arel 6.0.0
|
178
|
+
$ gemdiff compare arel 6.0.0 main
|
170
179
|
```
|
171
180
|
|
172
181
|
### `gemdiff releases [gem]`
|
@@ -177,12 +186,12 @@ Open the repository's release history page:
|
|
177
186
|
$ gemdiff releases haml
|
178
187
|
```
|
179
188
|
|
180
|
-
### `gemdiff
|
189
|
+
### `gemdiff main [gem]`
|
181
190
|
|
182
|
-
Open the repository's
|
191
|
+
Open the repository's main branch commit history page:
|
183
192
|
|
184
193
|
```sh
|
185
|
-
$ gemdiff
|
194
|
+
$ gemdiff main haml
|
186
195
|
```
|
187
196
|
|
188
197
|
### `gemdiff help`
|
@@ -202,6 +211,19 @@ $ gemdiff f pundit
|
|
202
211
|
https://github.com/varvet/pundit
|
203
212
|
```
|
204
213
|
|
214
|
+
All commands that have a gem name argument can now use "." as an alias for the current directory name.
|
215
|
+
|
216
|
+
For example:
|
217
|
+
|
218
|
+
```sh
|
219
|
+
pwd
|
220
|
+
/Users/you/ruby/somegem
|
221
|
+
gemdiff find .
|
222
|
+
gemdiff open .
|
223
|
+
gemdiff main .
|
224
|
+
gemdiff compare . 1.2.3 main
|
225
|
+
```
|
226
|
+
|
205
227
|
### Authenticated GitHub API requests
|
206
228
|
|
207
229
|
If GitHub returns rate limit errors, you can make authenticated API
|
@@ -223,11 +245,11 @@ releases, submit an issue to the gem maintainer to tag their releases.
|
|
223
245
|
|
224
246
|
3. The versions must be tagged using the standard format of `v1.2.3`. If you find gems that follow
|
225
247
|
a non-standard format (such as `1.2.3`), please open an issue or submit a pull request.
|
226
|
-
See [`lib/gemdiff/outdated_gem.rb`](https://github.com/teeparham/gemdiff/blob/
|
248
|
+
See [`lib/gemdiff/outdated_gem.rb`](https://github.com/teeparham/gemdiff/blob/main/lib/gemdiff/outdated_gem.rb).
|
227
249
|
|
228
250
|
4. Encourage gem maintainers to enter the GitHub repository URL in the `homepage` field of their gemspec
|
229
251
|
or anywhere in the description. If you find exceptions, open an issue or submit a pull request.
|
230
|
-
See [`lib/gemdiff/repo_finder.rb`](https://github.com/teeparham/gemdiff/blob/
|
252
|
+
See [`lib/gemdiff/repo_finder.rb`](https://github.com/teeparham/gemdiff/blob/main/lib/gemdiff/repo_finder.rb).
|
231
253
|
|
232
254
|
### More Info
|
233
255
|
|
data/bin/gemdiff
CHANGED
data/lib/gemdiff.rb
CHANGED
data/lib/gemdiff/cli.rb
CHANGED
@@ -34,9 +34,9 @@ module Gemdiff
|
|
34
34
|
find(gem_name).releases
|
35
35
|
end
|
36
36
|
|
37
|
-
desc "
|
38
|
-
def
|
39
|
-
find(gem_name).
|
37
|
+
desc "main <gem>", "Open the github main branch commits page for a gem"
|
38
|
+
def main(gem_name)
|
39
|
+
find(gem_name).main
|
40
40
|
end
|
41
41
|
|
42
42
|
desc "compare <gem> [<old> <new>]", <<~DESC
|
@@ -102,10 +102,11 @@ module Gemdiff
|
|
102
102
|
return
|
103
103
|
end
|
104
104
|
response = ask("\nCommit? (c to commit, r to reset, else do nothing)")
|
105
|
-
|
105
|
+
case response
|
106
|
+
when "c"
|
106
107
|
gem_updater.commit
|
107
|
-
puts "\n
|
108
|
-
|
108
|
+
puts "\n#{colorize_git_output(gem_updater.show)}"
|
109
|
+
when "r"
|
109
110
|
puts gem_updater.reset
|
110
111
|
end
|
111
112
|
end
|
data/lib/gemdiff/gem_updater.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Gemdiff
|
4
4
|
class GemUpdater
|
5
|
-
|
5
|
+
attr_reader :name
|
6
6
|
|
7
7
|
def initialize(name)
|
8
8
|
@name = name
|
@@ -49,7 +49,7 @@ module Gemdiff
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def version(changed_line)
|
52
|
-
changed_line.split("\n").first.split
|
52
|
+
changed_line.split("\n").first.split.last.gsub(/[()]/, "")
|
53
53
|
end
|
54
54
|
|
55
55
|
# example returns:
|
data/lib/gemdiff/outdated_gem.rb
CHANGED
@@ -32,10 +32,10 @@ module Gemdiff
|
|
32
32
|
twilio-ruby
|
33
33
|
].freeze
|
34
34
|
|
35
|
-
|
35
|
+
attr_reader :name, :old_version, :new_version
|
36
36
|
|
37
37
|
def initialize(name, old_version = nil, new_version = nil)
|
38
|
-
@name = name
|
38
|
+
@name = find_name(name)
|
39
39
|
set_versions old_version, new_version
|
40
40
|
end
|
41
41
|
|
@@ -68,7 +68,7 @@ module Gemdiff
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def commits_url
|
71
|
-
clean_url "#{repo}/commits/
|
71
|
+
clean_url "#{repo}/commits/main"
|
72
72
|
end
|
73
73
|
|
74
74
|
def compare_message
|
@@ -79,7 +79,7 @@ module Gemdiff
|
|
79
79
|
clean_url "#{repo}/compare/#{compare_part}"
|
80
80
|
end
|
81
81
|
|
82
|
-
def
|
82
|
+
def main
|
83
83
|
open_url(commits_url) if repo?
|
84
84
|
end
|
85
85
|
|
@@ -97,6 +97,12 @@ module Gemdiff
|
|
97
97
|
|
98
98
|
private
|
99
99
|
|
100
|
+
# When ".", use the name of the current directory
|
101
|
+
def find_name(name)
|
102
|
+
return File.basename(Dir.getwd) if name == "."
|
103
|
+
name
|
104
|
+
end
|
105
|
+
|
100
106
|
def clean_url(url)
|
101
107
|
uri = URI.parse(url)
|
102
108
|
uri.path.gsub! %r{/+}, "/"
|
@@ -131,7 +137,7 @@ module Gemdiff
|
|
131
137
|
# swap versions if needed
|
132
138
|
def old_new(v_old, v_new)
|
133
139
|
return [v_old, v_new] unless v_old && v_new
|
134
|
-
if v_old == "
|
140
|
+
if v_old == "main" || (Gem::Version.new(v_old) > Gem::Version.new(v_new))
|
135
141
|
[v_new, v_old]
|
136
142
|
else
|
137
143
|
[v_old, v_new]
|
data/lib/gemdiff/repo_finder.rb
CHANGED
@@ -102,21 +102,23 @@ module Gemdiff
|
|
102
102
|
if (full_name = REPO_EXCEPTIONS[gem_name.to_sym])
|
103
103
|
return github_repo(full_name)
|
104
104
|
end
|
105
|
-
|
105
|
+
yaml = gemspec(gem_name)
|
106
|
+
return if yaml.to_s.empty?
|
106
107
|
spec = YAML.load(yaml)
|
107
|
-
return
|
108
|
+
return clean_url(spec.homepage) if spec.homepage =~ GITHUB_REPO_REGEX
|
108
109
|
match = spec.description.to_s.match(GITHUB_REPO_REGEX)
|
109
|
-
match &&
|
110
|
+
match && clean_url(match[0])
|
110
111
|
end
|
111
112
|
|
112
|
-
|
113
|
-
|
113
|
+
# return https URL with anchors stripped
|
114
|
+
def clean_url(url)
|
115
|
+
url.sub(/\Ahttp:/, "https:").partition("#").first
|
114
116
|
end
|
115
117
|
|
116
118
|
def search(gem_name)
|
117
119
|
query = "#{gem_name} language:ruby in:name"
|
118
120
|
result = octokit_client.search_repositories(query)
|
119
|
-
return
|
121
|
+
return if result.items.empty?
|
120
122
|
github_repo result.items.first.full_name
|
121
123
|
end
|
122
124
|
|
@@ -133,13 +135,9 @@ module Gemdiff
|
|
133
135
|
end
|
134
136
|
|
135
137
|
def gemspec(name)
|
136
|
-
|
137
|
-
return
|
138
|
-
|
139
|
-
end
|
140
|
-
|
141
|
-
def last_shell_command_success?
|
142
|
-
$CHILD_STATUS.success?
|
138
|
+
yaml = find_local_gemspec(name)
|
139
|
+
return yaml unless yaml.to_s.empty?
|
140
|
+
find_remote_gemspec(name)
|
143
141
|
end
|
144
142
|
|
145
143
|
def find_local_gemspec(name)
|
@@ -147,7 +145,7 @@ module Gemdiff
|
|
147
145
|
end
|
148
146
|
|
149
147
|
def find_remote_gemspec(name)
|
150
|
-
`gem spec -r #{name}`
|
148
|
+
`gem spec -r #{name}`
|
151
149
|
end
|
152
150
|
end
|
153
151
|
end
|
data/lib/gemdiff/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemdiff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tee Parham
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
47
|
+
version: '1.0'
|
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.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '13.0'
|
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: '
|
96
|
+
version: '13.0'
|
97
97
|
description: Command-line utility to find source repositories for ruby gems, open
|
98
98
|
common GitHub pages, compare gem versions, and simplify gem update workflow in git.
|
99
99
|
email:
|
@@ -118,7 +118,7 @@ homepage: https://github.com/teeparham/gemdiff
|
|
118
118
|
licenses:
|
119
119
|
- MIT
|
120
120
|
metadata: {}
|
121
|
-
post_install_message:
|
121
|
+
post_install_message:
|
122
122
|
rdoc_options: []
|
123
123
|
require_paths:
|
124
124
|
- lib
|
@@ -126,15 +126,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
126
|
requirements:
|
127
127
|
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 2.
|
129
|
+
version: 2.5.0
|
130
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
132
|
- - ">="
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
|
-
rubygems_version: 3.
|
137
|
-
signing_key:
|
136
|
+
rubygems_version: 3.2.13
|
137
|
+
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: Find source repositories for ruby gems. Open, compare, and update outdated
|
140
140
|
gem versions
|