好的ruby, rails代码收集

看到好的ruby和rails代码收集在这儿


* select 配合 any?,用来做两层filter。map出来的array直接返回。map用于过滤等运算。

    def monitored_paths

      paths = Dir['**/*'].select do |path|

        @script.patterns.any? {|p| path.match(p) }

      end

      paths.push(@script.path).compact!

      paths.map {|path| Pathname(path).expand_path }

    end
 





*  reduce(inject)做积累运算,如把运算累积到一个新的array或hash中。

    def to_hash
      to_a.reduce({}){|hash,i| hash.store(i._id, i); hash}
    end


    tasks = pros.reduce([]) do |tasks, p|
      tasks << p.get_task_with_ref(task_name)
    end      

   #reduce方法比each,手工收集(累积要简约的多)
   tasks = []
    pros.each do |p|
      task = p.get_task_with_ref(task_name)
      tasks << task
    end

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值