io-extra 1.2.5 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +45 -0
- data/MANIFEST +5 -2
- data/README +20 -16
- data/ext/extconf.rb +5 -4
- data/ext/io/extra.c +152 -278
- data/lib/io-extra.rb +17 -0
- data/test/test_io_extra.rb +21 -28
- metadata +77 -75
- metadata.gz.sig +0 -0
- data/Rakefile +0 -93
- data/doc/io_extra.txt +0 -85
- data/examples/example_io_extra.rb +0 -42
- data/examples/example_pread.rb +0 -24
- data/io-extra.gemspec +0 -38
data/lib/io-extra.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'io/extra'
|
2
|
+
|
3
|
+
class IO
|
4
|
+
EXTRA_VERSION = '1.4.0'.freeze
|
5
|
+
|
6
|
+
# Singleton version of the IO#pwrite method.
|
7
|
+
#
|
8
|
+
def self.pwrite(fd, string, offset)
|
9
|
+
fd.pwrite(string, offset)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Singleton version of the IO#pread method.
|
13
|
+
#
|
14
|
+
def self.pread(fd, maxlen, offset)
|
15
|
+
fd.pread(maxlen, offset)
|
16
|
+
end
|
17
|
+
end
|
data/test/test_io_extra.rb
CHANGED
@@ -4,13 +4,10 @@
|
|
4
4
|
# Test suite for the io-extra library. This test should be run via the
|
5
5
|
# 'rake test' task.
|
6
6
|
###########################################################################
|
7
|
-
require '
|
8
|
-
gem 'test-unit'
|
9
|
-
|
10
|
-
require 'test/unit'
|
7
|
+
require 'test-unit'
|
11
8
|
require 'rbconfig'
|
12
9
|
require 'io/nonblock'
|
13
|
-
require 'io
|
10
|
+
require 'io-extra'
|
14
11
|
|
15
12
|
class TC_IO_Extra < Test::Unit::TestCase
|
16
13
|
def setup
|
@@ -20,13 +17,8 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
20
17
|
end
|
21
18
|
|
22
19
|
def test_version
|
23
|
-
assert_equal('1.
|
24
|
-
|
25
|
-
|
26
|
-
def test_direct_constant
|
27
|
-
omit_unless(RbConfig::CONFIG['host_os'] =~ /linux/i, 'Linux-only')
|
28
|
-
assert_equal(040000, IO::DIRECT)
|
29
|
-
assert_equal(040000, File::DIRECT)
|
20
|
+
assert_equal('1.4.0', IO::EXTRA_VERSION)
|
21
|
+
assert_true(IO::EXTRA_VERSION.frozen?)
|
30
22
|
end
|
31
23
|
|
32
24
|
def test_open_direct
|
@@ -38,20 +30,17 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
38
30
|
end
|
39
31
|
|
40
32
|
def test_directio
|
41
|
-
omit_if(RbConfig::CONFIG['host_os'] =~ /darwin/i, 'unsupported')
|
42
33
|
assert_respond_to(@fh, :directio?)
|
43
34
|
assert_nothing_raised{ @fh.directio? }
|
44
35
|
end
|
45
36
|
|
46
37
|
def test_directio_set
|
47
|
-
omit_if(RbConfig::CONFIG['host_os'] =~ /darwin/i, 'unsupported')
|
48
38
|
assert_respond_to(@fh, :directio=)
|
49
39
|
assert_raises(StandardError){ @fh.directio = 99 }
|
50
40
|
assert_nothing_raised{ @fh.directio = IO::DIRECTIO_ON }
|
51
41
|
end
|
52
42
|
|
53
43
|
def test_constants
|
54
|
-
omit_if(RbConfig::CONFIG['host_os'] =~ /darwin/i, 'unsupported')
|
55
44
|
assert_not_nil(IO::DIRECTIO_ON)
|
56
45
|
assert_not_nil(IO::DIRECTIO_OFF)
|
57
46
|
end
|
@@ -66,6 +55,11 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
66
55
|
assert_nothing_raised{ IO.fdwalk(0){ } }
|
67
56
|
end
|
68
57
|
|
58
|
+
def test_fdwalk_honors_lowfd
|
59
|
+
omit_if(RbConfig::CONFIG['host_os'] =~ /darwin/i, 'unsupported')
|
60
|
+
IO.fdwalk(1){ |f| assert_true(f.fileno >= 1) }
|
61
|
+
end
|
62
|
+
|
69
63
|
def test_closefrom
|
70
64
|
assert_respond_to(IO, :closefrom)
|
71
65
|
assert_nothing_raised{ IO.closefrom(3) }
|
@@ -75,7 +69,7 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
75
69
|
@fh.close rescue nil
|
76
70
|
@fh = File.open(@file)
|
77
71
|
assert_respond_to(IO, :pread)
|
78
|
-
assert_equal("quick", IO.pread(@fh
|
72
|
+
assert_equal("quick", IO.pread(@fh, 5, 4))
|
79
73
|
end
|
80
74
|
|
81
75
|
def test_pread_binary
|
@@ -86,31 +80,24 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
86
80
|
assert_nothing_raised { @fh.syswrite("FOO\0HELLO") }
|
87
81
|
@fh.close rescue nil
|
88
82
|
@fh = File.open(@file)
|
89
|
-
assert_equal("O\0H", IO.pread(@fh
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_pread_ptr
|
93
|
-
@fh.close rescue nil
|
94
|
-
@fh = File.open(@file)
|
95
|
-
assert_respond_to(IO, :pread_ptr)
|
96
|
-
assert_kind_of(Integer, IO.pread_ptr(@fh.fileno, 5, 4))
|
83
|
+
assert_equal("O\0H", IO.pread(@fh, 3, size + 2))
|
97
84
|
end
|
98
85
|
|
99
86
|
def test_pread_last
|
100
87
|
@fh.close rescue nil
|
101
88
|
@fh = File.open(@file)
|
102
89
|
size = @fh.stat.size
|
103
|
-
assert_equal("ck\n", IO.pread(@fh
|
90
|
+
assert_equal("ck\n", IO.pread(@fh, 5, size - 3))
|
104
91
|
end
|
105
92
|
|
106
93
|
def test_pwrite
|
107
94
|
assert_respond_to(IO, :pwrite)
|
108
|
-
assert_nothing_raised{ IO.pwrite(@fh
|
95
|
+
assert_nothing_raised{ IO.pwrite(@fh, "HAL", 0) }
|
109
96
|
end
|
110
97
|
|
111
98
|
def test_writev
|
112
99
|
assert_respond_to(IO, :writev)
|
113
|
-
assert_equal(10, IO.writev(@fh
|
100
|
+
assert_equal(10, IO.writev(@fh, %w[hello world]))
|
114
101
|
end
|
115
102
|
|
116
103
|
def test_writev_retry
|
@@ -147,9 +134,15 @@ class TC_IO_Extra < Test::Unit::TestCase
|
|
147
134
|
end
|
148
135
|
end
|
149
136
|
|
137
|
+
def test_ttyname
|
138
|
+
assert_respond_to(@fh, :ttyname)
|
139
|
+
assert_nil(@fh.ttyname)
|
140
|
+
assert_kind_of(String, STDOUT.ttyname)
|
141
|
+
end
|
142
|
+
|
150
143
|
def teardown
|
151
144
|
@fh.close rescue nil
|
152
145
|
@fh = nil
|
153
|
-
File.delete(@file) if File.
|
146
|
+
File.delete(@file) if File.exist?(@file)
|
154
147
|
end
|
155
148
|
end
|
metadata
CHANGED
@@ -1,97 +1,99 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: io-extra
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 2
|
9
|
-
- 5
|
10
|
-
version: 1.2.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.4.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Daniel J. Berger
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
|
-
cert_chain:
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MREwDwYDVQQDDAhkamJl
|
14
|
+
cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
15
|
+
MB4XDTE4MDMxODE1MjIwN1oXDTI4MDMxNTE1MjIwN1owPzERMA8GA1UEAwwIZGpi
|
16
|
+
ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
17
|
+
bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALgfaroVM6CI06cxr0/h
|
18
|
+
A+j+pc8fgpRgBVmHFaFunq28GPC3IvW7Nvc3Y8SnAW7pP1EQIbhlwRIaQzJ93/yj
|
19
|
+
u95KpkP7tA9erypnV7dpzBkzNlX14ACaFD/6pHoXoe2ltBxk3CCyyzx70mTqJpph
|
20
|
+
75IB03ni9a8yqn8pmse+s83bFJOAqddSj009sGPcQO+QOWiNxqYv1n5EHcvj2ebO
|
21
|
+
6hN7YTmhx7aSia4qL/quc4DlIaGMWoAhvML7u1fmo53CYxkKskfN8MOecq2vfEmL
|
22
|
+
iLu+SsVVEAufMDDFMXMJlvDsviolUSGMSNRTujkyCcJoXKYYxZSNtIiyd9etI0X3
|
23
|
+
ctu0uhrFyrMZXCedutvXNjUolD5r9KGBFSWH1R9u2I3n3SAyFF2yzv/7idQHLJJq
|
24
|
+
74BMnx0FIq6fCpu5slAipvxZ3ZkZpEXZFr3cIBtO1gFvQWW7E/Y3ijliWJS1GQFq
|
25
|
+
058qERadHGu1yu1dojmFRo6W2KZvY9al2yIlbkpDrD5MYQIDAQABo3cwdTAJBgNV
|
26
|
+
HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUFZsMapgzJimzsbaBG2Tm8j5e
|
27
|
+
AzgwHQYDVR0RBBYwFIESZGpiZXJnOTZAZ21haWwuY29tMB0GA1UdEgQWMBSBEmRq
|
28
|
+
YmVyZzk2QGdtYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAW2tnYixXQtKxgGXq
|
29
|
+
/3iSWG2bLwvxS4go3srO+aRXZHrFUMlJ5W0mCxl03aazxxKTsVVpZD8QZxvK91OQ
|
30
|
+
h9zr9JBYqCLcCVbr8SkmYCi/laxIZxsNE5YI8cC8vvlLI7AMgSfPSnn/Epq1GjGY
|
31
|
+
6L1iRcEDtanGCIvjqlCXO9+BmsnCfEVehqZkQHeYczA03tpOWb6pon2wzvMKSsKH
|
32
|
+
ks0ApVdstSLz1kzzAqem/uHdG9FyXdbTAwH1G4ZPv69sQAFAOCgAqYmdnzedsQtE
|
33
|
+
1LQfaQrx0twO+CZJPcRLEESjq8ScQxWRRkfuh2VeR7cEU7L7KqT10mtUwrvw7APf
|
34
|
+
DYoeCY9KyjIBjQXfbj2ke5u1hZj94Fsq9FfbEQg8ygCgwThnmkTrrKEiMSs3alYR
|
35
|
+
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
|
+
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date:
|
39
|
+
dependencies:
|
40
|
+
- !ruby/object:Gem::Dependency
|
22
41
|
name: test-unit
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 9
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
- 1
|
33
|
-
- 1
|
34
|
-
version: 2.1.1
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
35
47
|
type: :development
|
36
|
-
|
37
|
-
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.0'
|
54
|
+
description: |2
|
55
|
+
Adds the IO.closefrom, IO.fdwalk, IO.pread, IO.pwrite, and IO.writev
|
56
|
+
singleton methods as well as the IO#directio, IO#directio? and IO#ttyname
|
57
|
+
instance methods (for those platforms that support them).
|
38
58
|
email: djberg96@gmail.com
|
39
59
|
executables: []
|
40
|
-
|
41
|
-
extensions:
|
60
|
+
extensions:
|
42
61
|
- ext/extconf.rb
|
43
|
-
extra_rdoc_files:
|
62
|
+
extra_rdoc_files:
|
44
63
|
- CHANGES
|
45
64
|
- README
|
46
65
|
- MANIFEST
|
47
66
|
- ext/io/extra.c
|
48
|
-
files:
|
49
|
-
-
|
50
|
-
-
|
51
|
-
|
52
|
-
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
-
|
58
|
-
|
59
|
-
|
60
|
-
has_rdoc: true
|
61
|
-
homepage: http://www.rubyforge.org/projects/shards
|
62
|
-
licenses:
|
63
|
-
- Artistic 2.0
|
67
|
+
files:
|
68
|
+
- lib/io-extra.rb
|
69
|
+
homepage: https://github.com/djberg96/io-extra
|
70
|
+
licenses:
|
71
|
+
- Apache-2.0
|
72
|
+
metadata:
|
73
|
+
homepage_uri: https://github.com/djberg96/io-extra
|
74
|
+
bug_tracker_uri: https://github.com/djberg96/io-extra/issues
|
75
|
+
changelog_uri: https://github.com/djberg96/io-extra/blob/master/CHANGES
|
76
|
+
documentation_uri: https://github.com/djberg96/io-extra/wiki
|
77
|
+
source_code_uri: https://github.com/djberg96/io-extra
|
78
|
+
wiki_uri: https://github.com/djberg96/io-extra/wiki
|
64
79
|
post_install_message:
|
65
80
|
rdoc_options: []
|
66
|
-
|
67
|
-
require_paths:
|
81
|
+
require_paths:
|
68
82
|
- lib
|
69
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
|
71
|
-
requirements:
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
72
85
|
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
- 8
|
78
|
-
- 6
|
79
|
-
version: 1.8.6
|
80
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 2.5.0
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
83
90
|
- - ">="
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
segments:
|
87
|
-
- 0
|
88
|
-
version: "0"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
89
93
|
requirements: []
|
90
|
-
|
91
|
-
rubyforge_project: shards
|
92
|
-
rubygems_version: 1.6.2
|
94
|
+
rubygems_version: 3.0.6
|
93
95
|
signing_key:
|
94
|
-
specification_version:
|
95
|
-
summary: Adds extra methods to the IO class
|
96
|
-
test_files:
|
96
|
+
specification_version: 4
|
97
|
+
summary: Adds extra methods to the IO class
|
98
|
+
test_files:
|
97
99
|
- test/test_io_extra.rb
|
metadata.gz.sig
ADDED
Binary file
|
data/Rakefile
DELETED
@@ -1,93 +0,0 @@
|
|
1
|
-
require 'rake'
|
2
|
-
require 'rake/clean'
|
3
|
-
require 'rake/testtask'
|
4
|
-
require 'rbconfig'
|
5
|
-
include RbConfig
|
6
|
-
|
7
|
-
CLEAN.include(
|
8
|
-
'**/*.gem', # Gem files
|
9
|
-
'**/*.rbc', # Rubinius
|
10
|
-
'**/*.o', # C object file
|
11
|
-
'**/*.log', # Ruby extension build log
|
12
|
-
'**/Makefile', # C Makefile
|
13
|
-
'**/conftest.dSYM', # OS X build directory
|
14
|
-
"**/*.#{CONFIG['DLEXT']}" # C shared object
|
15
|
-
)
|
16
|
-
|
17
|
-
if File::ALT_SEPARATOR
|
18
|
-
STDERR.puts 'Not supported on this platform. Exiting.'
|
19
|
-
exit(-1)
|
20
|
-
end
|
21
|
-
|
22
|
-
desc "Build the io-extra library (but don't install it)"
|
23
|
-
task :build => [:clean] do
|
24
|
-
Dir.chdir('ext') do
|
25
|
-
ruby 'extconf.rb'
|
26
|
-
sh 'make'
|
27
|
-
build_file = File.join(Dir.pwd, 'extra.' + CONFIG['DLEXT'])
|
28
|
-
Dir.mkdir('io') unless File.exists?('io')
|
29
|
-
FileUtils.cp(build_file, 'io')
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
namespace :gem do
|
34
|
-
desc 'Create the io-extra gem'
|
35
|
-
task :create => [:clean] do
|
36
|
-
spec = eval(IO.read('io-extra.gemspec'))
|
37
|
-
Gem::Builder.new(spec).build
|
38
|
-
end
|
39
|
-
|
40
|
-
desc "Install the io-extra library as a gem"
|
41
|
-
task :install => [:create] do
|
42
|
-
file = Dir["io-extra*.gem"].last
|
43
|
-
sh "gem install #{file}"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
namespace :archive do
|
48
|
-
spec = eval(IO.read('io-extra.gemspec'))
|
49
|
-
file = "io-extra-#{spec.version}"
|
50
|
-
|
51
|
-
desc 'Create an io-extra tarball.'
|
52
|
-
task :tar do
|
53
|
-
file = file + ".tar"
|
54
|
-
cmd = "git archive --format=tar --prefix=#{file}/ -o #{file} HEAD"
|
55
|
-
sh cmd
|
56
|
-
end
|
57
|
-
|
58
|
-
desc 'Create a gzipped tarball for io-extra'
|
59
|
-
task :gz => [:tar] do
|
60
|
-
sh "gzip #{file}"
|
61
|
-
end
|
62
|
-
|
63
|
-
desc 'Create a bzip2 tarball for io-extra'
|
64
|
-
task :bz2 => [:tar] do
|
65
|
-
sh "bzip2 #{file}"
|
66
|
-
end
|
67
|
-
|
68
|
-
desc 'Create a zipped tarball for io-extra'
|
69
|
-
task :zip do
|
70
|
-
sh "git archive --format=zip --prefix=#{file}/ -o #{file}.zip HEAD"
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
desc "Run the example io-extra program"
|
75
|
-
task :example => [:build] do
|
76
|
-
ruby '-Iext examples/example_io_extra.rb'
|
77
|
-
end
|
78
|
-
|
79
|
-
namespace :example do
|
80
|
-
desc "Run the IO.pread example program."
|
81
|
-
task :pread do
|
82
|
-
ruby '-Iext examples/example_io_extra.rb'
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
Rake::TestTask.new do |t|
|
87
|
-
task :test => :build
|
88
|
-
t.libs << 'ext'
|
89
|
-
t.verbose = true
|
90
|
-
t.warning = true
|
91
|
-
end
|
92
|
-
|
93
|
-
task :default => :test
|
data/doc/io_extra.txt
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
= Description
|
2
|
-
The io-extra library provides a few extra IO methods that you may find
|
3
|
-
handy.
|
4
|
-
|
5
|
-
= Supported Platforms
|
6
|
-
Works on most Unix platforms.
|
7
|
-
|
8
|
-
Not supported on MS Windows or OS X.
|
9
|
-
|
10
|
-
= Synopsis
|
11
|
-
require "io/extra"
|
12
|
-
|
13
|
-
# Print the fileno of each file handle and then close it
|
14
|
-
IO.fdwalk(0){ |fh|
|
15
|
-
p fh.fileno
|
16
|
-
fh.close
|
17
|
-
}
|
18
|
-
|
19
|
-
# Close all file handles with a fileno greater than or equal to 2.
|
20
|
-
IO.closefrom(2)
|
21
|
-
|
22
|
-
= Class Methods
|
23
|
-
IO.closefrom(low_fd)
|
24
|
-
Closes all open file descriptors greater than or equal to 'low_fd'.
|
25
|
-
|
26
|
-
This uses your systems native closefrom() function, if supported. If not,
|
27
|
-
this method uses a slightly less efficient manual approach that uses
|
28
|
-
getrlimit() behind the scenes.
|
29
|
-
|
30
|
-
IO.fdwalk(low_fd){ |fh| ... }
|
31
|
-
Iterates over each open file descriptor and yields back a File object.
|
32
|
-
Note that it is up to you to close file handles, if desired, when this
|
33
|
-
method is used.
|
34
|
-
|
35
|
-
Not supported on all platforms.
|
36
|
-
|
37
|
-
IO.pread(fd, length, offset)
|
38
|
-
Reads +length+ bytes of data from the given +fd+, starting at +offset.
|
39
|
-
The primary advantage of this method over Ruby's IO#read method is that
|
40
|
-
it performs the read without changing the file pointer.
|
41
|
-
|
42
|
-
Not supported on all platforms.
|
43
|
-
|
44
|
-
IO.pwrite(fd, buf, offset)
|
45
|
-
Writes +buf+ to the given +fd+, starting at +offset. The primary advantage
|
46
|
-
of this method over a standard seek & write approach is that it performs
|
47
|
-
the write without changing the file pointer.
|
48
|
-
|
49
|
-
Not supported on all platforms.
|
50
|
-
|
51
|
-
= Instance methods
|
52
|
-
IO#directio?
|
53
|
-
Returns true or false, based on whether directio has been set for the
|
54
|
-
current handle. The default is false.
|
55
|
-
|
56
|
-
Note supported on all platforms.
|
57
|
-
|
58
|
-
IO#directio=(io_const)
|
59
|
-
Sets the advice for the current file descriptor using directio(). Valid
|
60
|
-
values are IO::DIRECTIO_ON and IO::DIRECTIO_OFF.
|
61
|
-
|
62
|
-
All file descriptors start at DIRECTIO_OFF, unless your filesystem has
|
63
|
-
been mounted using 'forcedirectio' (and supports that option).
|
64
|
-
|
65
|
-
Not supported on all platforms
|
66
|
-
|
67
|
-
= Constants
|
68
|
-
IO::DIRECTIO_ON
|
69
|
-
This value can be passed to IO#directio= in order to turn directio on for
|
70
|
-
the given file handle.
|
71
|
-
|
72
|
-
This value is only defined if your platform supports the directio()
|
73
|
-
function.
|
74
|
-
IO::DIRECTIO_OFF
|
75
|
-
This value can be passed to IO#directio= in order to turn directio off for
|
76
|
-
the given file handle.
|
77
|
-
|
78
|
-
This value is only defined if your platform supports the directio()
|
79
|
-
function.
|
80
|
-
|
81
|
-
IO::EXTRA_VERSION
|
82
|
-
Returns the current version number of this library as a String.
|
83
|
-
|
84
|
-
= Other documentation
|
85
|
-
See the README for more documentation.
|