Class: Mxrb::CLI::Updater
- Inherits:
-
Object
- Object
- Mxrb::CLI::Updater
- Defined in:
- lib/mxrb/cli/release.rb
Overview
Installs a published release while refusing to overwrite a source checkout.
Instance Method Summary collapse
-
#initialize(releases: Releases.new, runner: Kernel.method(:system), source_root: nil, env: ENV) ⇒ Updater
constructor
A new instance of Updater.
- #update! ⇒ Object
Constructor Details
#initialize(releases: Releases.new, runner: Kernel.method(:system), source_root: nil, env: ENV) ⇒ Updater
Returns a new instance of Updater.
107 108 109 110 111 112 |
# File 'lib/mxrb/cli/release.rb', line 107 def initialize(releases: Releases.new, runner: Kernel.method(:system), source_root: nil, env: ENV) @releases = releases @runner = runner @source_root = source_root || File.('../../..', __dir__) @env = env end |
Instance Method Details
#update! ⇒ Object
114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/mxrb/cli/release.rb', line 114 def update! status = @releases.status(force: true) raise ReleaseError, 'Could not check the latest published MXRB version' unless status.latest return status unless status.available? raise ReleaseError, if source_checkout? command = bundled? ? %w[bundle update mxrb] : [RbConfig.ruby, '-S', 'gem', 'update', 'mxrb', '--no-document'] raise ReleaseError, "Update command failed: #{command.join(' ')}" unless @runner.call(*command) status end |