rio 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. data/ChangeLog +1273 -1482
  2. data/README +2 -2
  3. data/Rakefile +5 -5
  4. data/VERSION +1 -1
  5. data/{RUNME.1st.rb → build_doc.rb} +4 -10
  6. data/doc/ANNOUNCE +33 -80
  7. data/doc/RELEASE_NOTES +31 -1
  8. data/doc/generators/template/html/rio.rb +3 -3
  9. data/lib/rio/abstract_method.rb +2 -2
  10. data/lib/rio/argv.rb +2 -2
  11. data/lib/rio/arycopy.rb +2 -2
  12. data/lib/rio/assert.rb +2 -2
  13. data/lib/rio/base.rb +2 -2
  14. data/lib/rio/callstr.rb +47 -0
  15. data/lib/rio/const.rb +52 -0
  16. data/lib/rio/construct.rb +6 -24
  17. data/lib/rio/constructor.rb +12 -2
  18. data/lib/rio/context/autoclose.rb +73 -0
  19. data/lib/rio/context/copying.rb +2 -2
  20. data/lib/rio/context/cxx.rb +2 -2
  21. data/lib/rio/context/dir.rb +2 -2
  22. data/lib/rio/context/gzip.rb +2 -2
  23. data/lib/rio/context/methods.rb +6 -34
  24. data/lib/rio/context/skip.rb +2 -2
  25. data/lib/rio/context/stream.rb +2 -2
  26. data/lib/rio/context.rb +17 -2
  27. data/lib/rio/cp.rb +35 -9
  28. data/lib/rio/def.rb +54 -0
  29. data/lib/rio/dir.rb +19 -20
  30. data/lib/rio/doc/HOWTO.rb +23 -7
  31. data/lib/rio/doc/INTRO.rb +57 -23
  32. data/lib/rio/doc/MISC.rb +2 -2
  33. data/lib/rio/doc/OPTIONAL.rb +134 -0
  34. data/lib/rio/doc/SYNOPSIS.rb +11 -4
  35. data/lib/rio/doc.rb +2 -2
  36. data/lib/rio/entrysel.rb +25 -6
  37. data/lib/rio/exception/copy.rb +2 -2
  38. data/lib/rio/exception/notsupported.rb +47 -0
  39. data/lib/rio/exception/open.rb +2 -2
  40. data/lib/rio/exception/state.rb +2 -2
  41. data/lib/rio/exception.rb +2 -2
  42. data/lib/rio/ext/csv.rb +56 -11
  43. data/lib/rio/ext/yaml.rb +2 -2
  44. data/lib/rio/ext/zipfile.rb +91 -0
  45. data/lib/rio/ext.rb +38 -3
  46. data/lib/rio/factory.rb +17 -34
  47. data/lib/rio/file.rb +48 -8
  48. data/lib/rio/filter/closeoneof.rb +36 -16
  49. data/lib/rio/filter/gzip.rb +2 -2
  50. data/lib/rio/filter.rb +2 -2
  51. data/lib/rio/fs/base.rb +42 -0
  52. data/lib/rio/fs/impl.rb +123 -0
  53. data/lib/rio/fs/native.rb +76 -0
  54. data/lib/rio/{record.rb → fs/stream.rb} +21 -18
  55. data/lib/rio/fs/url.rb +64 -0
  56. data/lib/rio/ftp/{ioh.rb → conncache.rb} +38 -39
  57. data/lib/rio/ftp/dir.rb +95 -0
  58. data/lib/rio/ftp/fs.rb +173 -0
  59. data/lib/rio/ftp/ftpfile.rb +20 -0
  60. data/lib/rio/grande.rb +2 -2
  61. data/lib/rio/handle.rb +2 -2
  62. data/lib/rio/if/basic.rb +2 -2
  63. data/lib/rio/if/csv.rb +2 -2
  64. data/lib/rio/if/dir.rb +2 -2
  65. data/lib/rio/if/file.rb +26 -2
  66. data/lib/rio/if/fileordir.rb +44 -49
  67. data/lib/rio/if/grande.rb +32 -10
  68. data/lib/rio/if/grande_entry.rb +12 -2
  69. data/lib/rio/if/grande_stream.rb +17 -28
  70. data/lib/rio/if/internal.rb +2 -2
  71. data/lib/rio/if/path.rb +7 -6
  72. data/lib/rio/if/stream.rb +85 -29
  73. data/lib/rio/if/string.rb +2 -2
  74. data/lib/rio/if/temp.rb +2 -2
  75. data/lib/rio/if/test.rb +37 -4
  76. data/lib/rio/if/yaml.rb +2 -2
  77. data/lib/rio/if.rb +2 -2
  78. data/lib/rio/impl/path.rb +2 -2
  79. data/lib/rio/ioh.rb +17 -6
  80. data/lib/rio/iomode.rb +4 -3
  81. data/lib/rio/ios/fail.rb +107 -0
  82. data/lib/rio/ios/generic.rb +120 -0
  83. data/lib/rio/ios/mode.rb +61 -0
  84. data/lib/rio/ios/null.rb +120 -0
  85. data/lib/rio/iowrap.rb +129 -0
  86. data/lib/rio/kernel.rb +12 -3
  87. data/lib/rio/local.rb +2 -2
  88. data/lib/rio/match.rb +3 -3
  89. data/lib/rio/matchrecord.rb +2 -2
  90. data/lib/rio/no_warn.rb +50 -0
  91. data/lib/rio/{arrayio.rb → nullio.rb} +47 -86
  92. data/lib/rio/open3.rb +2 -2
  93. data/lib/rio/ops/construct.rb +20 -13
  94. data/lib/rio/ops/create.rb +10 -19
  95. data/lib/rio/ops/dir.rb +60 -54
  96. data/lib/rio/ops/either.rb +11 -9
  97. data/lib/rio/ops/file.rb +28 -24
  98. data/lib/rio/ops/path.rb +45 -43
  99. data/lib/rio/ops/stream/input.rb +12 -8
  100. data/lib/rio/ops/stream/output.rb +2 -2
  101. data/lib/rio/ops/stream/read.rb +35 -32
  102. data/lib/rio/ops/stream/write.rb +5 -5
  103. data/lib/rio/ops/stream.rb +7 -3
  104. data/lib/rio/ops/symlink.rb +12 -10
  105. data/lib/rio/path/reset.rb +5 -5
  106. data/lib/rio/path.rb +32 -24
  107. data/lib/rio/piper/cp.rb +2 -2
  108. data/lib/rio/piper.rb +2 -2
  109. data/lib/rio/prompt.rb +2 -2
  110. data/lib/rio/rectype.rb +9 -7
  111. data/lib/rio/rl/base.rb +5 -4
  112. data/lib/rio/rl/builder.rb +17 -5
  113. data/lib/rio/rl/ioi.rb +14 -4
  114. data/lib/rio/rl/path.rb +23 -15
  115. data/lib/rio/rl/pathmethods.rb +12 -2
  116. data/lib/rio/rl/uri.rb +13 -6
  117. data/lib/rio/scheme/aryio.rb +3 -3
  118. data/lib/rio/scheme/cmdio.rb +4 -3
  119. data/lib/rio/scheme/cmdpipe.rb +3 -35
  120. data/lib/rio/scheme/fd.rb +4 -3
  121. data/lib/rio/scheme/ftp.rb +36 -7
  122. data/lib/rio/scheme/http.rb +2 -2
  123. data/lib/rio/{context/closeoneof.rb → scheme/null.rb} +17 -11
  124. data/lib/rio/scheme/path.rb +28 -30
  125. data/lib/rio/scheme/stderr.rb +4 -4
  126. data/lib/rio/scheme/stdio.rb +6 -5
  127. data/lib/rio/scheme/strio.rb +10 -20
  128. data/lib/rio/scheme/sysio.rb +5 -2
  129. data/lib/rio/scheme/tcp.rb +4 -3
  130. data/lib/rio/scheme/temp.rb +14 -1
  131. data/lib/rio/state/error.rb +2 -2
  132. data/lib/rio/state.rb +80 -34
  133. data/lib/rio/stream/base.rb +7 -2
  134. data/lib/rio/stream/duplex.rb +13 -10
  135. data/lib/rio/stream/open.rb +74 -79
  136. data/lib/rio/stream.rb +15 -23
  137. data/lib/rio/symantics.rb +2 -2
  138. data/lib/rio/tempdir.rb +132 -132
  139. data/lib/rio/to_rio/all.rb +40 -0
  140. data/lib/rio/to_rio/array.rb +40 -0
  141. data/lib/rio/to_rio/io.rb +41 -0
  142. data/lib/rio/to_rio/object.rb +43 -0
  143. data/lib/rio/to_rio/string.rb +41 -0
  144. data/lib/rio/to_rio.rb +13 -2
  145. data/lib/rio/uri/file.rb +2 -2
  146. data/lib/rio/util.rb +2 -2
  147. data/lib/rio/version.rb +3 -3
  148. data/lib/rio.rb +16 -25
  149. data/test/bin/count_lines.rb +11 -0
  150. data/test/bin/find_lines.rb +13 -0
  151. data/test/bin/list_dir.rb +14 -0
  152. data/test/ftp/all.rb +9 -0
  153. data/test/ftp/anon_misc.rb +112 -0
  154. data/test/ftp/anon_read.rb +105 -0
  155. data/test/ftp/anon_special.rb +68 -0
  156. data/test/ftp/anon_write.rb +63 -0
  157. data/test/ftp/ftp2ftp.rb +51 -0
  158. data/test/ftp/initftpfiles.rb +14 -0
  159. data/test/ftp/testdef.rb +51 -0
  160. data/test/gem_runtests.rb +15 -15
  161. data/test/runalltests.rb +15 -0
  162. data/test/runftptests.rb +14 -0
  163. data/test/{1.rb → runhttptests.rb} +14 -14
  164. data/test/runtests.rb +14 -14
  165. data/test/tc/all.rb +36 -21
  166. data/test/tc/cmdpipe.rb +18 -15
  167. data/test/tc/copy-from-http.rb +89 -0
  168. data/test/tc/copy-from.rb +1 -52
  169. data/test/tc/copy.rb +19 -17
  170. data/test/tc/csv2.rb +6 -3
  171. data/test/tc/empty.rb +47 -0
  172. data/test/tc/emptyriodir.rb +129 -0
  173. data/test/tc/entsel.rb +110 -0
  174. data/test/tc/files_select.rb +92 -0
  175. data/test/tc/get.rb +7 -6
  176. data/test/tc/getrec.rb +2 -5
  177. data/test/tc/gzip.rb +82 -0
  178. data/test/tc/io_each_byte.rb +60 -0
  179. data/test/tc/io_read.rb +80 -0
  180. data/test/tc/iometh.rb +149 -0
  181. data/test/tc/likeio.rb +112 -0
  182. data/test/tc/methods.rb +10 -9
  183. data/test/tc/misc.rb +1 -37
  184. data/test/tc/null.rb +45 -0
  185. data/test/tc/pid.rb +31 -0
  186. data/test/tc/piper.rb +34 -37
  187. data/test/tc/programs_util.rb +24 -0
  188. data/test/tc/readline.rb +30 -0
  189. data/test/tc/rename.rb +12 -0
  190. data/test/tc/tempfile.rb +14 -0
  191. data/test/tc/testcase.rb +6 -0
  192. data/test/tc/tonl.rb +37 -0
  193. metadata +181 -144
  194. data/ex/colx.rb +0 -8
  195. data/ex/findinruby +0 -16
  196. data/ex/findruby +0 -15
  197. data/ex/passwd_report.rb +0 -8
  198. data/ex/prompt.rb +0 -25
  199. data/ex/rgb.txt.gz +0 -0
  200. data/ex/riocat +0 -35
  201. data/ex/riogunzip +0 -31
  202. data/ex/riogzip +0 -24
  203. data/ex/rioprompt.rb +0 -6
  204. data/ex/targz2zip +0 -17
  205. data/ex/tolf +0 -11
  206. data/lib/rio/ftp/conn.rb +0 -167
  207. data/lib/rio/ftp.rb +0 -275
  208. data/test/once.rb +0 -7
