Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@toretore
toretore / now.rb
Last active January 9, 2016 17:00 — forked from VelizarHristov/before.rb
PIPELINE = %w[booked collected ironed delivered]
def state
PIPELINE[@pipeline_position]
end
def advance
@pipeline_position += 1
end
require 'socket'
server1 = TCPServer.new('0.0.0.0', 1337)
server2 = TCPServer.new('0.0.0.0', 1338)
servers = [server1, server2]
clients = []
loop do
readables, * = IO.select(servers+clients)
@toretore
toretore / s.rb
Last active January 3, 2016 19:38
require 'socket'
class Page
attr_reader :body, :method, :path
def initialize(m, p, b)
@body, @method, @path = b, m, p
end
end
class Server
@toretore
toretore / flatten.rb
Last active October 14, 2015 17:12 — forked from graingert/flatten.rb
module Fluent
class TextParser
class StringifiedValuesJSONParser < JSONParser
Plugin.register_parser("stringified_values_json", self)
def parse(text)
time, record = super(text)
# replace all Hash (like a dict) values with stringified JSON
record = record.inject({}) { | new_hash, (key, value) |
class Waiter
def initialize
@m, @cv = Mutex.new, ConditionVariable.new
@signalled = false
end
def wait
@m.synchronize{ @cv.wait(@m) until @signalled; @signalled = false }
end
def signal
@m.synchronize{ @signalled = true; @cv.signal }
require 'open3'
Open3.popen3 'bash' do |stdin, stdout, stderr, wait|
t=Thread.new{ stdout.each{|l| print l } }
stdin.puts 'ls'
stdin.puts 'exit'
wait.join
t.join
end
class GetData
@@logger = Logger.new('log.log')
def initialize
@yesterday = Date.today.prev_day
@token = xxx
end
def save_actions
with_database do |db|
@toretore
toretore / act.rb
Last active August 29, 2015 14:18 — forked from mikecmpbll/act.rb
w_r, w_w = IO.pipe
t_r, t_w = IO.pipe
work = Thread.new { block.call; w_w.write('.') }
timeout = Thread.new{ sleep 10; t_w.write('.') }
io = IO.select [w_r, t_r]
if io == t_r
#Timeout
# /^(\d{2}\/\d{2}) (.*) (\-?\d+\.\d+)/
File.open ARGV[0], 'r' do |file|
file.each_line do |line|
if m = line.match(/^(\d{2}\/\d{2}) (.*) (\-?\d+\.\d+)/)
puts [m[1], m[2], m[3]].join(', ')
end
end
require 'thread'
queues = Array.new(10){ Queue.new }
list_of_hosts.each_slice(10).map{|s| s.each_with_index{|h,i| queues[i] << h } }
threads = 10.times.map do |i|
Thread.new do
while host = queues[i].pop
check host