File::write() complement for File::read() ?

Discussion in 'Ruby' started by Suraj Kurapati, Jan 31, 2009.

  1. Hello,

    Why is there not a complementary File::write() method to the
    File::read() method? It feels unbalanced to always write the following
    code whereas it's so much easier to read a file:

    File.open(path, 'wb') {|f| f << content }

    I would like to see this method in the core Ruby API, just as the
    Symbol#to_proc() facets method has travelled into the core Ruby API.

    Thanks for your consideration.
    --
    Posted via http://www.ruby-forum.com/.
    Suraj Kurapati, Jan 31, 2009
    #1
    1. Advertising

  2. Allow me to rephrase my question:

    It is currently easier to read whole files (via File::read) than to
    write whole files (via File::eek:pen and passing in a block). This
    imbalance can be corrected by adding a File::write method, such as the
    following, to the core Ruby API.

    def File.write path, data
    File.open(path, 'wb') {|f| f << data.to_s }
    end

    Are there any plans to do this? If not, where can I file a request for
    such a change?

    Thanks for your consideration.
    --
    Posted via http://www.ruby-forum.com/.
    Suraj Kurapati, Jan 31, 2009
    #2
    1. Advertising

  3. On Jan 31, 2009, at 3:16 AM, Suraj Kurapati wrote:

    > Allow me to rephrase my question:
    >
    > It is currently easier to read whole files (via File::read) than to
    > write whole files (via File::eek:pen and passing in a block). This
    > imbalance can be corrected by adding a File::write method, such as the
    > following, to the core Ruby API.
    >
    > def File.write path, data
    > File.open(path, 'wb') {|f| f << data.to_s }
    > end
    >
    > Are there any plans to do this? If not, where can I file a request
    > for
    > such a change?
    >
    > Thanks for your consideration.


    $ fri File#write
    --------------------------------------------------------------- IO#write
    ios.write(string) => integer
    ------------------------------------------------------------------------
    Writes the given string to ios. The stream must be opened for
    writing. If the argument is not a string, it will be converted to
    a string using to_s. Returns the number of bytes written.

    count = $stdout.write( "This is a test\n" )
    puts "That was #{count} bytes of data"

    produces:

    This is a test
    That was 15 bytes of data


    It's already there. Do you ever just try these things? This method
    is an instance method.

    Your method would be incomplete without a mode. Do you want 'w', 'a',
    'wb', etc.?

    def your_write(path, data, mode='wb')
    File.open(path, mode) {|f| f.write data }
    end

    I don't know why you call #to_s on data if you open 'wb'. (IO#write
    does that for you if what you pass isn't a String.)

    -Rob


    Rob Biedenharn http://agileconsultingllc.com

    +1 513-295-4739
    Skype: rob.biedenharn
    Rob Biedenharn, Jan 31, 2009
    #3
  4. Rob Biedenharn wrote:
    > $ fri File#write
    > [...]
    > It's already there. This method is an instance method.


    I asked for a class method File::write (just like File::read) not an
    instance method File#write.

    > Your method would be incomplete without a mode. Do you want 'w', 'a',
    > 'wb', etc.?
    >
    > def your_write(path, data, mode='wb')
    > File.open(path, mode) {|f| f.write data }
    > end


    Good point.

    > I don't know why you call #to_s on data if you open 'wb'. (IO#write
    > does that for you if what you pass isn't a String.)


    Thanks for the tip.
    --
    Posted via http://www.ruby-forum.com/.
    Suraj Kurapati, Jan 31, 2009
    #4
  5. Suraj Kurapati, Jan 31, 2009
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Mantorok Redgormor

    sign magnitude, ones complement, two's complement

    Mantorok Redgormor, Oct 5, 2003, in forum: C Programming
    Replies:
    8
    Views:
    8,597
    Glen Herrmannsfeldt
    Oct 8, 2003
  2. sarathy

    1's complement and 2's complement

    sarathy, Aug 1, 2006, in forum: C Programming
    Replies:
    20
    Views:
    2,188
    Bo Persson
    Aug 2, 2006
  3. sarathy
    Replies:
    22
    Views:
    2,346
    Bo Persson
    Aug 2, 2006
  4. Roberto Waltman

    2's complement vs. 1's complement vs. ...

    Roberto Waltman, Jun 9, 2011, in forum: C Programming
    Replies:
    4
    Views:
    1,355
    Michael Press
    Jun 14, 2011
  5. Tim Chase
    Replies:
    0
    Views:
    88
    Tim Chase
    Dec 16, 2013
Loading...

Share This Page