lib/rio/factory.rb in rio-0.3.7 vs lib/rio/factory.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
@@ -62,16 +62,22 @@
def subscheme_module(sch)
@ss_module[sch] ||= case sch
when 'file','path'
require 'rio/scheme/path'
Path
+ when 'zfile','zpath'
+ require 'rio/ext/zipfile/zpath'
+ Ext::ZipFile::ZPath
when 'stdio','stdin','stdout'
require 'rio/scheme/stdio'
StdIO
when 'stderr'
require 'rio/scheme/stderr'
StdErr
+ when 'null'
+ require 'rio/scheme/null'
+ Null
when 'tempfile'
require 'rio/scheme/temp'
Temp::File
when 'temp'
require 'rio/scheme/temp'
@@ -136,58 +142,36 @@
'Dir::Stream' => 'rio/dir',
'Dir::NonExisting' => 'rio/dir',
'Stream::Close' => 'rio/stream/open',
'Stream::Reset' => 'rio/stream',
-
'Stream::Open' => 'rio/stream/open',
'Stream::Input' => 'rio/stream',
'Stream::Output' => 'rio/stream',
'Stream::InOut' => 'rio/stream',
'Stream::Duplex::Open' => 'rio/stream/duplex',
- 'Stream::Duplex::Input' => 'rio/stream/duplex',
- 'Stream::Duplex::Output' => 'rio/stream/duplex',
- 'Stream::Duplex::InOut' => 'rio/stream/duplex',
- 'Path::Stream::Input' => 'rio/scheme/path',
- 'Path::Stream::Output' => 'rio/scheme/path',
- 'Path::Stream::InOut' => 'rio/scheme/path',
'Path::Stream::Open' => 'rio/scheme/path',
- 'StrIO::Stream::Input' => 'rio/scheme/strio',
- 'StrIO::Stream::Output' => 'rio/scheme/strio',
- 'StrIO::Stream::InOut' => 'rio/scheme/strio',
'StrIO::Stream::Open' => 'rio/scheme/strio',
+ 'Null::Stream::Open' => 'rio/scheme/null',
+
+ 'ZipFile::CentralDir::Open' => 'rio/zipfile/centraldir',
+ 'ZipFile::CentralDir::Stream' => 'rio/zipfile/centraldir',
+ 'ZipFile::CentralDir::Close' => 'rio/zipfile/centraldir',
+ 'ZipFile::Path::Str' => 'rio/zipfile/path',
+
'CmdPipe::Stream::Reset' => 'rio/scheme/cmdpipe',
-# 'CmdPipe::Stream::Open' => 'rio/scheme/cmdpipe',
-# 'CmdPipe::Stream::Input' => 'rio/scheme/cmdpipe',
-# 'CmdPipe::Stream::Output' => 'rio/scheme/cmdpipe',
-# 'CmdPipe::Stream::InOut' => 'rio/scheme/cmdpipe',
'HTTP::Stream::Input' => 'rio/scheme/http',
'HTTP::Stream::Open' => 'rio/scheme/http',
'Temp::Reset' => 'rio/scheme/temp',
'Temp::Stream::Open' => 'rio/scheme/temp',
- #'Temp::Stream::Close' => 'rio/scheme/temp',
- #'Temp::Stream::InOut' => 'rio/scheme/temp',
- 'FTP::State::Dir' => 'rio/ftp',
- 'FTP::State::File' => 'rio/ftp',
- 'FTP::State::Reset' => 'rio/ftp',
- 'FTP::State::Open' => 'rio/ftp',
- 'FTP::Stream::Input' => 'rio/ftp',
- 'FTP::Stream::Open' => 'rio/ftp',
- 'FTP::Stream::Close' => 'rio/ftp',
- 'FTP::Stream::Reset' => 'rio/ftp',
-
- 'AryIO::Stream::Input' => 'rio/scheme/aryio',
- 'AryIO::Stream::Output' => 'rio/scheme/aryio',
- 'AryIO::Stream::InOut' => 'rio/scheme/aryio',
- 'AryIO::Stream::Open' => 'rio/scheme/aryio',
}
def state2class(state_name)
#p "state_name=#{state_name}"
return @state_class[state_name] if @state_class.has_key?(state_name)
if STATE2FILE.has_key?(state_name)
@@ -216,11 +200,10 @@
private :_change_state
# factory creates a state from args
def create_state(*args)
riorl = RIO::RL::Builder.build(*args)
-# state_class = state2class(reset_state(riorl))
- create_handle(state2class(reset_state(riorl)).new_r(riorl))
+ create_handle(state2class(reset_state(riorl)).new(riorl))
end
def clone_state(state)
create_handle(state.target.clone)
end
def create_handle(new_state)