gemdiff 2.5.5 → 4.0.0

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: 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