zoukankan      html  css  js  c++  java
  • rails rake 指南

     

    今天研究了下rake,还有rake在rails中运用,做了点总结,大家可以看看

     

    rake的介绍

    Rake支持任务创建,任务依赖关系追踪,以及文件编译时间识别。最后一个功能对Ruby程序员应该用不到,但如果你同时还是一个C程序员,那么你可以尝试使用Rake来替代Make。

     

    rake如何工作

    1.给个简单的例子

    假设使用Rake来管理这3个任务,那么我首先需要创建一个Rakefile文件,添加以下内容

     

    # -*- encoding : utf-8 -*-

    task :purchaseAlcohol do

      puts "买瓶酒"

    end

     

    task :mixDrink do

      puts "买点下酒菜"

    end

     

    task :getSmashed do

      puts "喝醉了"

    end

     

    2.如何组织任务的依赖关系

    有些任务在执行前必须先执行其它任务,就是所说的依赖关系。下面的例子就可以说明rake如何处理依赖关系

     

    # -*- encoding : utf-8 -*-

    desc "purchasAlcohol"

    task :purchaseAlcohol do

      puts "买瓶酒"

    end

     

    desc "mixDrink"

    task :mixDrink => :purchaseAlcohol do

      puts "买点下酒菜"

    end

     

    desc "getSmashed"

    task :getSmashed => :mixDrink do

      puts "喝醉了"

    end

     

    3.rake的命名空间

    用命名空间把你的任务都整合起来,进行分类,看下面的例子

     

    # -*- encoding : utf-8 -*-

     

    namespace :aaron do

      desc "purchasAlcohol"

      task :purchaseAlcohol do

        puts "买瓶酒"

      end

     

      desc "mixDrink"

      task :mixDrink => :purchaseAlcohol do

        puts "买点下酒菜"

      end

     

      desc "getSmashed"

      task :getSmashed => :mixDrink do

        puts "喝醉了"

      end

    end

     

    命名空间允许你将你的任务进行分类,你可以在一个Rakefile内创建多个命名空间,现在输入rake -T你会得到如下输出

    rake aaron:getSmashed                  # getSmashed

    rake aaron:mixDrink                    # mixDrink

    rake aaron:purchaseAlcohol             # purchasAlcohol

    4.有用的任务

    以上举的例子都及其简单,通常我们建rake任务是为了完成复杂的功能

    下面再给个简单的例子,但比较实用

    此例子来自网上

    desc "Create blank directories if they don't already exist"
    task(:create_directories) do
      # The folders I need to create
      shared_folders = ["icons","images","groups"]
        for folder in shared_folders
        # Check to see if it exists
        if File.exists?(folder)
          puts "#{folder} exists"
        else
          puts "#{folder} doesn't exist so we're creating"
          Dir.mkdir "#{folder}"
        end
      end
    end

    5.rake在rails中使用

    在lib/tasks/文件夹中添加rake文件,例如aaron.rake,在里面添加你所需要完成的任务

    rake -T 可以查看你的rake任务

    当然,rake任务还可以访问rails model

     

  • 相关阅读:
    【原创】tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询)
    [转载]线段树模板
    并查集相当6的一篇文章~~~
    觉得一篇讲SPFA还不错的文章
    【原创】POJ 3259 Wormholes(Bellman-Ford) && 简介Bellman-Ford算法
    【原创】谈谈数据结构课后作业......尴尬不已...《图》 后面的迷宫问题
    MyBatis源码分析(七):动态代理(Mybatis核心机制)
    1026: [SCOI2009]windy数
    Spring Boot 官方文档学习(一)入门及使用
    Spring Hibernate JPA 联表查询 复杂查询
  • 原文地址:https://www.cnblogs.com/bendanchenzhicheng/p/2592374.html
Copyright © 2011-2022 走看看