什么是Rake?

Rake是Ruby的一个gem, 使用Rake可以自动化一些常用的文件操作和读写操作。

安装Rake

使用gem install来安装rake:

gem install rake

※安装Rake必须先安装Ruby。

Rake的基本用法

通过简单的例子来说明一下用法。

Rakefile文件

在想使用rake的文件夹内创建Rakefile文件。每当我们在命令行里输入rake时,rake就会执行Rakefile里相应的脚本。

使用Rake说Hello World

用喜欢的编辑器打开Rakefile文件,写入

task :default do
	puts "Hello World"
end

保存文件,打开命令行,移动到该目录下。敲下:

rake

这样屏幕会显示Hello World。很简单吧?稍微解释一下Rakefile里面的内容。task表示执行的任务,在这里:default表示默认的任务。

第一次接触Ruby的人或许会奇怪,:default开头的:号是什么意思。其实这是Ruby的一种变量(symbol),它有点像其他语言中的enum,主要用来对应一些数值。比如其他语言中,数组的key一般是string类型,但在Ruby里一般使用symbol来定义。symbol自身只是一种标签性质的变量

友情提示:Ruby语言不需要;来结束行。

当然,我们可以把:default改成:hello

task :hello do
	puts "Hello World"
end

这样的话,我们需要敲入

rake hello

才会显示刚才的Hello World。很简单吧,根据这个原理,我们可以试着创建多1个task


task :hello do
	puts "Hello World"
end

task :bye do
	puts "Good Bye"
end

这样,我们就可以使用rake hello来说Hello World,使用rake bye来说goodbye

namespace

为了组织好每个任务,我们可以使用namespace

namespace :say do

	task :hello do
		puts "Hello World"
	end
	
	task :bye do
		puts "Good Bye"
	end
	
end

这样,我们刚才写的两个task就可以使用下面的命令来呼出:

rake say:hello
Hello World

rake say:bye
Good Bye

可读性很强吧?这也是Ruby语言的特征。

使用Rake进行简单文件操作

新增文件

我们编辑一下Rakefile,写入下面的代码

namespace :create do
	# 新建一个txt文件
	task :txt do
		File.write('text.txt', '')
	end
end

这样,敲入命令

rake create:txt

当前目录下便会新建一个叫text.txt的文件。File是Ruby里内建的一个class。这个类可以非常方便地进行文件操作。这里介绍读取和写入这两个最常用的方法。

方法 效果 用例
write 写入文件 File.write(文件路径, 内容)
read 读取文件 content = File.read(文件路径)

我们修改一下上面的代码

namespace :create do

	# 定义一个变量
	content = '我是txt文件'
	
	# 新建一个txt文件
	task :txt do
		# 把content内容写入text.txt
		File.write('text.txt', content)

		# 输出信息
		puts '----文件已经写入----'
		
		# 读取文件内容到content_now
		content_now = File.read('text.txt')

		# 输出结果
		puts content_now
	end
	
end

结果会显示为:

rake create:txt
我是txt文件

很简单吧,这次就分享到这里。下一次我们会讨论一下如何输入数值到变量。