class MatrizDSL

Clase de Matriz DSL

Attributes

matrizA[R]
matrizB[R]

Public Class Methods

new(operacion) click to toggle source

Inicialización

# File lib/modai_prct12/matrizDSL.rb, line 5
def initialize(operacion)

        @op_texto = operacion.to_s
        
        # Por defecto la operación será & para devolver error
        case @op_texto        

        when "suma"
                @op = "+"            
        when "resta"
                @op = "-"
        when "producto"
                @op = "*"
        else
                @op = "&"            
        end  
                                
        @matA = nil
        @matB = nil

end

Public Instance Methods

execute() click to toggle source

Definimos la función de ejecución de la operación

# File lib/modai_prct12/matrizDSL.rb, line 51
        def execute
                
                # Comprobamos la validez de la operación
                if @op = "&"
                        puts "La Operacion no es valida"
                        return 0
                end
                
                # Mostramos las matrices
                if @matA != nil and @matB != nil

                        @matrizA = "Matriz" + @claseMat.to_s + ".new(@matA)"
                        puts "Matriz A: #{@matA}"

                        @matrizB = "Matriz" + @claseMat.to_s + ".new(@matB)"
                        puts "Matriz B: #{@matB}"                

                        resultado = @matrizA.to_s + "." + @op.to_s + "("  + " " + @matrizB.to_s + ")"
                        puts "Resultado de la operacion ( " + @op_texto.to_s + " ): "                        
                        resultado = eval(resultado)
#                        puts "Resultado de la operacion ( " + @op_texto.to_s + " ): #{resultado}"

                end
                
        end
operand(other) click to toggle source

Definimos el operando

# File lib/modai_prct12/matrizDSL.rb, line 37
def operand(other)
        
                        
        if(@matA == nil)
                @matA = other
        else
                @matB = other
        end
                     
        execute
        
end
option(opc) click to toggle source

Asignamos la opción de matriz

# File lib/modai_prct12/matrizDSL.rb, line 30
def option(opc)
        
        @claseMat = opc
        
end