Skip to content

Commit

Permalink
Adds spec for #17260 and #17231
Browse files Browse the repository at this point in the history
Adds specs for one-line pattern matching syntax in Ruby 3.0+, including
both Righthand Assignment (`=>`) and one-line match (`in`).
  • Loading branch information
baweaver authored and andrykonchin committed Jun 26, 2024
1 parent 9c57d41 commit 90ef78c
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion language/pattern_matching_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
ScratchPad.record []
end

describe "can be standalone assoc operator that" do
describe "Rightward assignment (`=>`) that can be standalone assoc operator that" do
it "deconstructs value" do
suppress_warning do
[0, 1] => [a, b]
Expand All @@ -22,6 +22,23 @@
[a, defined?(b)].should == [0, nil]
end
end

it "can work with keywords" do
{ a: 0, b: 1 } => { a:, b: }
[a, b].should == [0, 1]
end
end

describe "One-line pattern matching" do
it "can be used to check if a pattern matches for Array-like entities" do
([0, 1] in [a, b]).should == true
([0, 1] in [a, b, c]).should == false
end

it "can be used to check if a pattern matches for Hash-like entities" do
({ a: 0, b: 1 } in { a:, b: }).should == true
({ a: 0, b: 1 } in { a:, b:, c: }).should == false
end
end

describe "find pattern" do
Expand Down

0 comments on commit 90ef78c

Please sign in to comment.