将Rails项目从Ruby 1.8.7升级到Ruby 1.9.2的脚本

Ruby 1.9的代码文件中,如果包含了utf-8字符,那么需要在文件的第一行加上# encoding: utf-8。我找到这样一个脚本来自动增加。
[url]http://stackoverflow.com/questions/3999415/why-are-all-strings-ascii-8bit-after-i-upgraded-to-rails-3/4158423#4158423[/url]

在lib/tasks目录下创建个文件lib/tasks/utf8encode.rake,内容如下:
# encoding: utf-8
desc "Manage the encoding header of Ruby files"
task :utf8_encode_headers => :environment do
files = Array.new
["*.rb", "*.rake"].each do |extension|
files.concat(Dir[ File.join(Dir.getwd.split(/\\/), "**", extension) ])
end

files.each do |file|
content = File.read(file)
next if content[0..16] == "# encoding: utf-8\n" ||
content[0..22] == "# -*- encoding: utf-8 -*-"

["\n\n", "\n"].each do |file_end|
content = content.gsub(/(# coding: utf-8#{file_end})|(# encoding: utf-8#{file_end})|(# -*- coding: utf-8 -*-#{file_end})|(# -*- encoding: utf-8 -*-#{file_end})/i, "")
end

new_file = File.open(file, "w")
new_file.write("# encoding: utf-8\n"+content)
new_file.close
end
end


运行rake utf8_encode_headers,好了,现在脚本全都帮你加完了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值