File modes

A post on Arc [http://arcanesentiment.blogspot.com/2008/07/arc-gets-io-right.html]
made an excellent point - file modes are essentially exposing a low
level implementation detail for a high level feature. Would be nice to
have File.open_read, open_write and open_append (or less clunky names
if anyone can think them up; it's the principle of the thing) to
support the common cases.

martin

hi martin!

Martin DeMello [2008-07-10 21:48]:

Would be nice to have File.open_read, open_write and open_append
(or less clunky names if anyone can think them up; it's the
principle of the thing) to support the common cases.

just added them to ruby-nuggets [1] :wink: (sans the 'open_')

[1] <http://prometheus.rubyforge.org/ruby-nuggets/classes/IO.html>

cheers
jens

I don't agree. First, there are too many possible combinations, making
separate method names infeasible IMO. Second, tradition. Third, it's
more code (and more maintenance) for the core developers. Fourth, if
we follow that line of reasoning for other libraries (think Socket),
the API will explode.

Regards,

Dan

···

On Jul 10, 1:48 pm, "Martin DeMello" <martindeme...@gmail.com> wrote:

A post on Arc [http://arcanesentiment.blogspot.com/2008/07/arc-gets-io-right.html]
made an excellent point - file modes are essentially exposing a low
level implementation detail for a high level feature. Would be nice to
have File.open_read, open_write and open_append (or less clunky names
if anyone can think them up; it's the principle of the thing) to
support the common cases.

Neat :slight_smile: I suggested the open_ because I was wondering how you'd get
around the fact that there was already an IO.read, but your solution
looks good.

martin

···

On Thu, Jul 10, 2008 at 2:29 PM, Jens Wille <jens.wille@uni-koeln.de> wrote:

hi martin!

Martin DeMello [2008-07-10 21:48]:

Would be nice to have File.open_read, open_write and open_append
(or less clunky names if anyone can think them up; it's the
principle of the thing) to support the common cases.

just added them to ruby-nuggets [1] :wink: (sans the 'open_')

[1] <http://prometheus.rubyforge.org/ruby-nuggets/classes/IO.html>

A post on Arc [http://arcanesentiment.blogspot.com/2008/07/arc-gets-io-right.html]
made an excellent point - file modes are essentially exposing a low
level implementation detail for a high level feature. Would be nice to
have File.open_read, open_write and open_append (or less clunky names
if anyone can think them up; it's the principle of the thing) to
support the common cases.

I don't agree. First, there are too many possible combinations, making
separate method names infeasible IMO.

The modes are still there in .open if you need them; they just aren't
exposed in the common cases.

Second, tradition.

And if you want them :slight_smile:

Third, it's more code (and more maintenance) for the core developers.

Not that much more; it's just a few methods

Fourth, if we follow that line of reasoning for other libraries (think Socket),
the API will explode.

From what I've seen, that's not necessarily inconsistent with the ruby
way. Just needs good documentation.

martin

···

On Thu, Jul 10, 2008 at 2:32 PM, Daniel Berger <djberg96@gmail.com> wrote:

On Jul 10, 1:48 pm, "Martin DeMello" <martindeme...@gmail.com> wrote:

Martin DeMello [2008-07-10 23:36]:

Neat :slight_smile: I suggested the open_ because I was wondering how you'd
get around the fact that there was already an IO.read, but your
solution looks good.

well, it's not completely backwards compatible, since the original
IO::read would silently take a block. but i thought aliasing it and
only behaving in the new way if a block was provided, would be ok.
so i opted for the "less clunky" names :wink:

cheers
jens