Skip to content

Instantly share code, notes, and snippets.

@douglasmartins7
Created May 8, 2018 23:00
Show Gist options
  • Select an option

  • Save douglasmartins7/617de84e9a94025434afebb8992b3070 to your computer and use it in GitHub Desktop.

Select an option

Save douglasmartins7/617de84e9a94025434afebb8992b3070 to your computer and use it in GitHub Desktop.
metaprogramçao
class Carro
def initialize(nome = "Modelo padrao")
@nome = nome
end
#metaprogramaçao, gera os gets e sets
attr_accessor :nome, :porta, :painel, :roda
attr_writer :pneu
def mostrar(marca="Marca padrao")
puts "Marca: #{marca} - Modelo: #{self.nome}"
end
end
def attr_accessor(*args)
args.each do |propriedade|
eval("
def #{propriedade}=(value)
@#{propriedade} = value
end
def #{propriedade}
@#{propriedade}
end
")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment