# You are allowed to redistribute it and sell it, alone or is a part of
# another product.
-# Service management trough the `for` control structure.
+# Service management through the `for` control structure.
#
# The module is a proof-of-concept to investigate the abuse of
# the `for` structure to implement various services.
# Abuser to read a file, see `file_open`
private class ReadFileForAbuser
- super ForAbuser[IFStream]
+ super ForAbuser[FileReader]
var path: String
redef fun iterator do return new ReadFileForAbuserIterator(path)
end
# Abuser iterator to read a file, see `file_open`
private class ReadFileForAbuserIterator
- super Iterator[IFStream]
+ super Iterator[FileReader]
var path: String
- redef var item: IFStream is noinit
+ redef var item: FileReader is noinit
redef var is_ok = true
init
do
# start of service is to open the file, and return in
- item = new IFStream.open(path)
+ item = new FileReader.open(path)
end
redef fun next
do
end
redef class Array[E]
- # Sort an array trough a `for` abuse.
+ # Sort an array through a `for` abuse.
# The user uses the provided query (item) to implements its own comparison
#
# var a = [1, 3, 2]
####
-# Open and read a file trough a `for` abuse.
+# Open and read a file through a `for` abuse.
# The abuse just ensures that the file is closed after the reading.
#
# for f in file_open("/etc/issue") do
# print l
# assert not l.is_empty
# end # f is automatically closed here
-fun file_open(path: String): ForAbuser[IFStream]
+fun file_open(path: String): ForAbuser[FileReader]
do
return new ReadFileForAbuser(path)
end