On 08 Nov 2013, at 16:10, Camillo Bruni <[email protected]> wrote:
> welcome to the stream-hell of pharo :(
> This is all a big mess, since all streams are doing everything: binary, text,
> utf8, custom character conversion :P
Yes, #binary and #ascii expect the streams to modify themselves automagically
;-)
Not that it fundamentally solves the current problem,
but a clean way to turn a binary read/write stream into a character on is
ZnCharacterReadStream on: binaryStream
and
ZnCharacterWriteStream on: binaryStream
they do utf-8 by default, but could work with any encoding (on:encoding:).
Sven
> But yes, this is a bug of the memory filesystem...
>
> On 2013-11-08, at 15:22, Martin Dias <[email protected]> wrote:
>
>> Sven, you are right. I checked that MemoryHandle>>readStream creates a
>> ReadStream on it's internal byte array. Then, the answer to #next it's not a
>> Character but a SmallInteger.
>>
>> Ok, anyway I can avoid using `FileSystem memory`. I was just trying to make
>> my test suite not use the physical disk. Just an optimization...
>>
>> Thanks,
>> Martín
>>
>>
>> On Fri, Nov 8, 2013 at 3:04 PM, Martin Dias <[email protected]> wrote:
>> Thanks, but it's the same: the streams are instances of WriteStream and
>> ReadStream... the implementation of #ascii in ReadStream is empty, and
>> WriteStream doesn't respond to #ascii.
>>
>>
>>
>>
>>
>>
>> On Fri, Nov 8, 2013 at 2:19 PM, Max Leske <[email protected]> wrote:
>>
>> On 08.11.2013, at 13:59, Sven Van Caekenberghe <[email protected]> wrote:
>>
>>> Hi Martin,
>>>
>>> I would guess that the stream created by the memory filesystem are binary,
>>> not character, as STON expects.
>>
>> Good point, although currently ascii mode is still default I think.
>> Try sending #ascii to the stream. That might help.
>>
>>>
>>> Sven
>>>
>>> On 08 Nov 2013, at 13:55, Martin Dias <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm working in latest Pharo (30577) with STON (bleeding edge) and I get
>>>> MNU:SmallInteger>>isSeparator when I evaluate the code below. Is my code
>>>> wrong? The idea is to make my test suite work in the memory file system.
>>>>
>>>> | fileSystem |
>>>> fileSystem := FileSystem memory.
>>>>
>>>> (fileSystem / 'file.txt') ensureCreateFile.
>>>>
>>>> STON writer
>>>> on: (fileSystem / 'file.txt') writeStream;
>>>> nextPut: 'hi'.
>>>>
>>>> STON reader
>>>> on: (fileSystem / 'file.txt') readStream;
>>>> next.
>>>>
>>>> Thanks in advance.
>>>>
>>>> Martín
>>>
>>>
>>
>>
>>
>>
>
>