Class: Rubyconf

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyconf.rb

Defined Under Namespace

Classes: CurrentNetwork, WirelessNetwork

Constant Summary collapse

VERSION =
'1.0.0'

Instance Method Summary collapse

Instance Method Details

#current_networkObject



75
76
77
78
79
80
81
# File 'lib/rubyconf.rb', line 75

def current_network
  data = `airport -I`

  vals = data.split("\n").map { |x| x.split(":", 2).map { |i| i.strip } }

  CurrentNetwork.new Hash[*vals.flatten]
end

#post!Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/rubyconf.rb', line 94

def post!
  data = current_network.external

  data['ttg'] = ttg

  Net::HTTP.start "rubyconf-wireless.herokuapp.com", 80 do |http|
    r = http.post "/sampler", JSON.dump(data)
    if r.code != "200"
      puts "Error posting results: #{r.inspect}"
      if $DEBUG
        puts r.body
      end
    end
  end
end

#refresh_wireless(xml = nil) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/rubyconf.rb', line 40

def refresh_wireless(xml=nil)
  xml ||= `airport -x -s`

  out = Plist.parse_xml xml

  @networks = out.map { |w| WirelessNetwork.new(w) }
end

#show_networks(filter = /./) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/rubyconf.rb', line 48

def show_networks(filter=/./)
  printf "%20s %4s %s\n", "SSID", "RSSI", "CHANNEL"
  @networks.each do |n|
    if n.ssid =~ filter
      n.show
    end
  end
end

#ttgObject



83
84
85
86
87
88
89
90
91
92
# File 'lib/rubyconf.rb', line 83

def ttg
  s = TCPSocket.new "74.125.224.134", 80
  start = Time.now
  s << "GET / HTTP/1.0\r\n\r\n"
  s.read(4)
  fin = Time.now
  s.close

  fin - start
end