如果参数不是URL,则为URI.parse

时间:2014-05-27 17:13:32

标签: ruby uri

我有一个使用URI.parse的函数,以便获取一个潜在的URL并将其写入我的Rails应用程序的/ tmp文件夹中。

但是,有时候我会获得本地文件系统的路径而不是URL,而我想知道处理这些案例的好方法。

所以,现在,如果我这样做:

URI.parse('path/to/file/system').open,我明白了:

NoMethodError: private method `open' called for #<URI::Generic:0x007fae01f06c00>

所以,这不是我想要的。无论如何能够知道给定的参数是否是真实的URL?

由于

1 个答案:

答案 0 :(得分:2)

如果你不介意信任正则表达式:

case arg
when URI::regexp
  URI.parse(arg).open
else
  # do something else
end