how following expression evaluate in rails?

Hi,

i have a following code
abc= Abc.find(aa_ids, :order => 'created_at desc')
      abc.delete_if { |event|
        (event.group_id && !group_ids.include?(event.group_id) &&
!event.group.is_public?) || !Abc::SHOW_EVENTS.include?(event.event_type)
      }

I need to know that how this expression is evaluate what is the
precedence of operator and does short circuit expression evaluation
happen here

Sunny Bogawat wrote:

I need to know that how this expression is evaluate what is the
precedence of operator and does short circuit expression evaluation
happen here

http://phrogz.net/ProgrammingRuby/language.html#table_18.4

It's also good practice to use parenthesis to explicitly force the
precedence that you want rather than relying completely on a language's
operator precedence. It will be easier for you or anyone else looking at
the code later to know the intent of the code.