Sha256: 8da97b7d7edfb7dba4c2736e2fbeb7eb256aa88ffcaf4768d35d0053d91ac5e0

Contents?: true

Size: 918 Bytes

Versions: 24

Compression:

Stored size: 918 Bytes

Contents

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

# rubocop:disable Style/VariableName

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

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

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

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
narou-3.2.3 lib/device/library/windows.rb
narou-3.2.2 lib/device/library/windows.rb
narou-3.2.1 lib/device/library/windows.rb
narou-3.2.0.1 lib/device/library/windows.rb
narou-3.2.0 lib/device/library/windows.rb
narou-3.1.11 lib/device/library/windows.rb
narou-3.1.10 lib/device/library/windows.rb
narou-3.1.9 lib/device/library/windows.rb
narou-3.1.8 lib/device/library/windows.rb
narou-3.1.7 lib/device/library/windows.rb
narou-3.1.6 lib/device/library/windows.rb
narou-3.1.5 lib/device/library/windows.rb
narou-3.1.4 lib/device/library/windows.rb
narou-3.1.3 lib/device/library/windows.rb
narou-3.1.2 lib/device/library/windows.rb
narou-3.1.1 lib/device/library/windows.rb
narou-3.0.5.1 lib/device/library/windows.rb
narou-3.0.5 lib/device/library/windows.rb
narou-3.0.4 lib/device/library/windows.rb
narou-3.0.3 lib/device/library/windows.rb