ruler28.rb