Sha256: 461bcb89cb0bddaa63873c1ea330eed496b1c4044dd1aa3f139d3c1c05412fb1
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
require "Fraccion.rb" require "Matriz.rb" require "Matriz_densa.rb" require "Matriz_dispersa.rb" class Dsl attr_accessor :operando, :operacion, :modo_resultado, :tipo_matriz def initialize (operacion, &block) raise ArgumentError , 'Operacion no valida' unless operacion.is_a? String @operacion = operacion @operando = [] @tipo_matriz = "" @modo_resultado = "" case operacion when "suma" @operacion = "suma" when "resta" @operacion = "resta" when "multiplicacion" @operacion = "multiplicacion" end if block_given? if block.arity == 1 yield self else instance_eval &block end end case @modo_resultado when "consola" puts self when "fichero" File.open('resultado.txt','a+') do |x| x.puts self end puts self end end def operando(matriz) raise ArgumentError , 'No se ha introducido una matriz' unless matriz.is_a? Array case @tipo when "densa" @operando << Matriz_densa.new(matriz) when "dispersa" @operando << Matriz_dispersa.new(matriz) end end def option(cadena) raise ArgumentError , 'Opcion no valida' unless cadena.is_a? String opcion = cadena.downcase case opcion when "consola","fichero" @modo = opcion when "dispersa","densa" @tipo = opcion end end def ejecucion mostrar = [] case @operacion when "suma" mostrar = (@operando[0] + @operando[1]).matriz when "resta" mostrar = (@operando[0] - @operando[1]).matriz when "multiplicacion" mostrar = (@operando[0] * @operando[1]).matriz end mostrar end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
prct09-1.1.0 | lib/Dsl.rb |