[Rake-devel] Overloading the divide symbol on String to facilitate path concatenation?

Michael Bishop mbishop at me.com
Mon Apr 30 19:00:12 UTC 2012

Hello fellow rake developers,

I started using this construction in my rake files and I wanted to get your opinion on it (though if there is a better forum, please direct me there).


In my rake scripts, I like to assign directory paths to variables so I can use the variables later in my program. The problem is, when concatenating the variables, I end up with ugly combinations like:

  File.join(BUILD_D, "bin", "x86")
  File.join(CACHE_D, "scripts", SCRIPT_TEMP_NAME)

Possible Solution

I find this hard to read so I tried something:

  class String
    def /(path)
      if !path
        File.join(self, path)

Now I can make paths like:



My spidey sense is on overload from former C++ days where I was filled with "operator overloading is bad. Always. Never ever do it. Ever... ever"

But I have to say, the more I use this, the more I like it. I can't think of a situation where the operator overloading will get me in to trouble but maybe I haven't thought it through hard enough.

What do you think? Do you have strategies for making path concatenation less ugly in your scripts?

_ michael

More information about the Rake-devel mailing list