gemdiff 4.0.0 → 5.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 +1 -1
- data/lib/gemdiff/bundle_inspector.rb +5 -14
- data/lib/gemdiff/repo_finder.rb +13 -3
- data/lib/gemdiff/version.rb +1 -1
- metadata +16 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c03ea63d859da983fa6130db7d8892925009cc864dd5d258fa3cfb6f5fcd164
|
4
|
+
data.tar.gz: 7272db6451718ced0780f77a4c9b34a37e31917c13fef8b458a148baef55cf88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 896246eae03d660d104bac9b47f44bc9a9dd8377f796cbf81ef46cef2e1f8c682e4580027f915dfb90a3862fb224fab112b964337cf0f57d84d226e76b4251b6
|
7
|
+
data.tar.gz: 82c1e44f5f667a0ad7b6e53c84246d069dbed6058d119bb35bfb1f010c3eebf1b3aaaf64afda6ac1d3a89a497606ea0da965938b2f940ab7ec4365311cd9d6fd
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# gemdiff
|
2
2
|
|
3
3
|
[](http://rubygems.org/gems/gemdiff)
|
4
|
-
[](https://github.com/teeparham/gemdiff/actions/workflows/test.yml)
|
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).
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module Gemdiff
|
4
4
|
class BundleInspector
|
5
|
+
BUNDLE_OUTDATED_PARSE_REGEX = /\A([^\s]+)\s\(newest\s([^,]+),\sinstalled\s([^,\)]+).*\z/
|
6
|
+
|
5
7
|
def list
|
6
8
|
@list ||=
|
7
9
|
outdated
|
@@ -21,24 +23,13 @@ module Gemdiff
|
|
21
23
|
private
|
22
24
|
|
23
25
|
def bundle_outdated_strict
|
24
|
-
`bundle outdated --strict`
|
26
|
+
`bundle outdated --strict --parseable`
|
25
27
|
end
|
26
28
|
|
27
29
|
def new_outdated_gem(line)
|
28
|
-
return unless
|
29
|
-
|
30
|
-
# clean & convert new & old output to same format
|
31
|
-
items = line.delete("*")
|
32
|
-
.gsub("(newest", "")
|
33
|
-
.gsub(", installed", " >")
|
34
|
-
.gsub(/([(),])/, "")
|
35
|
-
.split
|
36
|
-
|
37
|
-
# ["haml", "4.0.5", ">", "4.0.4"]
|
38
|
-
# ["a_forked_gem", "0.7.0", "99ddbc9", ">", "0.7.0", "1da2295"]
|
30
|
+
return unless (match = BUNDLE_OUTDATED_PARSE_REGEX.match(line))
|
39
31
|
|
40
|
-
|
41
|
-
OutdatedGem.new(items[0], items[3], items[1])
|
32
|
+
OutdatedGem.new(match[1], match[2], match[3])
|
42
33
|
end
|
43
34
|
end
|
44
35
|
end
|
data/lib/gemdiff/repo_finder.rb
CHANGED
@@ -5,7 +5,7 @@ require "yaml"
|
|
5
5
|
|
6
6
|
module Gemdiff
|
7
7
|
module RepoFinder
|
8
|
-
GITHUB_REPO_REGEX = %r{(https?)://(www.)?github\.com/([\w.%-]*)/([\w.%-]*)}
|
8
|
+
GITHUB_REPO_REGEX = %r{(https?)://(www.)?github\.com/([\w.%-]*)/([\w.%-]*)}
|
9
9
|
|
10
10
|
# rails builds several gems that are not individual projects
|
11
11
|
# some repos move and the old repo page still exists
|
@@ -89,6 +89,16 @@ module Gemdiff
|
|
89
89
|
zeus: "burke/zeus",
|
90
90
|
}.freeze
|
91
91
|
|
92
|
+
PERMITTED_GEMSPEC_CLASSES =
|
93
|
+
%w[
|
94
|
+
Gem::Dependency
|
95
|
+
Gem::Requirement
|
96
|
+
Gem::Specification
|
97
|
+
Gem::Version
|
98
|
+
Symbol
|
99
|
+
Time
|
100
|
+
].freeze
|
101
|
+
|
92
102
|
class << self
|
93
103
|
# Try to get the homepage from the gemspec
|
94
104
|
# If not found, search github
|
@@ -104,7 +114,7 @@ module Gemdiff
|
|
104
114
|
end
|
105
115
|
yaml = gemspec(gem_name)
|
106
116
|
return if yaml.to_s.empty?
|
107
|
-
spec = YAML.
|
117
|
+
spec = YAML.safe_load(yaml, permitted_classes: PERMITTED_GEMSPEC_CLASSES)
|
108
118
|
return clean_url(spec.homepage) if spec.homepage =~ GITHUB_REPO_REGEX
|
109
119
|
match = spec.description.to_s.match(GITHUB_REPO_REGEX)
|
110
120
|
match && clean_url(match[0])
|
@@ -127,7 +137,7 @@ module Gemdiff
|
|
127
137
|
end
|
128
138
|
|
129
139
|
def access_token
|
130
|
-
ENV["GEMDIFF_GITHUB_TOKEN"] || ENV
|
140
|
+
ENV["GEMDIFF_GITHUB_TOKEN"] || ENV.fetch("GITHUB_TOKEN", nil)
|
131
141
|
end
|
132
142
|
|
133
143
|
def octokit_client
|
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: 5.0.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:
|
11
|
+
date: 2024-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|
@@ -30,74 +30,46 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '8.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '8.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: faraday-retry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2.2'
|
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: '
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: minitest
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '5.4'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '5.4'
|
54
|
+
version: '2.2'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '1.1'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '1.1'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
56
|
+
name: thor
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
59
|
- - "~>"
|
88
60
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
90
|
-
type: :
|
61
|
+
version: '1.0'
|
62
|
+
type: :runtime
|
91
63
|
prerelease: false
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
93
65
|
requirements:
|
94
66
|
- - "~>"
|
95
67
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
68
|
+
version: '1.0'
|
97
69
|
description: Command-line utility to find source repositories for ruby gems, open
|
98
70
|
common GitHub pages, compare gem versions, and simplify gem update workflow in git.
|
99
71
|
email:
|
100
|
-
-
|
72
|
+
- parhameter@gmail.com
|
101
73
|
executables:
|
102
74
|
- gemdiff
|
103
75
|
extensions: []
|
@@ -117,7 +89,8 @@ files:
|
|
117
89
|
homepage: https://github.com/teeparham/gemdiff
|
118
90
|
licenses:
|
119
91
|
- MIT
|
120
|
-
metadata:
|
92
|
+
metadata:
|
93
|
+
rubygems_mfa_required: 'true'
|
121
94
|
post_install_message:
|
122
95
|
rdoc_options: []
|
123
96
|
require_paths:
|
@@ -126,14 +99,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
99
|
requirements:
|
127
100
|
- - ">="
|
128
101
|
- !ruby/object:Gem::Version
|
129
|
-
version:
|
102
|
+
version: 3.0.0
|
130
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
104
|
requirements:
|
132
105
|
- - ">="
|
133
106
|
- !ruby/object:Gem::Version
|
134
107
|
version: '0'
|
135
108
|
requirements: []
|
136
|
-
rubygems_version: 3.
|
109
|
+
rubygems_version: 3.5.5
|
137
110
|
signing_key:
|
138
111
|
specification_version: 4
|
139
112
|
summary: Find source repositories for ruby gems. Open, compare, and update outdated
|