O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Rake Task Management Essentials

Book Description

Deploy, test, and build software using Rake

In Detail

Rake is a build automation tool written in Ruby. It allows you to specify tasks and describe dependencies as well as group tasks in a namespace. Rake uses Ruby's anonymous function blocks to define various tasks, allowing the use of the Ruby syntax. Rake's goal is to automate build processes quickly and expressively.

"Rake Task Management Essentials" is a practical guide that covers the latest techniques in building, testing, and debugging rake tasks to solve real-world automation challenges. The book starts with a basic knowledge of Rake, allowing you to solve repetitive tasks. Then it provides you with information about processes performed with files, which is crucial for understanding the application of the tool. It includes demonstrations to show you how tasks can be run in parallel and how they can be applied in practice. Thereafter, it integrates Rake with Ruby with the help of simple and clear examples. By the end of this book, you will know how Rake has changed the programming world, especially in the Ruby community.

What You Will Learn

  • Use the rake command-line tool efficiently
  • Learn Rake's language to write clear custom tasks
  • Run tasks in parallel to speed up the overall runtime of the tasks used
  • Work with file transformations to manage file tasks
  • Refactor a Rake project with the rules, prerequisites, and other technical features built into Rake tools
  • Configure a scheduler to run recurring tasks on a server
  • Configure continuous integration with Rake using a Jenkins example
  • Integrate Rake with the Rails web framework to write Rails-specific rake tasks

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Rake Task Management Essentials
    1. Table of Contents
    2. Rake Task Management Essentials
    3. Credits
    4. About the Author
    5. Acknowledgements
    6. About the Reviewers
    7. www.PacktPub.com
      1. Support files, eBooks, discount offers and more
        1. Why Subscribe?
        2. Free Access for Packt account holders
    8. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    9. 1. The Software Task Management Tool – Rake
      1. Installing Rake
      2. Introducing rake tasks
      3. The command-line arguments
      4. Using global Rakefiles to run tasks anywhere
      5. Defining custom rake tasks
      6. Task dependencies – prerequisites
        1. Multiple tasks definitions
          1. Passing arguments to the tasks
            1. The first alternative
            2. The second variant
      7. The structure of a Rake project
        1. Using the import method to load other Rakefiles
        2. Running rake tasks from other tasks
      8. The code conventions of Rake
      9. Summary
    10. 2. Working with Files
      1. Using file tasks to work with files
      2. The characteristics of the file task dependencies
      3. Creating a folder with the directory method
      4. Using Rake's file utilities
        1. Using the FileList module functionality to collect the files
        2. Using pathmap to transform file lists
        3. Introducing the FileUtils module
      5. A practical example of automatically generating a config file
      6. Summary
    11. 3. Working with Rules
      1. Understanding the duplication of the file tasks
      2. Using a rule to get rid of the duplicated file tasks
      3. Detecting a source for the rule dynamically
      4. Using a regular expression to match more tasks
      5. Summary
    12. 4. Cleaning Up a Build
      1. Setting up a project
      2. The cleaning tasks
      3. Summary
    13. 5. Running Tasks in Parallel
      1. Defining tasks with parallel prerequisites
      2. Thread safety of multitasks
      3. Multiple task definitions with a common prerequisite
      4. Applying multitasks in practice
      5. Summary
    14. 6. Debugging Rake Tasks
      1. Using command-line arguments for debugging
      2. Getting a dependency's resolution with --prereqs
      3. Using the --rules option to trace the rule resolution
      4. Using the Ruby approach to debug a Rake project
      5. Summary
    15. 7. Integration with Rails
      1. Introducing Rake's integration with Rails
      2. Custom rake tasks in a Rails project
      3. Recurrent running of tasks
      4. Summary
    16. 8. Testing Rake Tasks
      1. The need for tests
      2. Writing tests for rake tasks
      3. Summary
    17. 9. Continuous Integration
      1. Introducing Jenkins
      2. Setting up Jenkins
      3. Configuring Jenkins to run rake tasks
      4. Summary
    18. 10. Relentless Automation
      1. Examples of Rake being used by famous gems
        1. The pain of task execution
        2. Sinatra using Rake to run tests
        3. Sinatra using Rake to generate documentation
        4. Capistrano extending the Rake implementation
      2. Other examples of Sinatra using Rake
      3. Thor – the next generation of Rake
      4. Summary
    19. Index