随笔-305  评论-327  文章-7  trackbacks-0
    今天在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


posted on 2007-04-05 20:21 dennis 阅读(208) 评论(0)  编辑  收藏 所属分类: 动态语言 & rails

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
 
相关链接:
网站导航: