`

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

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

在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,好了,现在脚本全都帮你加完了
分享到:
评论

相关推荐

    ruby1.8.7 & rails2.3.8

    在这个压缩包中,你找到了一个完整的Ruby 1.8.7和Rails 2.3.8的开发环境,这是一套较旧但经典的技术栈,适用于学习历史版本的Rails或者维护旧项目。 标题"ruby1.8.7 & rails2.3.8"指的是这个压缩包的核心内容:Ruby...

    rails2.3.8 && ruby1.8.7

    标题中的"rails2.3.8 && ruby1.8.7"指的是Ruby on Rails框架的2.3.8版本和Ruby编程语言的1.8.7版本。Ruby on Rails(通常简称为Rails)是一个基于Ruby语言的开源Web应用程序框架,它遵循模型-视图-控制器(MVC)架构...

    ruby 1.8.7 rails 2.3.4

    标题 "ruby 1.8.7 rails 2.3.4" 提及的是 Ruby 语言的一个较旧版本(1.8.7)以及与其兼容的 Rails 框架的老版本(2.3.4)。Ruby 是一种面向对象的、动态类型的编程语言,而 Rails 是一个基于 MVC(模型-视图-控制器...

    ruby1.8.7版for linux

    下面我们将深入探讨Ruby 1.8.7在Linux环境中的应用、特点以及与后续版本的差异。 Ruby是一种面向对象的、动态类型的编程语言,由日本人松本行弘(Yukihiro Matsumoto)在1995年创建。它强调简洁、优雅的语法和高效...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-...但是,如果你正在维护一个老项目或学习历史版本的Rails,这个环境包将是一个宝贵的资源。

    Ruby 1.8.7-p160

    Ruby 1.8.7-p160 是一个历史悠久的Ruby编程环境版本,发布于2009年6月27日。这个版本在当时代表了Ruby...不过,随着时间的推移,为了获得更好的性能和安全性,开发者们通常会升级到更现代的Ruby版本,如2.x或3.x系列。

    ruby-1.8.7-p72.tar.gz

    在IT领域,Ruby常常用于Web开发,尤其是与Ruby on Rails框架结合使用,能够快速构建高效、优雅的Web应用。 "ruby-1.8.7-p72.tar.gz" 是一个特定版本的Ruby发行版,这里的“p72”代表了该版本的补丁级别,意味着它是...

    Rails项目源代码

    Rails的路由系统将URL映射到控制器的行动上,如`/sign_up`可能对应`users#new`,用于创建新用户。`config/routes.rb`文件定义了所有路由规则,包括资源路由、命名路由和自定义路由。 6. **视图模板**: 视图使用...

    ruby安装升级及命令自行编译安装非APTGET方式安装升级的办法

    - 将自己安装的Ruby路径添加到系统的PATH环境变量最前端,以优先调用自定义版本。 - 在用户的`.profile`文件中增加以下代码: ```bash if [ -d "/usr/local/ruby-1.9.1/bin" ]; then PATH="/usr/local/ruby-1.9.1...

    opal-rails, 将 ruby 带到Opal的Rails Rails 绑定.zip

    opal-rails, 将 ruby 带到Opal的Rails Rails 绑定 蛋白石 Rails 用于蛋白石 ruby 引擎的 Rails 绑定。 ( 变更日志 )安装在你的Gemfile 中gem 'opal-rails'或者当你构建新的Rails 应用程序时:rails

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    ### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...

    ruby-1.9.2-preview1-x64-mswin64-80.zip

    Ruby 1.9.2的发布进一步巩固了这个生态系统,鼓励开发者采用并贡献到这个语言中。 总的来说,"ruby-1.9.2-preview1-x64-mswin64-80.zip" 是一个为Windows 64位系统提供的Ruby开发环境,它带来了性能提升、语言增强...

    Ruby on Rails Tutorial

    《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...

    ruby脚本交互.rar

    6. **学习资源**: 对于进一步学习Ruby脚本交互,可以参考Ruby官方文档,如《The Ruby Programming Language》书籍,以及在线资源如Ruby on Rails教程。对于易语言,可以查阅易语言官方文档和社区论坛,了解其语法...

    JRuby和Rails-让Ruby语言融入于Java项目.rar

    这本书旨在帮助开发者理解和实践如何将Ruby on Rails的灵活性和生产力引入到Java企业级开发中,从而提升软件开发效率。 JRuby是Ruby编程语言的一个实现,它是用Java语言编写的,因此可以无缝地与Java平台交互。...

    ruby on rails最新版

    总的来说,这个压缩包对于Ruby on Rails的初学者或希望升级现有项目的开发者来说,是一个宝贵的资源。它提供了便捷的方式来获取和安装Rails框架,从而快速进入开发状态。不过,使用前应确保已安装好Ruby环境,并了解...

Global site tag (gtag.js) - Google Analytics