class DSLMenu

Attributes

menu[RW]
nombre[RW]
platos[RW]

Public Class Methods

new(nombre) { |self| ... } click to toggle source
# File lib/DSLMenu.rb, line 5
def initialize(nombre, &block)
    @nombre = nombre
    @platos = []
    @menu = []

    if block_given?
        if block.arity == 1
            yield self
        else
            instance_eval(&block)
        end
    end
end

Public Instance Methods

plato(nombre, opciones = {}) click to toggle source
# File lib/DSLMenu.rb, line 34
def plato(nombre, opciones = {})
    plato = nombre
    plato << "\n| contiene: #{opciones[:descripcion]} " if opciones[:descripcion]
    plato << "  | valor nutricional: #{opciones[:nutricional]}" if opciones[:nutricional]
    plato << "  | impacto ambiental: #{opciones[:ambiental]}" if opciones[:ambiental]
    plato << "\n\n #{opciones[:precio]} €\n" if opciones[:precio]
    @platos << plato
end
to_s() click to toggle source
# File lib/DSLMenu.rb, line 19
def to_s
    output = "\n\n\n" + @nombre.upcase
    output << "\n#{'='*@nombre.size}\n\n "
    @menu.each do |menu|
        output << "#{menu}"
    end
    output << "\n\n"
    @platos.each_with_index do |plato, i|
        output << "[#{i + 1}] #{plato}\n"
    end

    output << "\n\n\n"
    output
end