Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > getting the user's home directory path

Reply
Thread Tools

getting the user's home directory path

 
 
Chad Perrin
Guest
Posts: n/a
 
      03-20-2008
I've got a program that needs to access a file in the ~/etc/ directory.
This program currently accesses it like so:

file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")

. . but that environment variable just looks hideous in there, at least
to me. In Perl, I'm used to using getpwuid() instead of $_ENV['user'].
Is there some equivalent to that in Ruby, or am I stuck with ENV['USER']?

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Kent Beck: "I always knew that one day Smalltalk would replace Java. I
just didn't know it would be called Ruby."

 
Reply With Quote
 
 
 
 
Alex Young
Guest
Posts: n/a
 
      03-20-2008

On Thu, 2008-03-20 at 16:05 +0900, Chad Perrin wrote:
> I've got a program that needs to access a file in the ~/etc/ directory.
> This program currently accesses it like so:
>
> file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")
>
> . . . but that environment variable just looks hideous in there, at least
> to me. In Perl, I'm used to using getpwuid() instead of $_ENV['user'].
> Is there some equivalent to that in Ruby, or am I stuck with ENV['USER']?
>


require 'etc'
Etc.getpwuid.dir

works for me...

--
Alex


 
Reply With Quote
 
 
 
 
Chad Perrin
Guest
Posts: n/a
 
      03-20-2008
On Thu, Mar 20, 2008 at 05:27:03PM +0900, Alex Young wrote:
>
> On Thu, 2008-03-20 at 16:05 +0900, Chad Perrin wrote:
> > I've got a program that needs to access a file in the ~/etc/ directory.
> > This program currently accesses it like so:
> >
> > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")
> >
> > . . . but that environment variable just looks hideous in there, at least
> > to me. In Perl, I'm used to using getpwuid() instead of $_ENV['user'].
> > Is there some equivalent to that in Ruby, or am I stuck with ENV['USER']?
> >

>
> require 'etc'
> Etc.getpwuid.dir
>
> works for me...


Hallelujah. That's exactly what I wanted. Thank you much.

I don't know why this wasn't working:

> ri getpwuid

Nothing known about getpwuid

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Kent Beck: "I always knew that one day Smalltalk would replace Java. I
just didn't know it would be called Ruby."

 
Reply With Quote
 
Alex Young
Guest
Posts: n/a
 
      03-20-2008
On Fri, 2008-03-21 at 01:50 +0900, Chad Perrin wrote:
> On Thu, Mar 20, 2008 at 05:27:03PM +0900, Alex Young wrote:
> >
> > On Thu, 2008-03-20 at 16:05 +0900, Chad Perrin wrote:
> > > I've got a program that needs to access a file in the ~/etc/ directory.
> > > This program currently accesses it like so:
> > >
> > > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")
> > >
> > > . . . but that environment variable just looks hideous in there, at least
> > > to me. In Perl, I'm used to using getpwuid() instead of $_ENV['user'].
> > > Is there some equivalent to that in Ruby, or am I stuck with ENV['USER']?
> > >

> >
> > require 'etc'
> > Etc.getpwuid.dir
> >
> > works for me...

>
> Hallelujah. That's exactly what I wanted. Thank you much.
>
> I don't know why this wasn't working:
>
> > ri getpwuid

> Nothing known about getpwuid


I get:
> qri getpwuid

nil

Same problem. Documentation seems to be rather hit-and-miss all round
these days, but I haven't got any time to contribute to help. I was
lucky with this - I managed to trawl it out of the depths of my memory
from a few months ago, when I needed something else in Etc.

--
Alex


 
Reply With Quote
 
Nobuyoshi Nakada
Guest
Posts: n/a
 
      03-20-2008
Hi,

At Thu, 20 Mar 2008 16:05:12 +0900,
Chad Perrin wrote in [ruby-talk:295141]:
> I've got a program that needs to access a file in the ~/etc/ directory.
> This program currently accesses it like so:
>
> file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")


File.expand_path("~/etc/#{filename}")

--
Nobu Nakada

 
Reply With Quote
 
Chad Perrin
Guest
Posts: n/a
 
      03-21-2008
