123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # frozen_string_literal: true
- # == Schema Information
- #
- # Table name: software_updates
- #
- # id :bigint(8) not null, primary key
- # version :string not null
- # urgent :boolean default(FALSE), not null
- # type :integer default("patch"), not null
- # release_notes :string default(""), not null
- # created_at :datetime not null
- # updated_at :datetime not null
- #
- class SoftwareUpdate < ApplicationRecord
- self.inheritance_column = nil
- enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type
- def gem_version
- Gem::Version.new(version)
- end
- def outdated?
- runtime_version >= gem_version
- end
- def pending?
- gem_version > runtime_version
- end
- class << self
- def check_enabled?
- Rails.configuration.x.mastodon.software_update_url.present?
- end
- def pending_to_a
- return [] unless check_enabled?
- all.to_a.filter(&:pending?)
- end
- def urgent_pending?
- pending_to_a.any?(&:urgent?)
- end
- end
- private
- def runtime_version
- Mastodon::Version.gem_version
- end
- end
|