lib/rio/factory.rb in rio-0.3.4 vs lib/rio/factory.rb in rio-0.3.6
- old
+ new
@@ -80,10 +80,13 @@
require 'rio/scheme/temp'
Temp::Dir
when 'strio'
require 'rio/scheme/strio'
StrIO
+ when 'cmdpipe'
+ require 'rio/scheme/cmdpipe'
+ CmdPipe
when 'aryio'
require 'rio/scheme/aryio'
AryIO
when 'http','https'
require 'rio/scheme/http'
@@ -114,24 +117,12 @@
end
def reset_state(rl)
mod = subscheme_module(rl.scheme)
mod.const_get(:RESET_STATE) unless mod.nil?
- #p st
-# @reset_class[st] ||= case st
-# when 'Path::Reset'
-# require 'rio/path/reset'
-# Path::Reset
-# when 'Stream::Open'
-# require 'rio/stream/open'
-# Stream::Open
-# else
-# raise ArgumentError,"Unknown RESET_STATE (#{st})"
-# end
-
-
end
+
STATE2FILE = {
'Path::Reset' => 'rio/path/reset',
'Path::Empty' => 'rio/path',
'Path::Str' => 'rio/path',
'Path::NonExisting' => 'rio/path',
@@ -166,10 +157,16 @@
'StrIO::Stream::Input' => 'rio/scheme/strio',
'StrIO::Stream::Output' => 'rio/scheme/strio',
'StrIO::Stream::InOut' => 'rio/scheme/strio',
'StrIO::Stream::Open' => 'rio/scheme/strio',
+ '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',
@@ -223,10 +220,10 @@
riorl = RIO::RL::Builder.build(*args)
# state_class = state2class(reset_state(riorl))
create_handle(state2class(reset_state(riorl)).new_r(riorl))
end
def clone_state(state)
- create_handle(state.clone)
+ create_handle(state.target.clone)
end
def create_handle(new_state)
hndl = Handle.new(new_state)
new_state.try_state = try_state_proc(new_state,hndl)
hndl