Build-a-Gem Workshop

  • 543 views
Uploaded on

Slides from the Newer Yankee Workshop session "Build-a-Gem"

Slides from the Newer Yankee Workshop session "Build-a-Gem"

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
543
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Newer Yankee Workshop Build-a-Gem
  • 2. What's a Gem?
    • Reusable Pieces of Ruby Code
    • 3. Packaged Following a Convention
    • 4. Python Eggs, Perl CPAN Modules, PHP PEAR Packages
  • 5. Why Build a Gem?
    • So people can use your wonderful code
    • 6. DRY
    • 7. Version control across different project
  • 8. Good Practices
    • Don't require “rubygems” in your library - http://gist.github.com/54177
    • 9. Always have test coverage
    • 10. Write your README (README.rdoc)
    • 11. Expose commit history (github is most common)
    • 12. Good documentation – RDOC
    • 13. Versions 0.0.0 (major, minor, patch)
    • 14. Use pre for Prereleases ( 0.1.0pre1 )
  • 15. Gem Anatomy
    • http://github.com/technicalpickles/the-perfect-gem
    LICENSE README Rakefile VERSION <gem-name>.gemspec ./lib ./tests ./specs ./features
    • Gem::Specification
    Gem::Specification.new do |s| s.name = 'example' s.version = '1.0' s.summary = “example gem ...” end
  • 16. But... we'll be using Jeweler http://github.com/technicalpickles/jeweler
  • 17. Distributing Gems
    • gems.rubyforge.org, rubygems.org, gemcutter.org (confused?)
    • 18. github also used to host gems (more confused?)
    • 19. Consistency is coming / here
    http://update.gemcutter.org/2010/02/20/rubygems-org-move-complete.html
    • Host your own gems, use gem server
    • 20. Cache / distribute .gem files – building sometimes makes “binaries” which are system-specific.
  • 21. Using Gems
    • gem install <gem>
    • 22. $LOAD_PATH then require gem
    • 23. require 'rubygems'
    • 24. gem bundler (bundler) - bundler under rapid development!
  • 25. Hello World (simple example followed by nextbus example followed by everyone pairing and gem building)