1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00
Maybe/app/models/upgrader/upgrade.rb

28 lines
735 B
Ruby
Raw Normal View History

class Upgrader::Upgrade
attr_reader :type, :commit_sha, :version, :url
def initialize(type, data)
@type = %w[release commit].include?(type) ? type : raise(ArgumentError, "Type must be either 'release' or 'commit'")
@commit_sha = data[:commit_sha]
@version = normalize_version(data[:version])
@url = data[:url]
end
def complete?
commit_sha == Maybe.commit_sha
end
def available?
version > Maybe.version || (version == Maybe.version && commit_sha != Maybe.commit_sha)
end
def to_s
type == "release" ? version.to_release_tag : "#{commit_sha.first(7)} (pre-release)"
end
private
def normalize_version(version)
version.is_a?(Semver) ? version : Semver.new(version)
end
end