Sha256: 76d6fc0473c3570d3a6d6c99e78220d7c6bfcc91718b03b37a631a1886d8f151

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

module MonomeSerial
  module SerialCommunicator
    class << self
      attr_accessor :suppress_warnings
    end

    def self.get_communicator(tty_path)
      begin
        raise IOError  unless File.exists?(tty_path)
        raise RuntimeError unless (RUBY_VERSION.split('.').join.to_i >= 191) && (Object.const_defined?("RUBY_ENGINE") && Object.const_get("RUBY_ENGINE") == "ruby")
        require 'monome_serial/serial_communicator/real_communicator'
        require 'termios'
        return RealCommunicator.new(tty_path)
      rescue IOError
        puts "Supplied path tty IO file isn't valid, loading up DummyCommunicator instead of a real one" unless suppress_warnings
        return DummyCommunicator.new
      rescue RuntimeError
        puts "Incorrect Ruby version (want MRI Ruby 1.9.1 or higher), loading up DummyCommunicator instead of a real one" unless suppress_warnings
        return DummyCommunicator.new
      rescue LoadError
        puts "Could not load the termios extension. Please install it. Loading up DummyCommunicator instead of a real one" unless suppress_warnings
        return DummyCommunicator.new
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
monome_serial-1.1.0 lib/monome_serial/serial_communicator.rb
monome_serial-1.0.0 lib/monome_serial/serial_communicator.rb