Ruby String解析就像rails解析路由一样(带符号)

时间:2010-07-04 04:33:54

标签: ruby string parsing

  

可能重复:
  Path parsing in rails

我正在尝试用ruby解析一些日志文件。我有很多关于正则表达式的经验但是前几天我使用rails路由并且认为这可能是解析这些日志文件的一种非常简洁的方法,因为它将难以理解易于理解解析器。另一方面,正则表达式需要花费几分钟才能让大多数人消化成可以理解的逻辑。

Rails的“黑魔法”似乎做了这样的事情:

#some sort of route (the format string):
map.awesome_route 'awesome/:id/:slug.:format'
#
#presumably behind the scenes:
url = 'stackoverflow.com/awesome/3/all_my_questions.xml
hash = url.parse_by_route map.awesome_route, url

#now, again presumably:
#
#hash[:id] => '3'
#hash[:slug] => 'all_my_questions'
#hash[:format] => 'xml'

也许这不是Rails实际做事的方式。但它应该。有没有办法解析我的日志文件?它确实真的让我的一天。

谢谢!

1 个答案:

答案 0 :(得分:2)

也许ActionController::Routing::Routes.recognize_path正是您要找的?

ActionController::Routing::Routes.recognize_path '/users/6'
# => { :controller => 'users', :action => 'show', :id => 6 }

如果要在脚本中解析日志文件,在启动之前解析routes.rb应该不会有问题,这样就可以设置路由映射。