end_of_life 0.4.0 → 0.5.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/CHANGELOG.md +14 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +43 -33
- data/README.md +26 -17
- data/end_of_life.gemspec +3 -2
- data/lib/end_of_life/api.rb +17 -0
- data/lib/end_of_life/cli.rb +7 -57
- data/lib/end_of_life/helpers/silent_bundler.rb +18 -0
- data/lib/end_of_life/{terminal_helper.rb → helpers/terminal.rb} +1 -1
- data/lib/end_of_life/in_memory_file.rb +3 -0
- data/lib/end_of_life/options.rb +18 -14
- data/lib/end_of_life/parsers/gemfile.rb +31 -0
- data/lib/end_of_life/parsers/gemfile_lock.rb +14 -0
- data/lib/end_of_life/parsers/ruby_version.rb +11 -0
- data/lib/end_of_life/parsers/tool_versions.rb +23 -0
- data/lib/end_of_life/product/registry.rb +23 -0
- data/lib/end_of_life/product/release.rb +30 -0
- data/lib/end_of_life/product.rb +32 -0
- data/lib/end_of_life/report.rb +35 -0
- data/lib/end_of_life/repository/search/query.rb +31 -0
- data/lib/end_of_life/repository/search.rb +45 -0
- data/lib/end_of_life/repository.rb +17 -81
- data/lib/end_of_life/scanner.rb +41 -0
- data/lib/end_of_life/version.rb +1 -1
- data/lib/end_of_life/version_detector.rb +27 -0
- data/lib/end_of_life/version_detectors/rails.rb +26 -0
- data/lib/end_of_life/version_detectors/ruby.rb +35 -0
- data/lib/end_of_life/version_detectors.rb +17 -0
- data/lib/end_of_life.rb +10 -7
- metadata +38 -10
- data/.standard.yml +0 -1
- data/lib/end_of_life/ruby_version/parser.rb +0 -88
- data/lib/end_of_life/ruby_version.rb +0 -65
- data/lib/end_of_life.json +0 -98
@@ -1,65 +0,0 @@
|
|
1
|
-
require "net/http"
|
2
|
-
require "rubygems"
|
3
|
-
require_relative "ruby_version/parser"
|
4
|
-
|
5
|
-
module EndOfLife
|
6
|
-
class RubyVersion
|
7
|
-
include Comparable
|
8
|
-
|
9
|
-
class << self
|
10
|
-
include Dry::Monads[:try]
|
11
|
-
|
12
|
-
def from_file(file_name:, content:, parser: Parser)
|
13
|
-
parser.parse_file(file_name: file_name, content: content)
|
14
|
-
end
|
15
|
-
|
16
|
-
def eol_versions_at(date)
|
17
|
-
all_versions.filter { |version| version.eol_date <= date }
|
18
|
-
end
|
19
|
-
|
20
|
-
def latest_eol(at: Date.today)
|
21
|
-
eol_versions_at(at).max
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
EOL_API_URL = "https://endoflife.date/api/ruby.json"
|
27
|
-
DB_PATH = File.join(__dir__, "../end_of_life.json")
|
28
|
-
|
29
|
-
def all_versions
|
30
|
-
@all_versions ||= (fetch_end_of_life_api || load_file_fallback)
|
31
|
-
.then { |json| JSON.parse(json, symbolize_names: true) }
|
32
|
-
.map { |version| new(version[:latest], eol_date: Date.parse(version[:eol])) }
|
33
|
-
end
|
34
|
-
|
35
|
-
def fetch_end_of_life_api
|
36
|
-
Try { Net::HTTP.get URI(EOL_API_URL) }.value_or(nil)
|
37
|
-
end
|
38
|
-
|
39
|
-
def load_file_fallback
|
40
|
-
File.read(DB_PATH)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
attr_reader :version, :eol_date
|
45
|
-
|
46
|
-
def initialize(version_string, eol_date: nil)
|
47
|
-
@version = Gem::Version.new(version_string)
|
48
|
-
@eol_date = eol_date
|
49
|
-
|
50
|
-
freeze
|
51
|
-
end
|
52
|
-
|
53
|
-
def eol?(at: Date.today)
|
54
|
-
self <= RubyVersion.latest_eol(at: at)
|
55
|
-
end
|
56
|
-
|
57
|
-
def <=>(other)
|
58
|
-
@version <=> other.version
|
59
|
-
end
|
60
|
-
|
61
|
-
def to_s
|
62
|
-
@version.to_s
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
data/lib/end_of_life.json
DELETED
@@ -1,98 +0,0 @@
|
|
1
|
-
[
|
2
|
-
{
|
3
|
-
"cycle": "3.2",
|
4
|
-
"eol": "2026-03-31",
|
5
|
-
"latest": "3.2.2",
|
6
|
-
"latestReleaseDate": "2023-03-30",
|
7
|
-
"releaseDate": "2022-12-25",
|
8
|
-
"lts": false
|
9
|
-
},
|
10
|
-
{
|
11
|
-
"cycle": "3.1",
|
12
|
-
"eol": "2025-03-31",
|
13
|
-
"latest": "3.1.4",
|
14
|
-
"latestReleaseDate": "2023-03-30",
|
15
|
-
"releaseDate": "2021-12-25",
|
16
|
-
"lts": false
|
17
|
-
},
|
18
|
-
{
|
19
|
-
"cycle": "3.0",
|
20
|
-
"eol": "2024-03-31",
|
21
|
-
"latest": "3.0.6",
|
22
|
-
"latestReleaseDate": "2023-03-30",
|
23
|
-
"releaseDate": "2020-12-25",
|
24
|
-
"lts": false
|
25
|
-
},
|
26
|
-
{
|
27
|
-
"cycle": "2.7",
|
28
|
-
"eol": "2023-03-31",
|
29
|
-
"latest": "2.7.8",
|
30
|
-
"latestReleaseDate": "2023-03-30",
|
31
|
-
"releaseDate": "2019-12-25",
|
32
|
-
"lts": false
|
33
|
-
},
|
34
|
-
{
|
35
|
-
"cycle": "2.6",
|
36
|
-
"eol": "2022-03-31",
|
37
|
-
"latest": "2.6.10",
|
38
|
-
"latestReleaseDate": "2022-04-12",
|
39
|
-
"releaseDate": "2018-12-25",
|
40
|
-
"lts": false
|
41
|
-
},
|
42
|
-
{
|
43
|
-
"cycle": "2.5",
|
44
|
-
"eol": "2021-03-31",
|
45
|
-
"latest": "2.5.9",
|
46
|
-
"latestReleaseDate": "2021-04-05",
|
47
|
-
"releaseDate": "2017-12-25",
|
48
|
-
"lts": false
|
49
|
-
},
|
50
|
-
{
|
51
|
-
"cycle": "2.4",
|
52
|
-
"eol": "2020-03-31",
|
53
|
-
"latest": "2.4.10",
|
54
|
-
"latestReleaseDate": "2020-03-31",
|
55
|
-
"releaseDate": "2016-12-23",
|
56
|
-
"lts": false
|
57
|
-
},
|
58
|
-
{
|
59
|
-
"cycle": "2.3",
|
60
|
-
"eol": "2019-03-31",
|
61
|
-
"latest": "2.3.8",
|
62
|
-
"latestReleaseDate": "2018-10-17",
|
63
|
-
"releaseDate": "2015-12-24",
|
64
|
-
"lts": false
|
65
|
-
},
|
66
|
-
{
|
67
|
-
"cycle": "2.2",
|
68
|
-
"eol": "2018-03-31",
|
69
|
-
"latest": "2.2.10",
|
70
|
-
"latestReleaseDate": "2018-03-28",
|
71
|
-
"releaseDate": "2014-12-25",
|
72
|
-
"lts": false
|
73
|
-
},
|
74
|
-
{
|
75
|
-
"cycle": "2.1",
|
76
|
-
"eol": "2017-03-31",
|
77
|
-
"latest": "2.1.10",
|
78
|
-
"latestReleaseDate": "2016-03-31",
|
79
|
-
"releaseDate": "2013-12-25",
|
80
|
-
"lts": false
|
81
|
-
},
|
82
|
-
{
|
83
|
-
"cycle": "2.0.0",
|
84
|
-
"eol": "2016-02-24",
|
85
|
-
"latest": "2.0.0p648",
|
86
|
-
"latestReleaseDate": "2015-12-16",
|
87
|
-
"releaseDate": "2013-02-24",
|
88
|
-
"lts": false
|
89
|
-
},
|
90
|
-
{
|
91
|
-
"cycle": "1.9.3",
|
92
|
-
"eol": "2015-02-23",
|
93
|
-
"latest": "1.9.3p551",
|
94
|
-
"latestReleaseDate": "2014-11-13",
|
95
|
-
"releaseDate": "2011-10-30",
|
96
|
-
"lts": false
|
97
|
-
}
|
98
|
-
]
|