Sha256: c1a2f88327a46df3304463d23eb3fa4ca5b5934e5f69761439bcdc31888469b7

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

# [EventLog]
$vmc_event = nil

class VMC::CLI
  class ProgressEventReporter
    def initialize(message, skipper)
      @message = message
      @skipper = skipper
      @skipped = false
    end

    def skip(&blk)
      @skipped = true
      $vmc_event.skipped(@message)
      @skipper.skip(&blk)
    end

    def fail(&blk)
      @skipped = true
      $vmc_event.failed_to(@message)
      @skipper.fail(&blk)
    end

    def give_up(&blk)
      @skipped = true
      $vmc_event.gave_up(@message)
      @skipper.give_up(&blk)
    end

    def skipped?
      @skipped
    end
  end

  def ask(*args)
    $vmc_event.asking(*args) if $vmc_event
    super
  end

  def line(*args)
    $vmc_event.printed(*args) if $vmc_event
    super
  end

  def force?
    false
  end

  def with_progress(msg, &blk)
    super(msg) do |s|
      reporter = ProgressEventReporter.new(msg, s)

      res = blk.call(reporter)

      $vmc_event.did(msg) unless reporter.skipped?

      res
    end
  rescue
    $vmc_event.failed_to(msg)
    raise
  end
end

class Mothership::Inputs
  alias_method :vmc_spec_get, :[]

  def [](name, *args)
    val = vmc_spec_get(name, *args)
    $vmc_event.got_input(name, val) if $vmc_event
    val
  end
end

module Interactive
  def set_input_state(input)
  end

  def restore_input_state(input, before)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
vmc-0.4.0.beta.36 vmc-ng/lib/vmc/spec_helpers/patches.rb
vmc-0.4.0.beta.35 vmc-ng/lib/vmc/spec_helpers/patches.rb
vmc-0.4.0.beta.34 vmc-ng/lib/vmc/spec_helpers/patches.rb
vmc-0.4.0.beta.33 vmc-ng/spec/patches.rb
vmc-0.4.0.beta.32 vmc-ng/spec/patches.rb
vmc-0.4.0.beta.31 vmc-ng/spec/patches.rb