如何让'bundle init'默认包含gems?

时间:2015-09-08 20:29:14

标签: ruby-on-rails ruby gem bundler

当我运行bundle init开始一个新项目时,我得到一个标准的Gemfile:

# A sample Gemfile
source "https://rubygems.org"

# gem "rails"

如何自定义此内容?

我的目标是在默认情况下包含的几乎所有项目中使用一些gems

我在bundle init文档中看到它可以与--gemspec=FILE选项一起使用,但有没有办法自定义仅使用bundle init时显示的默认版本?

2 个答案:

答案 0 :(得分:4)

你有正确的想法。我有一个我喜欢使用的模板,它看起来像这样:

〜/ .gemspec_template

Gem::Specification.new do |spec|
  spec.add_development_dependency "bundler", "~> 1.7"
  spec.add_development_dependency "rake", "~> 10.0"
  spec.add_development_dependency "pry"
end

从那里,我跑了:

bundle init --gemspec=~/.gemspec_template 

我得到的Gemfile看起来像是:

# Generated from /Users/anthonyross/.gemspec_template
source 'https://rubygems.org'

group :development do
  gem "bundler", "~> 1.7"
  gem "rake", "~> 10.0"
  gem "pry", ">= 0"
end

答案 1 :(得分:3)

bundle init
     

在当前工作目录中生成Gemfile

$ bundle init [--gemspec=FILE]
     

选项:

     

--gemspec:使用指定的.gemspec创建Gemfile Init   在当前工作目录中生成默认的Gemfile。什么时候   使用gemspec将gem文件添加到gem中, - gemspec选项将   自动将gemspec文件中列出的每个依赖项添加到   新创建的 Gemfile

bundle init所做的就是从模板生成 Gemfile gemspec

如果您想拥有默认的宝石列表,只需定义 gemspec 模板,将其用作'默认'

然后就像

一样使用它
$ bundle init --gemspec=~/.default

您甚至可以为其定义别名

#note the lack of a space in the alias name
$ alias bundleinit='bundle init --gemspec=~/.default' 

然后像

一样使用它
$ bundleinit