`
fsword
  • 浏览: 164703 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

rails 3 下面编写项目模板

阅读更多

rails 3出来以后,大家都开始尝试里面的各种功能,我早先也试过其中的项目模板功能,感觉不错,在github上放了一个地址用来记录模板,地址在: https://github.com/fsword/rails_templates ,今天拿这几个模板在windows上测试了一下,发现一些问题,这里记录一下

 

先说使用,模板使用起来只要一行代码就行:

 

$ rails new your_app -m https://github.com/fsword/rails_templates/raw/master/jruby_template0.rb

你也可以下载到本地再用:

$ rails new your_app -m ./jruby_template0.rb

 

是不是很简单?那么,它能做什么呢,我用的结果是,它大致上可以做——任何事

 

没错,从项目的gem依赖、数据库驱动配置到编写主要模型类、公共页面甚至特殊页面等等等等,只要你愿意,都可以写在这里面,因为它就是一个ruby代码脚本,只不过是用 rails 命令建立项目后进行了后处理而已

 

当然,简单归简单,真要把所有逻辑写进去还是很麻烦的,这个工具主要还是用来做项目骨架

 

这里面可以调用哪些常见的api呢,我没有在网上找到如何编写模板的文档,所以想了一个笨办法——写个这样的模板:

 

# filename : x.rb
self.methods.sort.each{|m| p m}

这样,执行一下 rails new your_app -m x.rb,我们就能得到可以调用的api了。

 

大致上,常见的api包括:

  • remove_file: 删除指定文件,这个api可以方便的跨平台使用
  • remove_dir: 删除指定目录,这个api可以方便的跨平台使用
  • say: 在标准输出打印一段文字
  • gem: 在Gemfile中添加一个依赖包
  • gsub_file: 替换指定文件的内容,有了它,就不必费劲的写 File.open f.write 了
  • run: 执行一个外部命令
  • application: 参数是一个闭包,在application.rb文件中添加闭包中的内容
  • generate: 调用 rails generator
  • route: 添加 route 记录
  • git: 执行 git 操作,例如: init, add, commit 等等
  • rake: 执行 rake 任务

这些命令中,需要注意的是 run 命令,它与操作系统环境有关,如果编写这样的代码:

 

run 'rm README'

 

那么只能在非windows环境下运行了

 

另外还有一个命令:copy_file,但是它的相对目录不是所创建的rails项目,而我还没有找到代替方法,暂时不推荐了

 

还有一个很头疼的问题是关于 https 的,受到大中华局域网的影响,git上的资源不是很稳定,所以需要重试,我改了一下代码,添加了一个函数

 

def try_to n
  if block_given?
    n.times{|i|
      begin
        return yield
      rescue
        p "failed #{i} times"
        sleep 1
      end
    }
    nil
  end
end

def try_get url, file=nil
  try_to(3)do get url,file end
end
 

然后,把

get "https://github.com/fsword/rails_templates/raw/master/resource/gitignore", ".gitignore"

改为

try_get "https://github.com/fsword/rails_templates/raw/master/resource/gitignore", ".gitignore"

即可

 

Ok, have fun!

3
7
分享到:
评论
2 楼 xiangchao027 2012-11-04  
我能明白,因为太嫉妒了!
1 楼 alang 2011-05-24  
非常棒的心得,用得好,能玩出花了。我就不明白那些点踩的人是什么心态!

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 可以用来创建只提供API服务(API-Only)的 Rails 应用,不需要整个Rails 栈和模板生成。也可以用来编写在 Web 应用和客户端之间进行数据共享的后端程序,允许开发者创建接受 JSON 格式数据并以传统 RoR ...

    crambear-rails:用railsember.js编写的闪存卡站点

    替换为ember-cli / rails项目: Crambear Crambear是一个用Rails和EmberJs编写的闪存卡应用程序。 其目的是提供一个实际的Ember.js应用程序的简单示例。 非平凡的意思是,有些东西将不仅仅是1或2个模型,而除了...

    rails-lifestyles:用Ruby on Rails编写的Lifestyle Bloggin应用程序演示

    生成项目的Rails凭证: EDITOR=true bundle exec rails credentials:edit 更改项目的名称。使用提交作为参考 另外,不要忘记从package.json文件更改名称和版本 执行Rubocop命令,因此linter的工作流不会失败: ...

    -deprecated-cmsimple:[已弃用] 使用机车 cms 或类似的 http

    Rails 3 项目应该在他们的 Gemfile 中指向那个标签。 入门 将宝石添加到您的Gemfile gem 'cmsimple' , github : 'modeset/cmsimple' 运行安装生成器 rails g cmsimple:install 模板 CMSimple 模板只是视图。 ...

    DeployTool:Simple Rails 5部署工具

    部署示例项目“ Rails 5 App” 如何部署Rails 5 App 1.克隆部署工具并安装gem git clone https://github.com/DeployRB/DeployTool.git cd DeployTool gem install bundler bundle install 2.复制模板

    railsguidebook:“Rails 初学者指南”存储库

    此外,通过在 Github 上发布文档源,多位有实践经验的开发者可以通过与共同编写,分享每个 Rails 项目开发的诀窍 在(Rails Guide离线免费课程)中,对讲座的重要部分进行了摘录和中间讲解。 希望本书能帮助新接

    fastui:Fastui从模型为Rails生成UI

    在Fastui中,您只需要用普通的Ruby编写域类就可以将Web应用程序投入生产。 该项目动摇并使用了MIT-LICENSE。配置例如,如下所示的视图语法:默认情况下,视图在文件config / initializers / fastui_config.rb中进行...

    thebes:已弃用-Thebes是带有Riddle的Rails和Sphinx的薄粘合层

    Thebes希望您可以手工编写Sphinx配置文件,并且对Sphinx有丰富的了解,但是提供了配置文件和模板以简化此过程。安装要使用Thebes,只需将其添加到您的Gemfile : gem 'thebes'# Or pin Thebes to git# gem 'thebes'...

    scribble:Scribble 是一种面向客户的模板语言,类似于 Ruby 中的 Liquid 构建

    Scribble 是用 Ruby 编写的,可以在任何 Ruby 或 Ruby on Rails 项目中使用。 它需要一个由文本和 Scribble 标签组成的模板文件,并将其转换为文本。 Scribble 可用于转换任何纯文本格式,如 HTML、Markdown、JSON...

    template_app

    在组织项目时,设计是至关重要的部分。 即使它具有最出色的核心功能,如果设计不令人满意,则用户极有可能不使用它。 而是,即使它缺乏功能,看起来美丽的设计也更适合于吸引用户的可用性。 当然,同时具有设计和...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    java开源包3

    Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    MealScheduler-UI

    这是我用注册、登录和 GET /contacts 路由编写的带有 Flux 的 React 模板,这些路由通过护照和 JWT 进行了身份验证。 我有一个匹配的存储库,其中包含带有 Ruby on Rails 的后端 API: 。 我还有一个匹配的存储库,...

    business-jekyll-theme:适合您业务的Business Jekyll主题

    商业吉基尔主题 Business Jekyll主题是设计用于中小企业的主题。 它是由的团队设计的。 然后, 将主题移植到... 如果您尚未安装Ruby on Rails,则可以遵循我为Windows,Linux和MacOS编写的(包括安装视频)。 使用命

    frontend-helpers:Ruby方法的集合,以简化表单和其他UI元素的构建。 该项目有一个名为js-frontend-helpers的配套项目,带有Stimulus控制器,可为某些ruby方法提供JS功能。

    Ruby / Rails助手安装方式将此行添加到您的应用程序的Gemfile中: gem 'frontend_helpers' , github : 'Grupo-AFAL/frontend-helpers' , branch : 'main' 然后执行: $ bundle install用法待办事项:编写如何使用...

    java开源包1

    Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...

    java开源包11

    Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...

    java开源包2

    Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式...

Global site tag (gtag.js) - Google Analytics