summaryrefslogtreecommitdiff
path: root/spec/rubyspec/command_line/dash_s_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/command_line/dash_s_spec.rb')
-rw-r--r--spec/rubyspec/command_line/dash_s_spec.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/rubyspec/command_line/dash_s_spec.rb b/spec/rubyspec/command_line/dash_s_spec.rb
new file mode 100644
index 0000000000..70e41208e0
--- /dev/null
+++ b/spec/rubyspec/command_line/dash_s_spec.rb
@@ -0,0 +1,52 @@
+require File.expand_path('../../spec_helper', __FILE__)
+
+describe "The -s command line option" do
+ describe "when using -- to stop parsing" do
+ it "sets the value to true without an explicit value" do
+ ruby_exe(nil, options: "-s -e 'p $n'",
+ args: "-- -n").chomp.should == "true"
+ end
+
+ it "parses single letter args into globals" do
+ ruby_exe(nil, options: "-s -e 'puts $n'",
+ args: "-- -n=blah").chomp.should == "blah"
+ end
+
+ it "parses long args into globals" do
+ ruby_exe(nil, options: "-s -e 'puts $_name'",
+ args: "-- --name=blah").chomp.should == "blah"
+ end
+
+ it "converts extra dashes into underscores" do
+ ruby_exe(nil, options: "-s -e 'puts $___name__test__'",
+ args: "-- ----name--test--=blah").chomp.should == "blah"
+ end
+ end
+
+ describe "when running a script" do
+ before :all do
+ @script = fixture __FILE__, "dash_s_script.rb"
+ end
+
+ it "sets the value to true without an explicit value" do
+ ruby_exe(@script, options: "-s",
+ args: "-n 0").chomp.should == "true"
+ end
+
+ it "parses single letter args into globals" do
+ ruby_exe(@script, options: "-s",
+ args: "-n=blah 1").chomp.should == "blah"
+ end
+
+ it "parses long args into globals" do
+ ruby_exe(@script, options: "-s",
+ args: "--name=blah 2").chomp.should == "blah"
+ end
+
+ it "converts extra dashes into underscores" do
+ ruby_exe(@script, options: "-s",
+ args: "----name--test--=blah 3").chomp.should == "blah"
+ end
+
+ end
+end