Para começar bem, você pode usar o bundle gem
comando e rspec --init
.
~/code $ bundle gem my_lib
create my_lib/Gemfile
create my_lib/Rakefile
create my_lib/LICENSE.txt
create my_lib/README.md
create my_lib/.gitignore
create my_lib/my_lib.gemspec
create my_lib/lib/my_lib.rb
create my_lib/lib/my_lib/version.rb
Initializating git repo in /Users/john/code/my_lib
~/code $ cd my_lib/
~/code/my_lib $ git commit -m "Empty project"
~/code/my_lib $ rspec --init
The --configure option no longer needs any arguments, so true was ignored.
create spec/spec_helper.rb
create .rspec
- o código entra
lib
- especificações vão em
spec
- dados de teste ou documentos entram
spec/fixtures/
- Exija todos os seus arquivos ruby em
lib/my_lib.rb
. Você também pode definir suas exceções nesse arquivo ou em seus próprios arquivos - de acordo com sua preferência.
- Arquivos de origem C vão para
ext/my_lib
- scripts shell e executáveis vão em
bin
Em caso de dúvida, veja como as outras joias estão dispostas.
Outras informações:
Você deve adicionar rspec como uma dependência de desenvolvimento em seu gemspec para tornar as coisas mais fáceis para outros desenvolvedores
- Edite my_lib.gemspec, adicionando
gem.add_development_dependency 'rspec'
e gem.add_development_dependency 'rake'
próximo ao final.
- Adicione
Bundler.setup
e require 'my_lib'
no topo de spec / spec_helper.rb para garantir que suas dependências de gem sejam carregadas quando você executar suas especificações.
- Adicione
require "rspec/core/rake_task"
e task :default => :spec
ao seu Rakefile, para que a execução rake
execute suas especificações.
Enquanto você está trabalhando em sua criação mais recente, guard-rspec pode economizar tempo e aborrecimento executando automaticamente suas especificações conforme os arquivos mudam, alertando-o sobre as falhas de especificação.
~/code/my_lib $ git add spec/spec_helper.rb
~/code/my_lib $ git commit -am "Add RSpec"
~/code/my_lib $ vim my_lib.gemspec # add guard development dependency
~/code/my_lib $ bundle
~/code/my_lib $ bundle exec guard init
~/code/my_lib $ vim Guardfile # Remove the sections below the top one
~/code/my_lib $ git add Guardfile
~/code/my_lib $ git commit -am "Add Guard"
Quando estiver satisfeito com sua criação, envie-o para o github
# create a github repository for your gem, then push it up
~/code/my_lib $ curl -u myusername https://api.github.com/user/repos -d '{"name":"my_lib"}'
~/code/my_lib $ git remote add origin git@github.com:myusername/my_lib.git
~/code/my_lib $ git push
Então, quando você estiver pronto para lançar sua joia em Rubygems.org, execute rake release
, que o guiará pelas etapas.
~/code/my_lib $ rake release
Referências adicionais