summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-io/mrblib
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-io/mrblib')
-rw-r--r--mrbgems/mruby-io/mrblib/io.rb33
1 files changed, 4 insertions, 29 deletions
diff --git a/mrbgems/mruby-io/mrblib/io.rb b/mrbgems/mruby-io/mrblib/io.rb
index 006578222..9192d7bf2 100644
--- a/mrbgems/mruby-io/mrblib/io.rb
+++ b/mrbgems/mruby-io/mrblib/io.rb
@@ -26,11 +26,11 @@ class IO
end
end
- def self.popen(command, mode = 'r', opts={}, &block)
+ def self.popen(command, mode = 'r', **opts, &block)
if !self.respond_to?(:_popen)
raise NotImplementedError, "popen is not supported on this platform"
end
- io = self._popen(command, mode, opts)
+ io = self._popen(command, mode, **opts)
return io unless block
begin
@@ -61,39 +61,14 @@ class IO
end
end
- def self.read(path, length=nil, offset=nil, opt=nil)
- if not opt.nil? # 4 arguments
- offset ||= 0
- elsif not offset.nil? # 3 arguments
- if offset.is_a? Hash
- opt = offset
- offset = 0
- else
- opt = {}
- end
- elsif not length.nil? # 2 arguments
- if length.is_a? Hash
- opt = length
- offset = 0
- length = nil
- else
- offset = 0
- opt = {}
- end
- else # only 1 argument
- opt = {}
- offset = 0
- length = nil
- end
-
+ def self.read(path, length=nil, offset=0, mode: "r")
str = ""
fd = -1
io = nil
begin
if path[0] == "|"
- io = IO.popen(path[1..-1], (opt[:mode] || "r"))
+ io = IO.popen(path[1..-1], mode)
else
- mode = opt[:mode] || "r"
fd = IO.sysopen(path, mode)
io = IO.open(fd, mode)
end