data/lib/rio/ftp/conn.rb DELETED
@@ -1,167 +0,0 @@
1
- #--
2
- # ===============================================================================
3
- # Copyright (c) 2005, Christopher Kleckner
4
- # All rights reserved
5
- #
6
- # This file is part of the Rio library for ruby.
7
- #
8
- # Rio is free software; you can redistribute it and/or modify
9
- # it under the terms of the GNU General Public License as published by
10
- # the Free Software Foundation; either version 2 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Rio is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU General Public License
19
- # along with Rio; if not, write to the Free Software
20
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
- # ===============================================================================
22
- #++
23
- #
24
- # To create the documentation for Rio run the command
25
- # rake rdoc
26
- # from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
27
- #
28
- # Suggested Reading
29
- # * RIO::Doc::SYNOPSIS
30
- # * RIO::Doc::INTRO
31
- # * RIO::Doc::HOWTO
32
- # * RIO::Rio
33
- #
34
- # <b>Rio is pre-alpha software.
35
- # The documented interface and behavior is subject to change without notice.</b>
36
-
37
-
38
- require 'net/ftp'
39
- require 'uri'
40
- require 'singleton'
41
-
42
- module RIO
43
- module FTP
44
- module RootDir
45
- attr_reader :root_dir
46
- end
47
- end
48
- end
49
- module RIO
50
- module FTP
51
- class ConnCache
52
- include Singleton
53
- def initialize()
54
- @co = {}
55
- @ca = {}
56
- end
57
- def kuris(uri)
58
- curi = uri.clone
59
- curi.path = ''
60
- kuri = curi.to_s
61
- [kuri,curi]
62
- end
63
- def connect(uri)
64
- kuri,curi = kuris(uri)
65
- unless @co.has_key?(kuri)
66
- @co[kuri] = ::Net::FTP.new()
67
- @ca[kuri] = 0
68
- end
69
- c = @co[kuri]
70
- if c.closed?
71
- c.connect(curi.host,curi.port)
72
- if curi.user
73
- c.login(curi.user,curi.password)
74
- else
75
- c.login
76
- end
77
- wd = c.pwd
78
- c.instance_eval {
79
- @root_dir = wd
80
- }
81
- c.extend(RootDir)
82
- end
83
- @ca[kuri] += 1
84
- #@ca.each { |k,v| puts " FTPCC.connect: #{k}: #{v}" }
85
- c
86
- end
87
- def close(uri)
88
- kuri,curi = kuris(uri)
89
-
90
- if @ca.has_key?(kuri)
91
- @ca[kuri] -= 1
92
- end
93
- #@ca.each { |k,v| puts " FTPCC.close: #{k}: #{v}" }
94
- end
95
- end
96
- end
97
- end
98
- module RIO
99
- module FTP
100
- class Conn
101
- attr_accessor :uri
102
- def initialize(uri=nil)
103
- @uri = uri.clone || URI::FTP.new('ftp',nil,nil,nil,nil,nil,nil,nil,nil)
104
- end
105
- def connect(host, port = ::Net::FTP::FTP_PORT)
106
- @uri.host = host
107
- @uri.port = port
108
- end
109
- def login(user = 'anonymous',password = nil)
110
- unless user == 'anonymous' && password.nil?
111
- @uri.user = user
112
- @uri.password = password
113
- end
114
- end
115
- def chdir(dirname)
116
- @uri.path = dirname
117
- co = FTP::ConnCache.instance.connect(@uri)
118
- rd = co.root_dir
119
- rd = '' if rd == '/'
120
- co.chdir(rd + @uri.path)
121
- end
122
- def pwd()
123
- co = FTP::ConnCache.instance.connect(@uri)
124
- co.pwd
125
- end
126
- def root_dir()
127
- co = FTP::ConnCache.instance.connect(@uri)
128
- co.root_dir
129
- end
130
- def mdtm(filename)
131
- co = FTP::ConnCache.instance.connect(@uri)
132
- co.mdtm(filename)
133
- end
134
- def conndir()
135
- co = FTP::ConnCache.instance.connect(@uri)
136
- rd = co.root_dir
137
- rd = '' if rd == '/'
138
- co.chdir(rd + @uri.path)
139
- co
140
- end
141
- def put(src,dstname)
142
- conndir.put(src,dstname)
143
- end
144
- def rename(src,dstname)
145
- conndir.rename(src,dstname)
146
- end
147
- def delete(pth)
148
- conndir.delete(pth)
149
- end
150
- def rmdir(pth)
151
- conndir.rmdir(pth)
152
- end
153
- def list()
154
- conndir.list
155
- end
156
- def mkdir(dirname)
157
- conndir.mkdir(dirname)
158
- end
159
- def nlst()
160
- conndir.nlst
161
- end
162
- def close()
163
- FTP::ConnCache.instance.close(@uri)
164
- end
165
- end
166
- end
167
- end
data/lib/rio/ftp.rb DELETED
@@ -1,275 +0,0 @@
1
- #--
2
- # ===============================================================================
3
- # Copyright (c) 2005, Christopher Kleckner
4
- # All rights reserved
5
- #
6
- # This file is part of the Rio library for ruby.
7
- #
8
- # Rio is free software; you can redistribute it and/or modify
9
- # it under the terms of the GNU General Public License as published by
10
- # the Free Software Foundation; either version 2 of the License, or
11
- # (at your option) any later version.
12
- #
13
- # Rio is distributed in the hope that it will be useful,
14
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- # GNU General Public License for more details.
17
- #
18
- # You should have received a copy of the GNU General Public License
19
- # along with Rio; if not, write to the Free Software
20
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
- # ===============================================================================
22
- #++
23
- #
24
- # To create the documentation for Rio run the command
25
- # rake rdoc
26
- # from the distribution directory. Then point your browser at the 'doc/rdoc' directory.
27
- #
28
- # Suggested Reading
29
- # * RIO::Doc::SYNOPSIS
30
- # * RIO::Doc::INTRO
31
- # * RIO::Doc::HOWTO
32
- # * RIO::Rio
33
- #
34
- # <b>Rio is pre-alpha software.
35
- # The documented interface and behavior is subject to change without notice.</b>
36
-
37
-
38
- require 'net/ftp'
39
- require 'rio/state'
40
- require 'rio/ops/path'
41
- require 'rio/ftp/ioh'
42
- require 'rio/grande'
43
- require 'rio/cp'
44
-
45
- module RIO
46
-
47
- module FTP #:nodoc: all
48
- module State
49
- class Base < RIO::State::Base
50
- include Ops::Path::URI
51
- include Ops::Path::Query
52
- include Ops::Path::Create
53
- def closed?() ioh.nil? || ioh.closed? end
54
- def open?() not closed? end
55
- end
56
- class Reset < Base
57
- def check?() true end
58
- def when_missing(sym,*args)
59
- become('FTP::State::Open')
60
- end
61
- end
62
- class Open < Base
63
- def check?() true end
64
- def open_(*args)
65
- unless open?
66
- ios = self.rl.open(*args)
67
- self.ioh = FTP::IOH.new(ios)
68
- #self.ioh = self.rl.open(*args)
69
- end
70
- self
71
- end
72
- def open(*args)
73
- open_(*args)
74
- end
75
- def es()
76
- begin
77
- ioh.chdir(rl.path)
78
- become('FTP::State::Dir')
79
- rescue ::Net::FTPPermError
80
- ioh.chdir(dirname.path.to_s)
81
- become('FTP::State::File')
82
- end
83
- end
84
- def when_missing(sym,*args)
85
- open_.es()
86
- end
87
-
88
- end
89
- class Common < Base
90
- def pwd() ioh.pwd end
91
- def cwd()
92
- nr = self.dup
93
- nr.rl.path = ioh.pwd
94
- new_rio(nr)
95
- end
96
- def help(*args) ioh.help(*args) end
97
- def status() ioh.status(self.path.to_s) end
98
- def system(*args) ioh.system(*args) end
99
- def quit()
100
- ioh.quit unless closed?
101
- self
102
- end
103
-
104
- def softreset()
105
- close unless closed?
106
- super
107
- end
108
- def close()
109
- ioh.close unless closed?
110
- softreset
111
- end
112
- end
113
- class File < Common
114
- #include Cp::File::Input
115
- def check?() true end
116
- def when_missing(sym,*args)
117
- fstream()
118
- end
119
- def fstream()
120
- self.rl = RIO::FTP::Stream::RL.new(rl.uri)
121
- @ioh = nil
122
- become('FTP::Stream::Open')
123
- end
124
- def mkdir()
125
- #ioh.chdir(dirname.path.to_s) {
126
- ioh.mkdir(self.path.to_s)
127
- softreset
128
- end
129
- def put(src)
130
- #p callstr('put',src)
131
- ioh.chdir(dirname.path.to_s)
132
- ioh.put(src.to_s,filename.to_s)
133
- self
134
- end
135
- def cpto_err(sym,*args)
136
- cs = "#{sym}("+args.map{|el| el.to_s}.join(',')+")"
137
- msg = "Go Figure! rio('#{self.to_s}').#{cs} Failed"
138
-
139
- raise ArgumentError,"#{msg}\nArgument to '#{sym}' must be a Rio was a '#{args[0].class}'\n"
140
- end
141
- def <(src)
142
- cpto_err(:<,src) unless src.kind_of?(Rio)
143
- put(src)
144
- end
145
- def <<(src)
146
- cpto_err(:<<,src) unless src.kind_of?(Rio)
147
- put(src)
148
- end
149
- def mdtm() ioh.mdtm(rl.path) end
150
- def rename(dst)
151
- ioh.rename(rl.path,dst.to_s)
152
- softreset
153
- end
154
- def delete()
155
- ioh.delete(rl.path) if exist?
156
- softreset
157
- end
158
- def exist?()
159
- begin
160
- mdtm()
161
- rescue ::Net::FTPPermError
162
- return false
163
- end
164
- true
165
- end
166
- def file?() exist? end
167
- def dir?() false end
168
- end
169
- class Dir < Common
170
- include Enumerable
171
- include Grande
172
- include Grande::Dir
173
- include Cp::Dir::Input
174
- include Cp::Dir::Output
175
- def check?() true end
176
- def when_missing(sym,*args)
177
- gofigure(sym,*args)
178
- end
179
- def mkdir()
180
- self
181
- end
182
- def rmdir()
183
- # ioh.chdir(dirname.to_s)
184
- # ioh.rmdir(filename.to_s)
185
- ioh.rmdir(rl.path)
186
- softreset
187
- end
188
- def getents(ents=[])
189
- each do |el|
190
- el.getents(ents) if el.dir?
191
- ents << el
192
- end
193
- ents
194
- end
195
-
196
- def rmtree()
197
- ents = getents()
198
- ents.each do |ent|
199
- ent.delete
200
- end
201
- self.delete
202
- end
203
- alias :delete :rmdir
204
- def nlst() ioh.nlst() end
205
- def chdir(*args,&block)
206
- if block_given?
207
- wd = ioh.pwd
208
- ioh.chdir(rl.path)
209
- rtn = yield
210
- ioh.chdir(wd)
211
- rtn
212
- else
213
- ioh.chdir(rl.path)
214
- end
215
- self
216
- end
217
- def list()
218
- ioh.list
219
- end
220
- def exist?() true end
221
- def dir?() true end
222
- def file?() false end
223
- def put(srio)
224
- ioh.chdir(rl.path)
225
- ioh.put(srio.to_s,srio.filename.to_s)
226
- self
227
- end
228
- def each(&block)
229
- ioh.chdir(rl.path)
230
- each_(&block)
231
- self
232
- end
233
- end
234
- end
235
- end
236
- end
237
- module RIO
238
- module FTP
239
- module Stream
240
-
241
- require 'rio/stream/open'
242
- require 'rio/ops/path'
243
- class Open < RIO::Stream::Open
244
- include Ops::Path::Status
245
- include Ops::Path::URI
246
- include Ops::Path::Query
247
- def input()
248
- self.rl.base = self.ioh.base_uri
249
- stream_state('FTP::Stream::Input')
250
- end
251
- def base_state() 'FTP::Stream::Close' end
252
- end
253
- class Close < RIO::Stream::Close
254
- def base_state() 'FTP::Stream::Reset' end
255
- end
256
- require 'rio/stream'
257
- class Reset < RIO::Stream::Reset
258
- def when_missing(sym,*args)
259
- self.rl = FTP::RL.new(rl.uri)
260
- super
261
- end
262
- end
263
- require 'rio/stream'
264
- class Input < RIO::Stream::Input
265
- include Ops::Path::Status
266
- include Ops::Path::URI
267
- include Ops::Path::Query
268
- def base_state() 'FTP::Stream::Close' end
269
- extend Forwardable
270
- def_instance_delegators(:ioh,:meta,:status,:charset,:content_encoding,:content_type,:last_modified,:base_uri)
271
- end
272
-
273
- end
274
- end
275
- end # module RIO
data/test/once.rb DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/ruby
2
- require 'rio'
3
- require 'test/unit'
4
- require 'rio/tc/once'
5
- $trace_states = false
6
- require 'test/unit/ui/console/testrunner'
7
- #require 'test/unit/ui/tk/testrunner'