Class: Vizcore::CLISupport::Doctor

Inherits:
Object
  • Object
show all
Defined in:
lib/vizcore/cli/doctor.rb

Overview

Environment preflight checks for local Vizcore development and live use.

Defined Under Namespace

Classes: Check, Report

Constant Summary collapse

REQUIRED_RUBY =
Gem::Requirement.new(">= 3.2.0")

Instance Method Summary collapse

Constructor Details

#initialize(ruby_version: RUBY_VERSION, portaudio_available: -> { Vizcore::Audio::PortAudioFFI.available? }, audio_devices: -> { Vizcore::Audio::PortAudioFFI.input_devices }, midi_devices: -> { Vizcore::Audio::MidiInput.available_devices }, fftw_available: -> { Vizcore::Analysis::FFTProcessor.fftw_available? }, command_available: method(:command_available?), port_available: method(:port_available?)) ⇒ Doctor

Returns a new instance of Doctor.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/vizcore/cli/doctor.rb', line 30

def initialize(
  ruby_version: RUBY_VERSION,
  portaudio_available: -> { Vizcore::Audio::PortAudioFFI.available? },
  audio_devices: -> { Vizcore::Audio::PortAudioFFI.input_devices },
  midi_devices: -> { Vizcore::Audio::MidiInput.available_devices },
  fftw_available: -> { Vizcore::Analysis::FFTProcessor.fftw_available? },
  command_available: method(:command_available?),
  port_available: method(:port_available?)
)
  @ruby_version = ruby_version
  @portaudio_available = portaudio_available
  @audio_devices = audio_devices
  @midi_devices = midi_devices
  @fftw_available = fftw_available
  @command_available = command_available
  @port_available = port_available
end

Instance Method Details

#callObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/vizcore/cli/doctor.rb', line 48

def call
  Report.new(
    checks: [
      ruby_check,
      frontend_check,
      portaudio_check,
      audio_devices_check,
      midi_check,
      fftw_check,
      ffmpeg_check,
      port_check
    ]
  )
end