Module: StillActive::VersionHelper

Extended by:
VersionHelper
Included in:
VersionHelper
Defined in:
lib/helpers/version_helper.rb

Instance Method Summary collapse

Instance Method Details

#find_version(versions:, version_string: nil, pre_release: false) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/helpers/version_helper.rb', line 9

def find_version(versions:, version_string: nil, pre_release: false)
  if version_string && pre_release
    versions&.find { |v| v["number"] == version_string && v["prerelease"] == pre_release }
  elsif !version_string.nil?
    versions&.find { |v| v["number"] == version_string }
  else
    versions&.find { |v| v["prerelease"] == pre_release }
  end
end

#gem_version(version_hash:) ⇒ Object



31
32
33
# File 'lib/helpers/version_helper.rb', line 31

def gem_version(version_hash:)
  version_hash&.dig("number")
end

#license(version_hash:) ⇒ Object

SPDX license identifier(s) from the RubyGems versions payload. Comma-joined when a gem declares more than one. nil when unknown.



43
44
45
46
47
48
# File 'lib/helpers/version_helper.rb', line 43

def license(version_hash:)
  licenses = version_hash&.dig("licenses")
  return if licenses.nil? || licenses.empty?

  licenses.join(", ")
end

#release_date(version_hash:) ⇒ Object



35
36
37
38
39
# File 'lib/helpers/version_helper.rb', line 35

def release_date(version_hash:)
  release_date = version_hash&.dig("created_at")

  Time.parse(release_date) unless release_date.nil?
end

#up_to_date(version_used:, latest_version: nil, latest_pre_release_version: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/helpers/version_helper.rb', line 19

def up_to_date(version_used:, latest_version: nil, latest_pre_release_version: nil)
  return if latest_version.nil? && latest_pre_release_version.nil?

  used = to_gem_version(version_used)
  return if used.nil?

  [latest_version, latest_pre_release_version]
    .compact
    .filter_map { |v| to_gem_version(v) }
    .any? { |v| used >= v }
end