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