HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: //usr/local/rvm/src/ruby-2.5.9/spec/ruby/command_line/dash_n_spec.rb
describe "The -n command line option" do
  before :each do
    @names  = fixture __FILE__, "names.txt"
  end

  it "runs the code in loop conditional on Kernel.gets()" do
    ruby_exe("puts $_", options: "-n", escape: true,
                        args: " < #{@names}").should ==
      "alice\nbob\njames\n"
  end

  it "only evaluates BEGIN blocks once" do
    ruby_exe("BEGIN { puts \"hi\" }; puts $_", options: "-n", escape: true,
                                               args: " < #{@names}").should ==
      "hi\nalice\nbob\njames\n"
  end

  it "only evaluates END blocks once" do
    ruby_exe("puts $_; END {puts \"bye\"}", options: "-n", escape: true,
                                            args: " < #{@names}").should ==
      "alice\nbob\njames\nbye\n"
  end

  it "allows summing over a whole file" do
    script = <<-script
    BEGIN { $total = 0 }
    $total += 1
    END { puts $total }
    script
    ruby_exe(script, options: "-n", escape: true,
                     args: " < #{@names}").should ==
      "3\n"
  end
end