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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c584d7dc3f72b60e51f1c015d526524236605773c05d00beea8c160502aadfe
4
- data.tar.gz: bcc7a5142bbec45bcbf727350db385b540555cc187355559cdd42085c6ec33d4
3
+ metadata.gz: e111a272d3cfc29dd3af0ce56ed591987bf3b32e96f0aceb9a4072f093a8f9bb
4
+ data.tar.gz: 5bd138ca9d683ef421254383e3aad597e55040504b0f54649e1da78bfcdd91a2
5
5
  SHA512:
6
- metadata.gz: 934218359fb9fe066bd3fa28fe776ed10392f09d6216bc2b57faea192566394659d9170378946a2045fa066894b0cbe82dba2d1a56a8ed1519e9f6e0f4195034
7
- data.tar.gz: 4fac91f24d88a05df4f6d9638294142e630f173191f55c708421fda521383c56c89433df356de8952e71587fffebf058b036221e5cbb636354d83cf309d73eb1
6
+ metadata.gz: 1b3266162b26eaf306985f60270d445d44454b53d4394d49658275cf6f3d1924af8c3b247beb62945faa781f3ef1477bf6de5494b523b3df5bf35a14eb45b7c7
7
+ data.tar.gz: 84609af2a57a3d3eef8ad4aaff2fc1af2c234877b4a45e4c2464524eeeb3f5b544dfddebb8a3972479fef50e5e0f852c24125632544277132bb3c9bc1cef222b
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # gemdiff
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/gemdiff.svg)](http://rubygems.org/gems/gemdiff)
4
- [![Build Status](https://travis-ci.org/teeparham/gemdiff.svg?branch=master)](https://travis-ci.org/teeparham/gemdiff)
4
+ [![Build Status](https://travis-ci.org/teeparham/gemdiff.svg?branch=main)](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 master
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 master [gem]`
189
+ ### `gemdiff main [gem]`
181
190
 
182
- Open the repository's master branch commit history page:
191
+ Open the repository's main branch commit history page:
183
192
 
184
193
  ```sh
185
- $ gemdiff master haml
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/master/lib/gemdiff/outdated_gem.rb).
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/master/lib/gemdiff/repo_finder.rb).
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
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- $LOAD_PATH.unshift File.dirname(__FILE__) + "/../lib"
4
+ $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
5
5
 
6
6
  # Exit cleanly from an early interrupt
7
7
  Signal.trap("INT") { exit 1 }
data/lib/gemdiff.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "English"
4
3
  require "gemdiff/version"
5
4
  require "gemdiff/colorize"
6
5
  require "gemdiff/cli"
@@ -32,7 +32,7 @@ module Gemdiff
32
32
  .gsub("(newest", "")
33
33
  .gsub(", installed", " >")
34
34
  .gsub(/([(),])/, "")
35
- .split(" ")
35
+ .split
36
36
 
37
37
  # ["haml", "4.0.5", ">", "4.0.4"]
38
38
  # ["a_forked_gem", "0.7.0", "99ddbc9", ">", "0.7.0", "1da2295"]
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 "master <gem>", "Open the github master branch commits page for a gem"
38
- def master(gem_name)
39
- find(gem_name).master
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
- if response == "c"
105
+ case response
106
+ when "c"
106
107
  gem_updater.commit
107
- puts "\n" + colorize_git_output(gem_updater.show)
108
- elsif response == "r"
108
+ puts "\n#{colorize_git_output(gem_updater.show)}"
109
+ when "r"
109
110
  puts gem_updater.reset
110
111
  end
111
112
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Gemdiff
4
4
  class GemUpdater
5
- attr_accessor :name
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(" ").last.gsub(/[()]/, "")
52
+ changed_line.split("\n").first.split.last.gsub(/[()]/, "")
53
53
  end
54
54
 
55
55
  # example returns:
@@ -32,10 +32,10 @@ module Gemdiff
32
32
  twilio-ruby
33
33
  ].freeze
34
34
 
35
- attr_accessor :name, :old_version, :new_version
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/master"
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 master
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 == "master" || (Gem::Version.new(v_old) > Gem::Version.new(v_new))
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]
@@ -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
- return nil unless (yaml = gemspec(gem_name))
105
+ yaml = gemspec(gem_name)
106
+ return if yaml.to_s.empty?
106
107
  spec = YAML.load(yaml)
107
- return secure_url(spec.homepage) if spec.homepage =~ GITHUB_REPO_REGEX
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 && secure_url(match[0])
110
+ match && clean_url(match[0])
110
111
  end
111
112
 
112
- def secure_url(url)
113
- url.sub(/\Ahttp:/, "https:")
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 nil if result.items.empty?
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
- local = find_local_gemspec(name)
137
- return find_remote_gemspec(name) unless last_shell_command_success?
138
- local.partition("#").first if local =~ GITHUB_REPO_REGEX
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}` if last_shell_command_success?
148
+ `gem spec -r #{name}`
151
149
  end
152
150
  end
153
151
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gemdiff
4
- VERSION = "2.5.5"
4
+ VERSION = "4.0.0"
5
5
  end
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: 2.5.5
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: 2019-03-05 00:00:00.000000000 Z
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.19'
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.19'
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: '12.0'
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: '12.0'
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.3.0
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.0.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