rails应用遍历Controllers目录并取出所有的Controller和action

    今天在javaeye论坛上看到有人有这个需求,顺手写了下。原理就是通过遍历Controllers目录,并用正则表达式取出Controller名和它所有的action。

    @controllers = Hash . new
    path
= " #{RAILS_ROOT}/app/controllers/ "
    Dir
. new(path) . entries . each   do   | f |
      
if   ! f . index ( ' .rb ' ) . nil ?  and f . index ( ' .rb ' ) > 0
        
        controller
= File . open (path + f . to_s)
        s
= controller . read
         
/ class \ s( .* ) \ s \</. match(s)
        controller_name
= $ 1 . to_s
        actions
= []
        s
. scan( / def \ s( .* ) \ s / ) . each | action |  actions << (action[ 0 ]) }
        
@controllers [controller_name] = actions
        controller
. close
      end
    end
    
    
@controllers . each_pair  do   | name ,  actions |
      actions
. each   do   | action |  
        puts 
| name << "   " << action
      end
    end


108785.html

dennis 2007-04-05 20:21 发表评论
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值