class Dashed::Button
Constants
- SNAPLENGTH
- TIMEOUT
Attributes
last_press[R]
mac_address[R]
timeout[RW]
Public Class Methods
new(mac_address, interface, timeout = TIMEOUT)
click to toggle source
# File lib/dashed/button.rb, line 13 def initialize(mac_address, interface, timeout = TIMEOUT) @mac_address = mac_address @interface = interface @timeout = timeout @last_press = nil end
Public Instance Methods
on_press() { || ... }
click to toggle source
# File lib/dashed/button.rb, line 20 def on_press capture.each_packet do |raw_packet| packet = Packet.new(raw_packet) if packet.host_mac_address == mac_address && !duplicate_arp? @last_press = Time.now yield if block_given? end end end
Private Instance Methods
capture()
click to toggle source
# File lib/dashed/button.rb, line 32 def capture return @capture if @capture @capture = PCAPRUB::Pcap.open_live(@interface, SNAPLENGTH, true, 0) @capture.setfilter("arp") end
duplicate_arp?()
click to toggle source
# File lib/dashed/button.rb, line 39 def duplicate_arp? last_press && (last_press - Time.now).abs < 45 end