lib/rio/rl/ioi.rb in rio-0.3.7 vs lib/rio/rl/ioi.rb in rio-0.3.8

- old
+ new

@@ -1,8 +1,8 @@ #-- # =============================================================================== -# Copyright (c) 2005, Christopher Kleckner +# Copyright (c) 2005, 2006 Christopher Kleckner # All rights reserved # # This file is part of the Rio library for ruby. # # Rio is free software; you can redistribute it and/or modify @@ -20,11 +20,11 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # =============================================================================== #++ # # To create the documentation for Rio run the command -# rake rdoc +# ruby build_doc.rb # from the distribution directory. Then point your browser at the 'doc/rdoc' directory. # # Suggested Reading # * RIO::Doc::SYNOPSIS # * RIO::Doc::INTRO @@ -34,34 +34,44 @@ # <b>Rio is pre-alpha software. # The documented interface and behavior is subject to change without notice.</b> require 'rio/rl/base' +require 'rio/ioh' +require 'rio/fs/stream' module RIO module RL class IOIBase < Base RESET_STATE = 'Stream::Open' + def openfs_() + RIO::FS::Stream.create() + end def scheme() self.class.const_get(:RIOSCHEME) end def opaque() '' end def self.splitrl(s) nil end #def path() self.class.const_get(:RIOPATH) end def to_s() url() end + def open(ios) + IOH::Stream.new(ios) + end end end module RL class SysIOBase < IOIBase attr_reader :ios attr_writer :ios protected(:ios=) def initialize(ios=nil) @ios = ios + super end def initialize_copy(cp) @ios = cp.ios.clone unless cp.ios.nil? end - def open(*args) - @ios + def open(ios=nil) + @ios = ios unless ios.nil? + super(@ios) end end end end