create your-own-gem-with-github-jeweler-rubygems
DESCRIPTION
Create your own gem with github, jeweler and rubygems.org. I gave this talk at Railscamp Germany 4.TRANSCRIPT
Create Your Own Gem
with github, jeweler and rubygems
Gem structure
Gem repository
Gem versioning
Gem releasing
Get a Github Account
Don’t you have one yet?
Rubygems Account
gem install jeweler
Create a Projectjeweler an-awesome-gem --rspec --rubygemscd an-awesome-gem
Safe some time with defaults:export JEWELER_OPTS="--rspec"
Create a Versionrake version:write
> version is 0.0.0
Update Versionsrake version:bump:minor
> version is 0.1.0
major . minor . patch
Descriptionrequire 'rubygems'require 'rake'
begin require 'jeweler' Jeweler::Tasks.new do |gem| gem.name = "an-awesome-gem" gem.summary = %Q{TODO: one-line summary of your gem} gem.description = %Q{TODO: longer description of your gem} gem.email = "[email protected]" gem.homepage = "http://github.com/hagenburger/an-awesome-gem" gem.authors = ["Nico Hagenburger"] gem.add_development_dependency "rspec", ">= 1.2.9" # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings end
an-awesome-gem/Rakefile
Github Repository
Git Itgit add .git commit -m "initial commit"
Local Install[sudo] rake install
Be careful:
- Only commited files will be installed
- Once commited but changed files will be installed with current not commited version
Release Itrake release
Magic:✓ Commits✓ Creates a release tag✓ Pushes to github✓ Releases to:
rubygems.org/gems/an-awesome-gem
Ready!
Don’t Forget
★ Edit/create README.md
★ Add a CHANGELOG.md
★ Add dependencies in Rakefile
★ Write some specs/tests
★ Promote it!
Any questions?