Class: AVR::Clock::Sink

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/avr/clock.rb

Instance Method Summary collapse

Constructor Details

#initialize(name = nil, sink_proc = nil, &block) ⇒ Sink

Returns a new instance of Sink.



18
19
20
21
22
23
24
25
# File 'lib/avr/clock.rb', line 18

def initialize(name = nil, sink_proc = nil, &block)
  raise unless sink_proc || block_given?
  @name = name
  @sink_proc = T.let(
    sink_proc || block&.to_proc,
    T.nilable(T.proc.params(source: Clock, ticks: Integer).void)
  )
end

Instance Method Details

#tick(source, ticks) ⇒ Object



28
29
30
# File 'lib/avr/clock.rb', line 28

def tick(source, ticks)
  T.must(@sink_proc).call(source, ticks)
end