Ruby - Consulta ruby pequeño DSL

 
Vista:
sin imagen de perfil

Consulta ruby pequeño DSL

Publicado por Felipe (1 intervención) el 05/09/2016 01:56:48
Hola que tal, estoy trabado en algo, quiero poder hacer esto:

{7/0}.deberia explotar_con Excepcion

Tengo hecho esto:

en un initialzie

1
2
3
4
5
6
7
Object.send(:define_method,:deberia) do
      |args| if(args.is_a? Array)
               puts self.instance_exec(args[1], &args[0])
               else
               puts self == args
             end
    end

Hago que todos los objectos entiendan el mensaje deberia. Ahora nose si este mensaje lo entenderian los bloques asi sueltos, heredan de Object estos?

Despues tengo:

1
2
3
4
5
6
7
8
def explotar_con excepcion
    return [Proc.new do begin
      Proc.new do self end.call
      false
    rescue excepcion
      true
    end  end]
  end

y al ejecutar esto en el contexto correspondiente: {7 / 0}.deberia explotar_con ZeroDivisionError

me da este error debido al bloque:

syntax error, unexpected '}', expecting => (SyntaxError)


Lo cual no entiendo porque no me deja escribir eso asi, en lo posible no me gustaria hacer esto con el missing_method ya que lo uso para otras cosas, y l veo poco probable por mas que quiera ya que tendria que cambiar muchas cosas creo.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder