summaryrefslogtreecommitdiff
path: root/spec/ruby/language/END_spec.rb
blob: 762a8db0c0192ef4654ee23ad5d9d618dfdbc015 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
require_relative '../spec_helper'

describe "The END keyword" do
  it "runs only once for multiple calls" do
    ruby_exe("10.times { END { puts 'foo' }; } ").should == "foo\n"
  end

  it "runs last in a given code unit" do
    ruby_exe("END { puts 'bar' }; puts'foo'; ").should == "foo\nbar\n"
  end

  it "runs multiple ends in LIFO order" do
    ruby_exe("END { puts 'foo' }; END { puts 'bar' }").should == "bar\nfoo\n"
  end
end