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