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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e111a272d3cfc29dd3af0ce56ed591987bf3b32e96f0aceb9a4072f093a8f9bb
4
- data.tar.gz: 5bd138ca9d683ef421254383e3aad597e55040504b0f54649e1da78bfcdd91a2
3
+ metadata.gz: 4c03ea63d859da983fa6130db7d8892925009cc864dd5d258fa3cfb6f5fcd164
4
+ data.tar.gz: 7272db6451718ced0780f77a4c9b34a37e31917c13fef8b458a148baef55cf88
5
5
  SHA512:
6
- metadata.gz: 1b3266162b26eaf306985f60270d445d44454b53d4394d49658275cf6f3d1924af8c3b247beb62945faa781f3ef1477bf6de5494b523b3df5bf35a14eb45b7c7
7
- data.tar.gz: 84609af2a57a3d3eef8ad4aaff2fc1af2c234877b4a45e4c2464524eeeb3f5b544dfddebb8a3972479fef50e5e0f852c24125632544277132bb3c9bc1cef222b
6
+ metadata.gz: 896246eae03d660d104bac9b47f44bc9a9dd8377f796cbf81ef46cef2e1f8c682e4580027f915dfb90a3862fb224fab112b964337cf0f57d84d226e76b4251b6
7
+ data.tar.gz: 82c1e44f5f667a0ad7b6e53c84246d069dbed6058d119bb35bfb1f010c3eebf1b3aaaf64afda6ac1d3a89a497606ea0da965938b2f940ab7ec4365311cd9d6fd
data/README.md CHANGED
@@ -1,7 +1,7 @@
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=main)](https://travis-ci.org/teeparham/gemdiff)
4
+ [![CI](https://github.com/teeparham/gemdiff/actions/workflows/test.yml/badge.svg)](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 line.start_with?(" * ")
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
- return if items[3] == ">" # skip non-gems for now
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
@@ -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.%-]*)}.freeze
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.load(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["GITHUB_TOKEN"]
140
+ ENV["GEMDIFF_GITHUB_TOKEN"] || ENV.fetch("GITHUB_TOKEN", nil)
131
141
  end
132
142
 
133
143
  def octokit_client
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Gemdiff
4
- VERSION = "4.0.0"
4
+ VERSION = "5.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: 4.0.0
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: 2021-03-11 00:00:00.000000000 Z
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: '4.0'
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: '4.0'
40
+ version: '8.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: thor
42
+ name: faraday-retry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
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: '1.0'
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: mocha
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: '13.0'
90
- type: :development
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: '13.0'
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
- - tee@neighborland.com
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: 2.5.0
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.2.13
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