Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Rake Task Management Essentials
Rake Task Management Essentials

Rake Task Management Essentials: Deploy, test, and build software to solve real-world automation challenges using Rake.

eBook
€8.99 €15.99
Paperback
€19.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Rake Task Management Essentials

Chapter 2. Working with Files

Rake is a tool that is intended to work primarily with files, and it actually has the best instruments to do this. In this chapter, we will see what Rake provides us with so we can work with files. We will look at utilities in order to work with them and at the end of the chapter, you will see how this information can be applied in practice.

In this chapter, we will discuss the following topics:

  • Using file tasks to work with files

  • The characteristics of the file task dependencies

  • Creating a folder with the directory method

  • Using Rake's file utilities

  • A practical example of automatically generating a config file

Using file tasks to work with files


Often, you have to transform files from one type to another using a utility. For example, compiling source code to byte code in a language such as C or Java, or converting PNG images to JPG, and so on. For these challenges, Rake has many useful arms in its arsenal.

Assume that we have a Ruby project and it has a YAML-generated config file ending with .yaml and, for some reason, we have decided to rename it so that it ends with .yml. This process might have to be repeated very often as the file is generated by a third-party tool. Hence, we have to automate this process. We could do it manually with the following command:

$ mv settings.yaml settings.yml

The Rake produces a special type of task for cases like this. This is the file task. To define a file task, use a file method. The usage of this task is similar to general tasks. Honestly, it inherits all the general task behaviors. In a file task, we can set the prerequisites and write a task action or set...

The characteristics of the file task dependencies


In real life, we encounter more complicated examples like we have just seen. Often, a project build contains a lot of transformations of many files.

Consider that you have a blog and it contains a lot of articles. To build the site, you have to translate each chapter from the Markdown format to HTML. This will allow you to publish the blog on the Internet.

Note

Markdown is a plain text formatting syntax designed so that it can be optionally converted to HTML using a tool by the same name. More about this can be found at http://en.wikipedia.org/wiki/Markdown.

To convert articles from Markdown to HTML, we will use the pandoc (http://johnmacfarlane.net/pandoc/) command-line utility. If you use Linux, your system's package manager may already contain it, and the installation is very easy. Use the following command to install pandoc:

$ apt-get install pandoc

Note

If you want to know more about the utility, or if you have some other operating system and...

Creating a folder with the directory method


Sometimes, you will have to create folders with nesting. You can create files and folders with file tasks. If you need to create a folder tree, you can achieve this with the file tasks' definitions and their dependencies. The following is an example of this usage:

file 'my_gem' do |t| mkdir t.name end
file 'my_gem/tests" => ['my_gem'] do |t| mkdir t.name end
file 'my_gem/tests/fixtures" => ['my_gem/tests/fixtures'] do |t|
  mkdir t.name
end

When you try to execute the my_gem/tests/fixtures task, it will first call the dependent my_gem/tests task and then the call will be passed to the my_gem task. The tasks create folders with their name. Finally, we will have created a ready-to-use folder path, my_gem/tests/fixtures.

Another way is to use the FileUtils#mkdir_p method, which might be used in the task action or just in the Rakefile context. However, this is not the Rake way. There is a special way to define folder tasks in the Rake language:...

Using Rake's file utilities


Rake provides us with a few helpful modules and methods. They may be very useful in some cases, especially while working with files. Knowing them might help you keep Rakefiles clean and precise. The following is a list of these features:

  • The FileList module

  • The FileUtils module

  • The pathmap method

The next three sections will explore them in detail.

Using the FileList module functionality to collect the files

There is only one thing remaining in our Rakefile that would be great to get rid of. Currently, there is a need to change the list of articles manually. Luckily, Rake provides us with a tool to solve this problem—Rake::FileList. It provides agile instruments to tune your own list of files to be generated. It is flexible enough to filter the list of files by the category of your choice. It also enables you to filter out temp files that are generated by your editor, folders that have to be ignored, and files with some features that can be detected dynamically (timestamps...

A practical example of automatically generating a config file


Now that you have some knowledge, we would like to show you how Rake can be used in practice. Every Rails developer knows that the first step they have to take when they have a new project is to create the config/database.yml file. It's a rather boring process and includes a lot of manual processes. If there is a config/database.yml.template file, you are lucky and you have to just copy it to config/database.yml. However, if this template file is not in the project, you will have to copy it from another project or find it on the Internet, in the documentation, or somewhere else. The next step consists of changing the configuration itself. As usual, it includes changing the username, password, adapter, and database. Also, you have to change these variables for each environment. It's a boring process, isn't it? So, we decided that if we create a task to automate this process, it will be useful. We hope your Rake arsenal is complete...

Summary


This chapter covered the basic features of Rake for working with files. Now, you should be able to use Rake to solve any file problems that you might encounter in your daily work. At the end of the chapter, we saw an example that used this knowledge.

However, one more problem that may seem inconvenient to you is its code duplication in the file tasks' definitions. In the next chapter, you will see how to improve the code of this chapter with rules. You will be introduced to rules and see how to use them in practice.

Left arrow icon Right arrow icon

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Apr 21, 2014
Length: 122 pages
Edition :
Language : English
ISBN-13 : 9781783280780
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Apr 21, 2014
Length: 122 pages
Edition :
Language : English
ISBN-13 : 9781783280780
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 38.98
Configuration Management with Chef-Solo
€18.99
Rake Task Management Essentials
€19.99
Total 38.98 Stars icon
Banner background image

Table of Contents

10 Chapters
The Software Task Management Tool – Rake Chevron down icon Chevron up icon
Working with Files Chevron down icon Chevron up icon
Working with Rules Chevron down icon Chevron up icon
Cleaning Up a Build Chevron down icon Chevron up icon
Running Tasks in Parallel Chevron down icon Chevron up icon
Debugging Rake Tasks Chevron down icon Chevron up icon
Integration with Rails Chevron down icon Chevron up icon
Testing Rake Tasks Chevron down icon Chevron up icon
Continuous Integration Chevron down icon Chevron up icon
Relentless Automation Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(4 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Alexander Koshelapov Jun 02, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book is very useful and easy-to-read.Material is perceived easily thanks to a deep and detailed explanation of each issue.Examples in this book are very good. They are very close to real problems which you may often meet in the development process. The author sets a good standard for rake task writing style.This book will be interested to beginners and also people with experience
Amazon Verified review Amazon
Morazan Feb 03, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
It was hard to find a book that addresses Rake as a topic by itself. I liked that it started at a very introductory level ("Hello, Rake"), and then progressed step-by-step to more complex topics. The chapter on file operations was terrific. This is a short book, easy to read, and filled with useful tips that clearly come from experience.
Amazon Verified review Amazon
Starkovv Feb 24, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I'd rate this book as 4.5 of 5.Pros:– the book describes the base concepts of Rake quite wellCons:– a few typos
Amazon Verified review Amazon
Serge May 31, 2014
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book will in a concise manner introduce you to rake - a simple and powerful tool to automate different kind of tasks you may have as a developer or administrator.The author explains the essential concepts of rake utility: project structure, namespaces, variables, conventions, files, rules etc.You will get to know how rake works - how dependent tasks are called, how tasks can be run in parallel.There are many code examples which illustrate the concepts discussed.There are also shown many use cases which illustrate where and how rake is used and how it can be used in real life projects.This book may be interesting as for beginners so for people who already use rake and want to better understand it's internals and it's power.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.