Skip to content

Instantly share code, notes, and snippets.

@prepor
prepor / fibered_chain.rb
Created May 19, 2011 20:31
Fibers chains
class FiberedChain
def initialize(&blk)
@chain = EMChain.new
f = Fiber.current
@chain.on_complete do
@completed = true
f.resume if @yielded
end
blk.call self if blk
end
@prepor
prepor / beeps.rb
Created September 20, 2011 11:40
Simple signals dispatcher
# encoding: utf-8
module BeepsScope
class Beep
class UndefinedSignal < StandardError; end
attr_accessor :name, :connections
def initialize(scope, name)
@name = name
@connections = {}
@scope = scope
@prepor
prepor / gist:1758845
Created February 7, 2012 09:52
let for minitest
require 'minitest/spec'
require 'minitest/autorun'
module Helpers
module Let
def let(name, &blk)
define_method name do
@let_assigments ||= {}
@let_assigments[name] ||= send(:"original_#{name}")
# A sample Gemfile
source "http://rubygems.org"
gem "em-synchrony", git: "https://github.com/igrigorik/em-synchrony.git"
gem "mysql2", ["= 0.3.11"]
gem "activerecord"
@prepor
prepor / gist:5326359
Last active December 15, 2015 21:29
Clojure pattern matching and tests. See https://github.com/clojure/core.match/wiki/Overview
(deftest match-t
(let [v {:foo 1 :bar 100}]
(is (match? v {:foo 1 :bar (_ :guard integer?)}))))
(import
'[java.util Date])
(defn timestamp
[]
(-> (Date.)
@prepor
prepor / gist:e1e00373866b7b54d273
Last active August 29, 2015 14:03
Alfred workflow for refheap.com
import subprocess, urllib, json, sys
from subprocess import Popen, PIPE, STDOUT
def pbcopy(txt):
p = Popen(['pbcopy'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
p.communicate(txt)[0]
my_env = {}
my_env['LANG'] = 'en_US.UTF-8'
username = "*****"
type state = Init | Started | Stopped
type init_event = InitStart | InitStop
type started_event = StartedStop
type stopped_event = StoppedStart
let init_event () =
enum State {
Init, Started, Stopped
}
enum InitEvent {
Start, Stop
}
enum StartedEvent {
Stop
(ns navimize.style
(:require [garden.core :as garden]
[garden.arithmetic :refer [+ - * /]]
[garden.units :as u :refer [px pt]]
[garden.selectors :as s]
[garden.stylesheet :refer [at-media]])
(:refer-clojure :exclude [+ - * /]))
(def leftest-width (px 50))
(ns navimize.style
(:require [garden.core :as garden]
[garden.arithmetic :refer [+ - * /]]
[garden.units :as u :refer [px pt]]
[garden.selectors :as s]
[garden.color :as color]
[garden.stylesheet :refer [at-media]])
(:refer-clojure :exclude [+ - * /]))
(def leftest-width (px 50))