Executando verificação de segurança...
1

Showww, um outro uso da metaprogramação em Ruby é para criar métodos com menos verbosidade, exemplo:

  • Possuo uma classe Developer com o atributo "stack" (que pode ser "backend", "frontend", "devops" ou "fullstack")

Nesta classe posso criar métodos para verificar a stack do Developer da seguinte forma:

class Developer

    STACKS = ["backend", "frontend", "devops", "fullstack"].freeze
    
    STACKS.each do |stack|
      eval("def #{stack}?
        self.stack == '#{stack}'
      end")
    end
    
end

Desta forma, criamos um método de verificação para cada stack possível de um Developer, exemplo:

    john_doe = Developer.new(stack: "frontend")
    
    john_doe.backend?
    #false
    
    john_doe.frontend?
    #true
    
    john_doe.devops?
    #false
    
    john_doe.fullstack?
    #false
Carregando publicação patrocinada...