Skip to content

Instantly share code, notes, and snippets.

View skanev's full-sized avatar

Stefan Kanev skanev

View GitHub Profile
val waiter = actor {
var result = 0.0
def waitForResult = react { case Result(num) => result = num }
def replyToEval = react { case 'Eval => reply(result) }
{ waitForResult } andThen { replyToEval }
}
val waiter = actor {
var result = 0.0
def once(body: => Unit) = body
def waitForResult = react { case Result(num) => result = num }
def replyToEval = react { case 'Eval => reply(result) }
once { waitForResult } andThen { replyToEval }
}
package expr
import scala.actors.Actor
import scala.actors.Actor.{actor, react, reply, loopWhile, mkBody}
import BinOp._
case class PartialResult(index: Int, num: Double)
class ActorEvaluation(env: Env) {
@skanev
skanev / close_hidden_buffers.vim
Created July 6, 2011 20:15
Close all hidden buffers in Vim
command! CloseHiddenBuffers call s:CloseHiddenBuffers()
function! s:CloseHiddenBuffers()
let open_buffers = []
for i in range(tabpagenr('$'))
call extend(open_buffers, tabpagebuflist(i + 1))
endfor
for num in range(1, bufnr("$") + 1)
if buflisted(num) && index(open_buffers, num) == -1
@skanev
skanev / wait_for_ajax_to_complete.rb
Created July 18, 2011 13:08
wait_for_ajax_to_complete cuke helper
module WaitForAjaxToComplete
def wait_for_ajax_to_complete
wait_until { page.evaluate_script('$.active') == 0 }
end
end
World(WaitForAjaxToComplete)
@skanev
skanev / Questions
Created August 9, 2011 05:05
Frozen Rails Give-away
Day job: Software Developer @ Garmz
Your Rails contributions (if any): None yet
What's your Ruby/Rails experience?: Working with it since late 2006
How do you use GitHub?: Work, private projects, university stuff
@skanev
skanev / README.markdown
Created August 11, 2011 13:35
Convert a <select> with <optgroups> to two <select>s that are interconnected

If you have a select with option groups:

<select data-nested-select="Select country">
  <option>Select city</option>
  <optgroup label="Bulgaria">
    <option value="sofia">Sofia</option>
    <option value="plovdiv">Plovdiv</option>
  </optgroup>
  <optgroup label="Sweden">

Stockholm

@skanev
skanev / routes.rb
Created September 15, 2011 17:03
Replacing Sprocketizer with Sprockets 2.0
Something::Application.routes.draw do
# ...
mount SprocketizerReplacement.app => 'sprockets'
end
@skanev
skanev / nexus_spec_runner.rb
Created October 23, 2011 17:21
A custom RSpec runner for vim-nexus
require 'rspec/core/formatters/base_formatter'
require 'tempfile'
class NexusFormatter < RSpec::Core::Formatters::BaseFormatter
def initialize(output)
super
@file = Tempfile.new('nexus-output')
end
def stop
@skanev
skanev / debug.rb
Created November 3, 2011 14:17
Debugging the performance of a Rails controller action
require 'rails/console/app'
ActiveSupport::Notifications.subscribe /^sql\./ do |*args|
puts caller.grep(%r[/garmz/]) { |line| " #{line.gsub(/.*?\/garmz\//, '')}" }.take(3) * "\n"
end
ActiveRecord::Base.logger = Logger.new(STDOUT)
app.get '/newsfeed'
ActiveRecord::Base.logger = Logger.new(nil)