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