lib/macaddr.rb in macaddr-1.0.0 vs lib/macaddr.rb in macaddr-1.2.0

- old
+ new

@@ -10,13 +10,22 @@ # Mac.address # # To return an array of all MAC addresses: # # Mac.address.list +# +begin + require 'rubygems' +rescue LoadError + nil +end + +require 'systemu' + module Mac - VERSION = '1.0.0' + VERSION = '1.2.0' def Mac.version() ::Mac::VERSION end class << self @@ -40,13 +49,13 @@ null = test(?e, '/dev/null') ? '/dev/null' : 'NUL' lines = nil cmds.each do |cmd| - stdout = IO.popen("#{ cmd } 2> #{ null }"){|fd| fd.readlines} rescue next + status, stdout, stderr = systemu(cmd) rescue next next unless stdout and stdout.size > 0 - lines = stdout and break + lines = stdout.split(/\n/) and break end raise "all of #{ cmds.join ' ' } failed" unless lines candidates = lines.select{|line| line =~ re} raise 'no mac address candidates' unless candidates.first @@ -65,5 +74,7 @@ # Shorter alias for #address alias_method "addr", "address" end end + +Macaddr = Mac