gemdiff 2.5.4 → 3.1.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: 7b5d64420fe34ccb243d5cb8176931fea325297048d1838f67e3b55a9087a1a9
4
- data.tar.gz: 7d7ac68ec217d6cee61fb4b131f61d9f91e8d4e5a5e0e6ca4dc2747ab6844b5c
3
+ metadata.gz: 816c043aaed3ee188c5cb4637b06ff695b530d8ea8ffa93d804f01e8f4958e90
4
+ data.tar.gz: b8916af6f878439433af752c67d985b8e490bc95debaf8ec3572c4d9cd01603d
5
5
  SHA512:
6
- metadata.gz: 846453115c13ffa9302125c03d9b065fa9b8d17286446700640a3d38ec010aac68e5e46861908328a89d2e84c3926d4c7d85bcf2202918845d8beb8d72a131ec
7
- data.tar.gz: d34c37826dc118117896c4520748cbaf9a2e804be784ffd69c2f7555e25bb8d130f030944d1ea5adfdc6436de89fe4bf878f2524c1e530fe48b009716deb5fe0
6
+ metadata.gz: 8b74933f842115b3725e477ac697f0b95f932f845742fc489330e6e68591893bff0c0ddb3ec272c932c0262dbb2c7bfbfd093b71a4461c1f1b01f155ffba62d9
7
+ data.tar.gz: 2f4954b0a299d1ea135116eadc0cbd30d8272764f1dcf9f7da3bdc190cd4415b2f7f440f80cec5b593ddaa1786f660cb0e0f2967b5ae7bc6bec9cf26e6bf17ad
data/README.md CHANGED
@@ -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:
@@ -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 master .
224
+ gemdiff compare . 1.2.3 master
225
+ ```
226
+
205
227
  ### Authenticated GitHub API requests
206
228
 
207
229
  If GitHub returns rate limit errors, you can make authenticated API
@@ -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"
@@ -68,10 +68,10 @@ module Gemdiff
68
68
  inspector.list.each do |outdated_gem|
69
69
  puts outdated_gem.compare_message
70
70
  response = open_all || ask("Open? (y to open, x to exit, A to open all, s to show all to stdout, else skip)")
71
- open_all = response if %(A s).include?(response)
71
+ open_all = response if %w[s A].include?(response)
72
72
  outdated_gem.compare if %w[y A].include?(response)
73
73
  puts outdated_gem.compare_url if response == "s"
74
- return if response == "x"
74
+ break if response == "x"
75
75
  end
76
76
  end
77
77
  map outdated: :each
@@ -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
@@ -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
 
@@ -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{/+}, "/"
@@ -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.4"
4
+ VERSION = "3.1.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.4
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tee Parham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
11
+ date: 2020-10-18 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:
@@ -126,14 +126,14 @@ 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.4.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
136
+ rubygems_version: 3.1.3
137
137
  signing_key:
138
138
  specification_version: 4
139
139
  summary: Find source repositories for ruby gems. Open, compare, and update outdated