summaryrefslogtreecommitdiffhomepage
path: root/mrblib/io.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrblib/io.rb')
-rw-r--r--mrblib/io.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/mrblib/io.rb b/mrblib/io.rb
index 902d847d2..fceea1171 100644
--- a/mrblib/io.rb
+++ b/mrblib/io.rb
@@ -171,11 +171,16 @@ class IO
end
def read(length = nil)
- unless length.nil? or length.class == Fixnum
- raise TypeError.new "can't convert #{length.class} into Integer"
- end
- if length && length < 0
- raise ArgumentError.new "negative length: #{length} given"
+ unless length.nil?
+ unless length.is_a? Fixnum
+ raise TypeError.new "can't convert #{length.class} into Integer"
+ end
+ if length < 0
+ raise ArgumentError.new "negative length: #{length} given"
+ end
+ if length == 0
+ return "" # easy case
+ end
end
str = ''