Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gemas en ruby

Gemas en ruby

Charla sobre gemas en ruby

Angel Celis Botto

August 14, 2015
Tweet

More Decks by Angel Celis Botto

Other Decks in Programming

Transcript

  1. Ruby Gems - Comando gem Comando gem $ gem search

    rails --------------> Buscar gemas $ gem install rails --------------> Instalar gemas $ gem list --------------> Listar gemas instaladas $ gem uninstall rails --------------> Remover gemas
  2. Ruby Gems - ¿para que sirven las gema ? ¿para

    que sirven las gemas? > Simplificar funciones complejas. > Crear aplicaciones para la linea de comandos. > Facilitar el uso de una aplicacion publica. > Reusar codigo en una o varias aplicaciones.
  3. Ruby Gems - dale un buen nombre Dale un buen

    nombre ☝ > Underscore para gemas de multiples palabras $ gem hola_mundo ----------------> HolaMundo > Dashes para extensiones $ gem rails-hola_mundo ----------------> Rails::HolaMundo > Asegurate que el nombre este disponible $ gem query --remote --name-matches ‘^rails$’ $ gem query —rn ‘^rails$’
  4. Ruby Gems - Creemos una gema Creemos una gema $

    gem install bundler create rails_girls/Gemfile create rails_girls/Rakefile create rails_girls/LICENSE.txt create rails_girls/README.md create rails_girls/.gitignore create rails_girls/rails_girls.gemspec create rails_girls/lib/rails_girls.rb create rails_girls/lib/rails_girls/version.rb $ bundle gem rails_girls
  5. Ruby Gems - Gemfile & Rakefile Gemfile & Rakefile Gemfile

    source 'https://rubygems.org' gemspec Rakefile require "bundler/gem_tasks" $ rake -T rake build rake install rake release
  6. Ruby Gems - *.gemspec *.gemspec rails_girls.gemspec Gem::Specification.new do |spec| spec.name

    = "rails_girls" spec.version = RailsGirls::VERSION spec.authors = ["angelbotto"] spec.email = ["[email protected]"] #.… Referencias de especificaciones: https://30k.co/hj
  7. Ruby Gems - Primero las pruebas TDD Primero las pruebas

    TDD require 'minitest/autorun' require 'rails_girls' class RailsGirlsTest < Minitest::Test def test_hi_without_name assert_equal "Hola !!", RailsGirls.hi end def test_with_name assert_equal "Hola Angel!!", RailsGirls.hi('Angel') end end test/test_rails_girls.rb
  8. Ruby Gems - Un poco de codigo Un poco de

    codigo lib/rails_girls.rb require "rails_girls/version" module RailsGirls def self.hi(name = nil) "Hola #{name}!!".strip end end
  9. Ruby Gems - Que tal un ejecutable Que tal un

    ejecutable $ ruby -I lib ./bin/rails_girls Hola !! $ ruby -I lib ./bin/rails_girls Angel Hola Angel!! #!/usr/bin/env ruby require ‘rails_girls’ puts RailsGirls.hi(ARGV[0]) mkdir bin touch bin/rails_girls chmod a+x bin/rails_girls
  10. Ruby Gems - rubyGems.org rubyGems.org $ open http://rubygems.org/users/new $ rake

    release $ gem push pkg/rails_girls-0.0.1.gem $ gem install rails_girls