Am 24.04.2013 01:00, schrieb Thomas Luedeke:
> In my Ruby scripting, there is probably no greater and chronic source of
> irritation than way it copies files (something I do all the time).  Most
> of the time, I just fall back on a system command like `cp file1 file2`
> because Fileutils.cp is so intransigent about syntax.
>
> My problem is this.  The script users enter a file name and a pathway as
> follows:
>
> pathName = "some_pathway"
> fileName = "some_filename"
>
> I simply want to copy that file to another directory.  What syntax do I
> need for Fileutils to copy the blasted file and quit issuing a billion
> exceptions?

That has really *nothing* to do with FileUtils.

You need to distinguish between variables (e.g. pathName)
and string literals (e.g. 'some_pathway'). Also you need
to know that string interpolation with #{} only works
inside *double* quotes.

These should work:

- 'some_pathway' + '/' + 'some_filename'
- 'some_pathway' + '/' + fileName
- pathName + '/' + fileName
- "#{pathName}/#{fileName}"

Tip: use IRB to try out what these expressions return!

> Intuitively, I'd say this should work:
>
>      Fileutils.cp( some_pathway+'/fileName', destDir )

only works when some_pathway is a variable and the
filename is 'fileName'

> Nope, it doesn't like fileName.  OK, I'll protect it:
>
>      Fileutils.cp( some_pathway+'/#{fileName}', destDir )

only works when the filename is *literally* '/#{filename}',
and how likely is that...

> Nope.  OK, then:
>
>      Fileutils.cp( some_pathway+'/"#{fileName}'", destDir )

that's a plain syntax error, since the quotes do not match
(you have the string literal '/"#{fileName}' and a single "
that lacks a closing ")

> Nope.

You should read up on some basics about string literals
and using variables.

Note also that it is common in the Ruby community to use
snail case instead of camel case for variable names
(`path_name' instead of `pathName').


-- 
<https://github.com/stomar/>