In-memory implementation of IO class

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.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs