summaryrefslogtreecommitdiff
path: root/spec/ruby/core/string/start_with_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/string/start_with_spec.rb')
-rw-r--r--spec/ruby/core/string/start_with_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/ruby/core/string/start_with_spec.rb b/spec/ruby/core/string/start_with_spec.rb
index 1b27fdaed7..cba40d70f1 100644
--- a/spec/ruby/core/string/start_with_spec.rb
+++ b/spec/ruby/core/string/start_with_spec.rb
@@ -42,4 +42,35 @@ describe "String#start_with?" do
it "works for multibyte strings" do
"céréale".start_with?("cér").should be_true
end
+
+ ruby_version_is "2.5" do
+ it "supports regexps" do
+ regexp = /[h1]/
+ "hello".start_with?(regexp).should be_true
+ "1337".start_with?(regexp).should be_true
+ "foxes are 1337".start_with?(regexp).should be_false
+ "chunky\n12bacon".start_with?(/12/).should be_false
+ end
+
+ it "supports regexps with ^ and $ modifiers" do
+ regexp1 = /^\d{2}/
+ regexp2 = /\d{2}$/
+ "12test".start_with?(regexp1).should be_true
+ "test12".start_with?(regexp1).should be_false
+ "12test".start_with?(regexp2).should be_false
+ "test12".start_with?(regexp2).should be_false
+ end
+
+ it "sets Regexp.last_match if it returns true" do
+ regexp = /test-(\d+)/
+ "test-1337".start_with?(regexp).should be_true
+ Regexp.last_match.should_not be_nil
+ Regexp.last_match[1].should == "1337"
+ $1.should == "1337"
+
+ "test-asdf".start_with?(regexp).should be_false
+ Regexp.last_match.should be_nil
+ $1.should be_nil
+ end
+ end
end