Analyze ruby conditional expression


#1

Hi,

I want to examine conditional expressions and I’m looking for tools to
do it.
It would be perfect to do it purely in ruby or even in jruby.

Any recommendations are apprecitated.

Gábor


#2

On Sun, Feb 8, 2009 at 11:03 AM, Gábor Sebestyén removed_email_address@domain.invalid wrote:

Hi,

I want to examine conditional expressions and I’m looking for tools to do it.
It would be perfect to do it purely in ruby or even in jruby.

Any recommendations are apprecitated.

Gábor

I am not sure what a conditional expression is, care to give some
examples?
Robert


#3

On 08.02.2009 11:03, Gábor Sebestyén wrote:

I want to examine conditional expressions and I’m looking for tools to do it.

What exactly does “examine” mean in this context? If you want to
execute them and see results or execute parts of them, why is IRB not
sufficient?

Cheers

robert


#4

2009/2/8 Gábor Sebestyén removed_email_address@domain.invalid:

if B
do_something2
end

If A and B equals their conditional branches could be joined.

I’m investigating how it would be easy evaluate A and B whether they
are both true or false.
I need this in my refactoring experiment.

You are aware that expressions A and B can have side effects which
makes it practically impossible to decide on the equivalence? Keep in
mind that Ruby is not a pure functional language.

Cheers

robert


#5

On Mon, Feb 9, 2009 at 4:22 AM, Gábor Sebestyén removed_email_address@domain.invalid
wrote:

if B

if A && B then
“bingo”
elsif(A) then
“bango”
elsif(B)
“bongo”
else
nil
end

This is just a guess, but you could also use a nested if or a case.
case(a)
when !a | b then “a=t, b=t”
when !(a & b) then “a=t, b=f”
when !(a | b) then “a=f, b=t”
when !a & b then “a=f, b=f”
end

But that would be wierd.

case(


#6

For instance, I want to decide whether the conditional expressions of
two subsequent IFs are the same (or equivalent). I know it’s not easy
in most cases.

Let’s see a primitive example:

if A then
do_something1
end

if B
do_something2
end

If A and B equals their conditional branches could be joined.

I’m investigating how it would be easy evaluate A and B whether they
are both true or false.
I need this in my refactoring experiment.

Gábor