Your SlideShare is downloading. ×
0
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Build-a-Gem Workshop
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Build-a-Gem Workshop

783

Published on

Slides from our Newer Yankee Workshop "Build-a-Gem" session.

Slides from our Newer Yankee Workshop "Build-a-Gem" session.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
783
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
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&apos;s a Gem? <ul><li>Reusable Pieces of Ruby Code
  • 3. Packaged Following a Convention
  • 4. Python Eggs, Perl CPAN Modules, PHP PEAR Packages </li></ul>
  • 5. Why Build a Gem? <ul><li>So people can use your wonderful code
  • 6. DRY
  • 7. Version control across different project </li></ul>
  • 8. Good Practices <ul><li>Don&apos;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 ) </li></ul>
  • 15. Gem Anatomy <ul><li>http://github.com/technicalpickles/the-perfect-gem </li></ul>LICENSE README Rakefile VERSION &lt;gem-name&gt;.gemspec ./lib ./tests ./specs ./features <ul><li>Gem::Specification </li></ul>Gem::Specification.new do |s| s.name = &apos;example&apos; s.version = &apos;1.0&apos; s.summary = “example gem ...” end
  • 16. But... we&apos;ll be using Jeweler http://github.com/technicalpickles/jeweler
  • 17. Distributing Gems <ul><li>gems.rubyforge.org, rubygems.org, gemcutter.org (confused?)
  • 18. github also used to host gems (more confused?)
  • 19. Consistency is coming / here </li></ul>http://update.gemcutter.org/2010/02/20/rubygems-org-move-complete.html <ul><li>Host your own gems, use gem server
  • 20. Cache / distribute .gem files – building sometimes makes “binaries” which are system-specific. </li></ul>
  • 21. Using Gems <ul><li>gem install &lt;gem&gt;
  • 22. $LOAD_PATH then require gem
  • 23. require &apos;rubygems&apos;
  • 24. gem bundler (bundler) - bundler under rapid development! </li></ul>
  • 25. Hello World (simple example followed by nextbus example followed by everyone pairing and gem building)

×