On Fri, Mar 21, 2008 at 06:16:02AM +0900, Nobuyoshi Nakada wrote:
> Hi,
>
> At Thu, 20 Mar 2008 16:05:12 +0900,
> Chad Perrin wrote in [ruby-talk:295141]:
> > I've got a program that needs to access a file in the ~/etc/ directory.
> > This program currently accesses it like so:
> >
> > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")

>
> File.expand_path("~/etc/#{filename}")


Amazing -- and confusing. I could swear I actually tried that and it
didn't work out for me. I guess I must have dreamed that.

--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Phillip J. Haack: "Productivity is not about speed. It's about velocity.
You can be fast, but if you're going in the wrong direction, you're not
helping anyone."

 
Reply With Quote
 
oscarryz@gmail.com
Guest
Posts: n/a
 
      08-11-2012
It's 4 years late I know, but I found this:

http://stackoverflow.com/a/4194280/20654

File.expand_path('~')

So the next guy that reach this via google get the right answer

On Friday, March 21, 2008 5:22:30 PM UTC-6, Chad Perrin wrote:
> On Fri, Mar 21, 2008 at 06:16:02AM +0900, Nobuyoshi Nakada wrote:
> > Hi,
> >
> > At Thu, 20 Mar 2008 16:05:12 +0900,
> > Chad Perrin wrote in [ruby-talk:295141]:
> > > I've got a program that needs to access a file in the ~/etc/ directory.
> > > This program currently accesses it like so:
> > >
> > > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")

> >
> > File.expand_path("~/etc/#{filename}")

>
> Amazing -- and confusing. I could swear I actually tried that and it
> didn't work out for me. I guess I must have dreamed that.
>
> --
> CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
> Phillip J. Haack: "Productivity is not about speed. It's about velocity.
> You can be fast, but if you're going in the wrong direction, you're not
> helping anyone."

 
Reply With Quote
 
OscarRyz
Guest
Posts: n/a
 
      08-11-2012
On Friday, March 21, 2008 5:22:30 PM UTC-6, Chad Perrin wrote:
> On Fri, Mar 21, 2008 at 06:16:02AM +0900, Nobuyoshi Nakada wrote:
> > Hi,
> >
> > At Thu, 20 Mar 2008 16:05:12 +0900,
> > Chad Perrin wrote in [ruby-talk:295141]:
> > > I've got a program that needs to access a file in the ~/etc/ directory.
> > > This program currently accesses it like so:
> > >
> > > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")

> >
> > File.expand_path("~/etc/#{filename}")

>
> Amazing -- and confusing. I could swear I actually tried that and it
> didn't work out for me. I guess I must have dreamed that.
>
> --
> CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
> Phillip J. Haack: "Productivity is not about speed. It's about velocity.
> You can be fast, but if you're going in the wrong direction, you're not
> helping anyone."




On Friday, March 21, 2008 5:22:30 PM UTC-6, Chad Perrin wrote:
> On Fri, Mar 21, 2008 at 06:16:02AM +0900, Nobuyoshi Nakada wrote:
> > Hi,
> >
> > At Thu, 20 Mar 2008 16:05:12 +0900,
> > Chad Perrin wrote in [ruby-talk:295141]:
> > > I've got a program that needs to access a file in the ~/etc/ directory.
> > > This program currently accesses it like so:
> > >
> > > file_path = File.expand_path("~#{ENV['USER']}/etc/#{filename}")

> >
> > File.expand_path("~/etc/#{filename}")

>
> Amazing -- and confusing. I could swear I actually tried that and it
> didn't work out for me. I guess I must have dreamed that.
>
> --
> CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
> Phillip J. Haack: "Productivity is not about speed. It's about velocity.
> You can be fast, but if you're going in the wrong direction, you're not
> helping anyone."


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is there a function that can test if a path is in a directory or oneof its sub-directory (recursively)? Peng Yu Python 0 11-06-2009 03:41 AM
physical path to virtual path under virtual directory =?Utf-8?B?SmVmZiBCZWVt?= ASP .Net 4 08-01-2007 02:59 PM
Getting the home directory in Python and a bug in os.path.expanduser Edward Diener Python 5 07-08-2007 02:30 AM
virtual directory name? or unc directory path? Steve Singer ASP .Net 0 02-15-2005 10:26 PM
Path of Home directory Martin Ankerl Ruby 6 08-18-2004 07:28 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57