67 lines
860 B
Ruby
Raw Normal View History

module EnumerableExtensions
refine Array do
def second
self[1]
end
def middle
self[size / 2]
end
end
end
using EnumerableExtensions
class Singleton
private_class_method :new
@instance = nil
def self.instance
@instance ||= new
end
end
module_function
def log(level, message)
warn "[#{level.upcase}] #{message}"
end
require "ostruct"
require "set"
require "delegate"
Point = Struct.new(:x, :y, keyword_init: true)
p = Point.new(x: 10, y: 20)
class Stack
include Enumerable
def initialize
@items = []
end
def push(item)
@items.push(item)
end
def pop
@items.pop
end
def each(&block)
@items.each(&block)
end
end
s = Stack.new
s.push(1)
s.push(2)
s.each { |i| puts i }
$global_count = 0
DEFAULT_TIMEOUT = 30
puts "Global: #{$global_count}, Timeout: #{DEFAULT_TIMEOUT}"