
O que são Generators:
Generators são uma maneira de você automatizar a criação de conjuntos de arquivos no seu APP (assim como o rails new, o rails generate controller, o rails generate scaffold e etc), e nesse Screencast nós vamos aprender como cria-los.
Porque criá-los?
- Acelera o desenvolvimento
- Evita erros
O que vamos utilizar
- Ruby
- Ruby On Rails
Screencast
Passo a Passo
Crie um projeto rodando no console:
1 |
rails new OneBitCode |
Para ver a documentação dos generators do rails rode dentro do projeto:
1 |
rails generate --help |
Agora crie seu Generator rodando:
1 |
rails g generator Service |
Para ver a documentação do seu generator rode:
1 |
rails g service --help |
Coloque no arquivo service_generator.rb o seguinte conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class ServiceGenerator < Rails::Generators::NamedBase source_root File.expand_path('../templates', __FILE__) argument :params, :type => :array, :default => [] # class_option :params, :type => :array, :default => [], :description => "Initialize variables" def generate_service # copy_file "service.rb", "app/services/#{name.underscore}_service.rb" template "layout_service.rb", "app/services/#{name.underscore}_service.rb" p "You can call your service running: #{service_name}Service.new(params).perform" end private def service_name name.camelcase end end |
Crie um arquivo chamador layout_service.rb em lib/generators/service/templates e coloque nele:
1 2 3 4 5 6 7 8 9 10 |
class <%= service_name %>Service def initialize(<%= 'params' if params.present? %>) <% params.each do |p| -%> <%= "@#{p} = #{p}" %> <% end -%> end def perform end end |
Para usar seu generator rode:
1 |
rails generate service SendToApi |
Pronto \o/
Links citados:
Guia do Rails para criar Generators:
http://guides.rubyonrails.org/generators.html#adding-command-line-arguments
Thor:
http://www.rubydoc.info/github/erikhuda/thor/master/Thor/Actions.html
Link para o Gihtub: https://github.com/leonardoscorza/service_generator

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Gostou desse Screencast? Comenta aí em baixo para eu saber. 🙂
Lembrando toda Quinta às 20h30 tem OneBitTalk e toda Sexta às 19h00 tem um novo tutorial para você aqui.
Ficou com alguma dúvida? Posta no nosso fórum: http://forum.onebitcode.com
Obrigado pela sua presença,
Grande abraço!
Leonardo Scorza
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!
Fique por dentro de todos os conteúdos o/
Nossas redes sociais:
📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
📱 • https://instagram.com/one_bit_code
🐦 • asia europe dating site
Nossos cursos:
🥇 • free teenage online dating sites
💎 • christian dating australia sydney
⚙ • https://onebitcode.com/tyler-saint-gay-escort/
🐞 • date blink social relationship single dating site usa
Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
Estamos aqui para você 🙂
Bem-vindo à família OneBitCode o/
Muito legal!
só umas dicas
– Tudo que ta dentro de /app, ja ta no autoload
– O autoloader que vc colocou no application.rb, nao ta lendo ./app/services.. ta lendo ./services, entao ele nao ta fazendo nada
E ai Clod, beleza?
Bacana seu ponto, você tem razão sobre o autoloading, obrigado pela contribuição.
Grande abraço
Por favor crie um tuto sobre Service meu caro Leonardo!
Por favor crie um Tuto sobre Services meu prezado Leonardo!