Well, File.join returns a string. But we can do something like this:

    path.absolute? ? path : root.join(path)

The only thing I'm not aware of is whether root is guaranteed to be a Pathname instance, as SQLiteDatabaseTasks#initialize accepts root as a parameter.

Sure we can also do this:

    path.absolute? ? path : Pathname.new(root).join(path)

This way root as string is not a problem.

What variant would you prefer?