gemdiff 4.0.0 → 5.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: 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