Sha256: 3a18ade254f114a58d0a90a9ad2b191df8b528c6b0281d0d9d7ba89a4c65df59

Contents?: true

Size: 926 Bytes

Versions: 25

Compression:

Stored size: 926 Bytes

Contents

# frozen_string_literal: true

#
# Copyright 2013 whiteleaf. All rights reserved.
#

# rubocop:disable Naming/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

25 entries across 25 versions & 1 rubygems

Version Path
narou-3.9.1 lib/device/library/windows.rb
narou-3.9.0 lib/device/library/windows.rb
narou-3.8.2 lib/device/library/windows.rb
narou-3.8.1 lib/device/library/windows.rb
narou-3.8.0 lib/device/library/windows.rb
narou-3.7.2 lib/device/library/windows.rb
narou-3.7.1 lib/device/library/windows.rb
narou-3.7.0 lib/device/library/windows.rb
narou-3.6.0 lib/device/library/windows.rb
narou-3.5.1 lib/device/library/windows.rb
narou-3.5.0.1 lib/device/library/windows.rb
narou-3.5.0 lib/device/library/windows.rb
narou-3.4.8 lib/device/library/windows.rb
narou-3.4.7.1 lib/device/library/windows.rb
narou-3.4.7 lib/device/library/windows.rb
narou-3.4.6.1 lib/device/library/windows.rb
narou-3.4.6 lib/device/library/windows.rb
narou-3.4.5 lib/device/library/windows.rb
narou-3.4.3 lib/device/library/windows.rb
narou-3.4.2 lib/device/library/windows.rb