Sha256: 561e7173807a809c7edc65139ae1c055959b6916fbb33a378991741a06d5cc88

Contents?: true

Size: 1.39 KB

Versions: 83

Compression:

Stored size: 1.39 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../spec_helper'

describe "The || statement" do
  it "evaluates to true if any of its operands are true" do
    if false || true || nil
      x = true
    end
    x.should == true
  end
  
  it "evaluated to false if all of its operands are false" do
    if false || nil
      x = true
    end
    x.should == nil
  end
  
  it "is evaluated before assignment operators" do
    x = nil || true
    x.should == true
  end
  
  it "has a lower precedence than the && operator" do
    x = 1 || false && x = 2
    x.should == 1
  end

  it "treats empty expressions as nil" do
    (() || true).should be_true
    (() || false).should be_false
    (true || ()).should be_true
    (false || ()).should be_nil
    (() || ()).should be_nil
  end
end

describe "The or statement" do
  it "evaluates to true if any of its operands are true" do
    x = nil
    if false or true
      x = true
    end
    x.should == true
  end
  
  it "is evaluated after variables are assigned" do
    x = nil or true
    x.should == nil
  end

  it "has a lower precedence than the || operator" do
    x,y = nil
    x = true || false or y = 1
    y.should == nil
  end

  it "treats empty expressions as nil" do
    (() or true).should be_true
    (() or false).should be_false
    (true or ()).should be_true
    (false or ()).should be_nil
    (() or ()).should be_nil
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/language/or_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/language/or_spec.rb