Module: XDo::Drive
- Extended by:
- Open3
- Defined in:
- lib/xdo/drive.rb
Overview
Some methods to interact with CD (and DVD, of course) drives. The value of the drive
parameter of many methods can be either a mount point or a device file like scd0.
If you don’t pass in a drive name, the returnvalue of #default will be used.
Class Method Summary collapse
-
.close(drive = nil) ⇒ Object
Closes a drive.
-
.default ⇒ Object
Returns the mount point of the default drive.
-
.eject(drive = nil) ⇒ Object
Opens a drive.
-
.lock(drive = nil) ⇒ Object
Locks a drive, so that it can’t be opened by using the eject button.
-
.release(drive = nil) ⇒ Object
Unlocks a drive, so that it can be opened by the eject button.
Class Method Details
.close(drive = nil) ⇒ Object
Closes a drive.
27 28 29 30 31 32 |
# File 'lib/xdo/drive.rb', line 27 def close(drive = nil) drive = default unless drive err = "" popen3("eject -t #{drive}"){|stdin, stdout, stderr| err << stderr.read} raise(XDo::XError, err) unless err.empty? end |
.default ⇒ Object
Returns the mount point of the default drive. You can use it as a value for a drive
parameter.
36 37 38 39 40 41 42 |
# File 'lib/xdo/drive.rb', line 36 def default err = "" out = "" popen3("#{XDo::EJECT} -d"){|stdin, stdout, stderr| out << stdout.read; err << stderr.read} raise(XDo::XError, err) unless err.empty? out.match(/`(.*)'/)[1] end |
.eject(drive = nil) ⇒ Object
Opens a drive.
18 19 20 21 22 23 24 |
# File 'lib/xdo/drive.rb', line 18 def eject(drive = nil) err = "" drive = default unless drive popen3("#{XDo::EJECT} #{drive}"){|stdin, stdout, stderr| err << stderr.read} raise(XDo::XError, err) unless err.empty? true end |
.lock(drive = nil) ⇒ Object
Locks a drive, so that it can’t be opened by using the eject button.
46 47 48 49 50 51 52 |
# File 'lib/xdo/drive.rb', line 46 def lock(drive = nil) drive = default unless drive err = "" popen3("#{XDo::EJECT} -i on #{drive}"){|stdin, stdout, stderr| err << stderr.read} raise(XDo::XError, err) unless err.empty? true end |
.release(drive = nil) ⇒ Object
Unlocks a drive, so that it can be opened by the eject button.
56 57 58 59 60 61 62 |
# File 'lib/xdo/drive.rb', line 56 def release(drive = nil) drive = default unless drive err = "" popen3("#{XDo::EJECT} -i off #{drive}") raise(XDo::XError,err) unless err.empty? true end |