Is there an implementation of the IO class that operates on in-memory
byte arrays (or other data structure)? I haven’t seen anything in the
core/stdlib.
On Aug 12, 2009, at 10:07 PM, Nathan B. wrote:
Is there an implementation of the IO class that operates on in-memory
byte arrays (or other data structure)? I haven’t seen anything in the
core/stdlib.
Yes, see the standard StringIO library.
James Edward G. II
On Wed, Aug 12, 2009 at 10:15 PM, James G.[email protected]
wrote:
On Aug 12, 2009, at 10:07 PM, Nathan B. wrote:
Is there an implementation of the IO class that operates on in-memory
byte arrays (or other data structure)? I haven’t seen anything in the
core/stdlib.Yes, see the standard StringIO library.
James Edward G. II
Excuse my ignorance – I’m just getting into Ruby, but isn’t the
StringIO for working with character data? Is there no distinction
between characters and bytes? I was assuming that StringIO and String
would cause some form of character encoding/decoding processing to
kick in.
Thanks
- Nathan
On Aug 12, 11:34 pm, Nathan B. [email protected] wrote:
Excuse my ignorance – I’m just getting into Ruby, but isn’t the
StringIO for working with character data? Is there no distinction
between characters and bytes? I was assuming that StringIO and String
would cause some form of character encoding/decoding processing to
kick in.Thanks
- Nathan
I would think this is what the #bytes, #each_byte, #readbyte, etc
methods are for. But I’ve never actually used StringIO myself, so I
can’t say for sure. (However, the fact that Rack and ActionPack both
use StringIO for processing requests says its safe for raw data)
On Aug 12, 2009, at 20:34, Nathan B. wrote:
Yes, see the standard StringIO library.
James Edward G. II
Excuse my ignorance – I’m just getting into Ruby, but isn’t the
StringIO for working with character data? Is there no distinction
between characters and bytes? I was assuming that StringIO and String
would cause some form of character encoding/decoding processing to
kick in.
In ruby 1.8 no. In ruby 1.9 set the encoding to binary.