class RushButton::Server
Public Class Methods
new(iface)
click to toggle source
# File lib/rush_button/server.rb, line 6 def initialize iface @iface = iface @buttons = [] end
Public Instance Methods
add(mac_addr, &block)
click to toggle source
# File lib/rush_button/server.rb, line 11 def add mac_addr, &block @buttons << DashButton.new(mac_addr).on_press(&block) end
start()
click to toggle source
# File lib/rush_button/server.rb, line 15 def start puts "Dash Button capturing..." if $DEBUG cap = Capture.new(iface:@iface, filter:Protocol::ARP, promisc:true) cap.stream.each do |pkt| if ARPPacket.can_parse?(pkt) src_mac = ARPPacket.parse(pkt).eth_src_readable @buttons.find {|e| e.mac == src_mac}&.press end end end