Class: Finder

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

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Finder

Returns a new instance of Finder.



56
57
58
# File 'lib/bluebutton.rb', line 56

def initialize name
  @name = name
end

Instance Method Details

#from_sysObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/bluebutton.rb', line 60

def from_sys
  finded = Dir.glob("/sys/**/name").select do |file|
    File.read(file).downcase[@name.downcase]
  end.first

  raise "Can't find device info '#{@name}' in /sys/**/*" if finded.nil?

  device = "/dev/" + Dir.glob("#{File.dirname(finded)}/**/uevent").map do |file|
    File.read(file).split("\n").select{|s| s['DEVNAME']}.compact.first
  end.compact.flatten.first.split("=")[1] rescue nil

  raise "Can't find device file for '#{@name}' in #{File.dirname(finded)}/**/uevent" if device.nil?

  return device
end