mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 15:49:39 +02:00
* v1 of backend implementation for self hosting * Add docs * Add upgrades controller * Add global helpers for self hosting mode * Add self host settings controller * Conditionally show self hosting settings * Environment and config updates * Complete upgrade prompting flow * Update config for forked repo * Move configuration of github provider within class * Add upgrades cron * Update deploy button * Update guides * Fix render deployer * Typo * Enable auto upgrades * Fix cron * Make upgrade modes more clear and consistent * Trigger new available version * Fix logic for displaying upgrade prompts * Finish implementation * Fix regression * Trigger new version * Add i18n translations * trigger new version * reduce caching time for testing * Decrease cache for testing * trigger upgrade * trigger upgrade * Only trigger deploy once * trigger upgrade * If target is commit, always upgrade if any upgrade is available * trigger upgrade * trigger upgrade * Test release * Change back to maybe repo for defaults * Fix lint errors * Clearer naming * Fix relative link * Add abs path * Relative link * Update docs
27 lines
735 B
Ruby
27 lines
735 B
Ruby
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
|