Sha256: 0f0c02e84225a4b464fc0c3c0dc06f6698d7fda71211095262b32ae54ee05e7d

Contents?: true

Size: 555 Bytes

Versions: 10

Compression:

Stored size: 555 Bytes

Contents

require 'socket_switcher'

module AmpelExtase
  class LightSwitcher
    def self.for(serial:)
      if serial
        new SocketSwitcher::Port.new(serial)
      else
        Tins::NULL
      end
    end

    def initialize(port)
      @port = port
    end

    attr_reader :port

    def green
      @port.device(0)
    end

    def red
      @port.device(1)
    end

    def aux
      @port.device(2)
    end

    def each(&block)
      [
        :green,
        :red,
        :aux,
      ].map { |color| __send__(color) }.each(&block)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ampel_extase-0.8.0 lib/ampel_extase/light_switcher.rb
ampel_extase-0.7.2 lib/ampel_extase/light_switcher.rb
ampel_extase-0.6.2 lib/ampel_extase/light_switcher.rb
ampel_extase-0.6.1 lib/ampel_extase/light_switcher.rb
ampel_extase-0.6.0 lib/ampel_extase/light_switcher.rb
ampel_extase-0.5.1 lib/ampel_extase/light_switcher.rb
ampel_extase-0.5.0 lib/ampel_extase/light_switcher.rb
ampel_extase-0.4.0 lib/ampel_extase/light_switcher.rb
ampel_extase-0.3.1 lib/ampel_extase/light_switcher.rb
ampel_extase-0.3.0 lib/ampel_extase/light_switcher.rb