Sha256: dc28b406cab44b5ab2cf7bfcd01e9ed8e3875b76945a022d28aa2a01f77e0d1b

Contents?: true

Size: 837 Bytes

Versions: 5

Compression:

Stored size: 837 Bytes

Contents

# -*- coding: utf-8 -*-
#
# Copyright 2013 whiteleaf. All rights reserved.
#

require "win32ole"
require_relative "../../extensions/windows"

module Device::Library
  module Windows
    def get_device_root_dir(volume_name)
      @@FileSystemObject ||= WIN32OLE.new("Scripting.FileSystemObject")
      get_drives.each do |drive_letter|
        drive_info = @@FileSystemObject.GetDrive(drive_letter)
        vol = drive_info.VolumeName rescue ""
        if vol.downcase == volume_name.downcase
          return File.expand_path(drive_letter)
        end
      end
      nil
    end

    def get_drives
      result = []
      bits = WinAPI.GetLogicalDrives
      26.times do |i|
        if bits & (1 << i) != 0
          result << "#{(65 + i).chr}:\\"
        end
      end
      result
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
narou-1.7.1 lib/device/library/windows.rb
narou-1.6.4 lib/device/library/windows.rb
narou-1.6.3 lib/device/library/windows.rb
narou-1.6.1 lib/device/library/windows.rb
narou-1.6.0 lib/device/library/windows.rb