Updated RubySpec submodule to 9f66d0b1.
[rbx.git] / kernel / bootstrap / io.rb
blob29cebb8ac0cdd60977c3d7118e5b602a61f74663
1 class IO
2   def self.open_with_mode(path, mode, perm)
3     Ruby.primitive :io_open
4     raise PrimitiveFailure, "primitive failed"
5   end
7   def self.create_pipe(lhs, rhs)
8     Ruby.primitive :create_pipe
9     raise PrimitiveFailure, "primitive failed"
10   end
12   def write(str)
13     Ruby.primitive :io_write
14     raise PrimitiveFailure, "IO#write failed. Might not have passed a string."
15   end
17   def prim_read(size, buffer)
18     Ruby.primitive :io_read
19     raise PrimitiveFailure, "primitive failed"
20   end
22   def prim_reopen(other)
23     Ruby.primitive :io_reopen
24     raise ArgumentError, "only accepts an IO object"
25   end
27   def prim_seek(amount, whence)
28     Ruby.primitive :io_seek
29     raise PrimitiveFailure, "primitive failed"
30   end
32   def prim_operation(which)
33     Ruby.primitive :io_operation
34     raise PrimitiveFailure, "primitive failed"
35   end
37   def reopen(other)
38     prim_reopen other
39   end
41   def tty?
42     prim_operation(0)
43   end
45   def ttyname
46     prim_operation(1)
47   end
49   def close
50     Ruby.primitive :io_close_ng
51     raise PrimitiveFailure, "IO#close primitive failed"
52   end
53 end