How to alias only one time, in an eval string.

Discussion in 'Ruby' started by trebor777, Dec 1, 2007.

  1. trebor777

    trebor777 Guest

    I'm using a software which use compressed ruby scripts... For that, the
    software load the uncompressed data and eval it.
    In this software, you have the ability to reset the execution, and basically
    it eval again all the uncompressed data.

    The thing is... when you alias some methods from specific classes defined by
    the software and not by the compressed scripts, it cause a stack error, as
    aliased method are then on the second time refering to themselves:

    alias b a
    def a
    do somethin
    b
    end

    1st time ok,
    but at the second time , a use b which refer to a which use b, etc.. etc..
    I'm trying to check if the aliased method exist or not, but doesn't work for
    a stange reason...

    The main problem is I don't have any access to those Specific classes, or do
    stuff before the eval.
    I've tried to modify the alias method, but off course, it creates the same
    problem but with this method.

    any solution?
     
    trebor777, Dec 1, 2007
    #1
    1. Advertisements

  2. trebor777

    ara.t.howard Guest

    wrapped =
    begin
    method 'b'
    true
    rescue NameError
    false
    end

    eval code unless wrapped


    a @ http://codeforpeople.com/
     
    ara.t.howard, Dec 1, 2007
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.