Pour obtenir un bon départ, vous pouvez utiliser la bundle gem
commande et 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
- le code entre
lib
- les spécifications entrent
spec
- les données de test ou les documents entrent
spec/fixtures/
- Exigez tous vos fichiers ruby au format
lib/my_lib.rb
. Vous pouvez également définir vos exceptions dans ce fichier ou dans leurs propres fichiers, selon vos préférences.
- Les fichiers source C entrent
ext/my_lib
- les scripts shell et les exécutables entrent
bin
En cas de doute, regardez comment les autres gemmes sont disposées.
Informations complémentaires:
Vous devriez ajouter rspec en tant que dépendance de développement dans votre gemspec pour faciliter les choses pour les autres développeurs
- Modifiez my_lib.gemspec, en ajoutant
gem.add_development_dependency 'rspec'
et gem.add_development_dependency 'rake'
près du bas.
- Ajoutez
Bundler.setup
et require 'my_lib'
en haut de spec / spec_helper.rb pour vous assurer que vos dépendances de gem sont chargées lorsque vous exécutez vos specs.
- Ajoutez
require "rspec/core/rake_task"
et task :default => :spec
à votre fichier Rakefile, de sorte que l'exécution rake
exécutera vos spécifications.
Pendant que vous travaillez sur votre dernière création, guard-rspec peut vous faire gagner du temps et des tracas en exécutant automatiquement vos spécifications à mesure que les fichiers changent, vous alertant en cas d'échec des spécifications.
~/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"
Une fois que vous êtes satisfait de votre création, poussez-la vers 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
Ensuite, lorsque vous êtes prêt à publier votre gemme sur Rubygems.org, exécutez rake release
, qui vous guidera à travers les étapes.
~/code/my_lib $ rake release
Références supplémentaires