Sha256: 17cc69082f2fa79df717e8c0cbea4a3d6c83284adc8ff986f9224e196d6b23da

Contents?: true

Size: 1.13 KB

Versions: 39

Compression:

Stored size: 1.13 KB

Contents

require 'support/parser_helpers'

describe "Masgn" do
  describe "with a single lhs splat" do
    it "returns a s(:masgn)" do
      parsed('*a = 1, 2').first.should == :masgn
      parsed('* = 1, 2').first.should == :masgn
    end

    it "wraps splat inside a s(:array)" do
      parsed('*a = 1, 2')[1].should == [:array, [:splat, [:lasgn, :a]]]
      parsed('* = 1, 2')[1].should == [:array, [:splat]]
    end
  end

  describe "with more than 1 lhs item" do
    it "returns a s(:masgn) " do
      parsed('a, b = 1, 2').first.should == :masgn
    end

    it "collects all lhs args into an s(:array)" do
      parsed('a, b = 1, 2')[1].should == [:array, [:lasgn, :a], [:lasgn, :b]]
      parsed('@a, @b = 1, 2')[1].should == [:array, [:iasgn, :@a], [:iasgn, :@b]]
    end

    it "supports splat parts" do
      parsed('a, *b = 1, 2')[1].should == [:array, [:lasgn, :a], [:splat, [:lasgn, :b]]]
      parsed('@a, * = 1, 2')[1].should == [:array, [:iasgn, :@a], [:splat]]
    end
  end

  describe "with a single rhs argument" do
    it "should wrap rhs in an s(:to_ary)" do
      parsed('a, b = 1')[2].should == [:to_ary, [:int, 1]]
    end
  end
end

Version data entries

39 entries across 39 versions & 3 rubygems

Version Path
opal-0.10.6 spec/lib/parser/masgn_spec.rb
opal-0.10.6.beta spec/lib/parser/masgn_spec.rb
opal-0.10.5 spec/lib/parser/masgn_spec.rb
opal-0.10.4 spec/lib/parser/masgn_spec.rb
opal-0.10.3 spec/lib/parser/masgn_spec.rb
opal-0.10.2 spec/lib/parser/masgn_spec.rb
opal-0.10.1 spec/lib/parser/masgn_spec.rb
opal-0.10.0 spec/lib/parser/masgn_spec.rb
opal-0.10.0.rc2 spec/lib/parser/masgn_spec.rb
opal-0.9.4 spec/lib/parser/masgn_spec.rb
opal-0.9.3 spec/lib/parser/masgn_spec.rb
opal-0.10.0.rc1 spec/lib/parser/masgn_spec.rb
opal-0.10.0.beta5 spec/lib/parser/masgn_spec.rb
opal-0.10.0.beta4 spec/lib/parser/masgn_spec.rb
opal-0.10.0.beta3 spec/lib/parser/masgn_spec.rb
opal-0.10.0.beta2 spec/lib/parser/masgn_spec.rb
opal-0.10.0.beta1 spec/lib/parser/masgn_spec.rb
opal-0.9.2 spec/lib/parser/masgn_spec.rb
opal-0.9.0 spec/lib/parser/masgn_spec.rb
opal-0.9.0.rc1 spec/lib/parser/masgn_spec.rb