$30 off During Our Annual Pro Sale. View Details »

RubyGems - A quick intro

RubyGems - A quick intro

A quick introduction to making your own RubyGems.

Peter Hellberg

November 24, 2011
Tweet

More Decks by Peter Hellberg

Other Decks in Programming

Transcript

  1. A QUICK INTRO
    RubyGems

    View Slide

  2. @peterhellberg

    View Slide

  3. I’m a Senior Systems
    Architect at Athega
    (where I build stuff in Ruby)

    I’m also the owner
    o Code7 Interactive
    (where I build stuff in Ruby)

    View Slide

  4. Gem::Specification.new do |s|
    # The attributes
    end
    Gem Speci ication
    In order to create a gem, you need to
    define a gem specification, commonly
    called a “gemspec”.

    View Slide

  5. Required gemspec attributes
    name This gem’s name
    summary A short summary of this gem’s description. Displayed in `gem list -d`.
    version This gem’s version
    s.required_ruby_version = ">= 1.8.7"
    Required Ruby Version

    View Slide

  6. Name, Summary and Version
    s.name = "pinch"
    s.summary = "Retrieve a file from" +
    "inside a zip file, over" +
    "the network!"
    s.version = Pinch::VERSION
    I generally add a ProjectName::VERSION constant
    to all of my projects, this makes it easy to show
    the current version at runtime.

    View Slide

  7. s.email = "[email protected]"
    s.homepage = "http://peterhellberg.github.com/pinch/"
    s.authors = ["Peter Hellberg", "Edward Patel"]
    s.license = "MIT-LICENSE"
    About

    View Slide

  8. s.files = Dir.glob("lib/**/*") +
    %w(MIT-LICENSE README.rdoc Rakefile .gemtest)
    Files
    s.test_file = "spec/pinch_spec.rb"
    Testing

    View Slide

  9. s.has_rdoc = true
    s.rdoc_options = [ '--main',
    'README.rdoc',
    '--charset=UTF-8' ]
    s.extra_rdoc_files = [ 'README.rdoc',
    'MIT-LICENSE' ]
    Documentation

    View Slide

  10. s.add_development_dependency 'yard', '~> 0.7'
    s.add_development_dependency 'minitest','~> 2.8'
    s.add_development_dependency 'fakeweb', '~> 1.3'
    s.add_development_dependency 'vcr', '~> 1.11'
    Dependencies
    No runtime dependencies in this particular
    project, otherwise I’d need a few calls to
    s.add_dependency

    View Slide

  11. Write
    some well
    tested code

    View Slide

  12. Publishing
    your gem to
    the world!

    View Slide

  13. $ gem build pinch.gemspec
    Building
    $ gem push pinch-0.2.1.gem
    Pushing
    http://guides.rubygems.org/command-reference/

    View Slide

  14. guides.rubygems.org/make-your-own-gem
    Learn more

    View Slide

  15. @peterhellberg
    peterhellberg.info
    git.io/peterhellberg

    View Slide