Class: Logicuit::Signals::SignalGroup

Inherits:
Object
  • Object
show all
Defined in:
lib/logicuit/signals/signal_group.rb

Overview

Signal Group

Instance Method Summary collapse

Constructor Details

#initialize(*signals) ⇒ SignalGroup

Returns a new instance of SignalGroup.



7
8
9
# File 'lib/logicuit/signals/signal_group.rb', line 7

def initialize(*signals)
  @signals = signals
end

Instance Method Details

#connects_to(others) ⇒ Object Also known as: >>



15
16
17
18
# File 'lib/logicuit/signals/signal_group.rb', line 15

def connects_to(others)
  others = others.signals if others.is_a?(SignalGroup)
  @signals.zip(others).each { _1 >> _2 unless _1.nil? || _2.nil? }
end

#set(vals) ⇒ Object



25
26
27
28
29
# File 'lib/logicuit/signals/signal_group.rb', line 25

def set(vals)
  vals.split("").zip(signals).each do |v, o|
    v == "1" ? o.on : o.off
  end
end

#signalsObject



11
12
13
# File 'lib/logicuit/signals/signal_group.rb', line 11

def signals
  @signals.dup
end

#to_sObject



21
22
23
# File 'lib/logicuit/signals/signal_group.rb', line 21

def to_s
  signals.map { _1.current ? "1" : "0" }.join
end