Skip to content

Instantly share code, notes, and snippets.

View alg's full-sized avatar

Aleksey Gureiev alg

View GitHub Profile
@alg
alg / multi-dispatch.rb
Created September 30, 2013 05:07
Ruby Multi-dispatch
module Kernel
MDEF_DEFINED = {}
def mdef(name, *types, &block)
sig = gen_sig(name, types)
MDEF_DEFINED[name] = (MDEF_DEFINED[name] || []) + [ sig ]
Kernel.send(:define_method, sig, &block)
end
def gen_sig(name, types)
var w = Ti.UI.createWindow({ backgroundColor: 'red' });
var sv = Ti.UI.createScrollView({
width: '100%',
height: '100%' });
w.add(sv);
var wr = Ti.UI.createView({
top: 10,
left: 10,
@alg
alg / app.js
Last active December 11, 2015 13:48
VideoRendering.render({
video: [
fixtureFile("1.m4v"), // passing as TiFile
fixtureFile("2.m4v").getNativePath() // passing as URL (native path is presented as file://...)
],
titles: [
{ text: "AUG 6, 1945",
font: "HelveticaNeue-CondensedBlack",
fontSize: 32,
@alg
alg / db.rb
Created January 18, 2010 09:51
namespace :db do
desc 'Seed database from db/seed.sql file instead of the traditional db/seed.rb'
namespace :seed do
config = Rails::Configuration.new.database_configuration[RAILS_ENV]
seed_sql = File.expand_path(File.dirname(__FILE__) + '/../../db/seed.sql')
if !File.exists?(seed_sql)
puts "Missing RAILS_ROOT/db/seed.sql"
# Fills the standard Rails 3-field date picker with the date.
# #name# is supposed to lead to one of these fields, either through a label or a CSS selector.
# Usage:
# fill_in_date "Date of birth", with: 30.years.ago
def fill_in_date(name, options)
date = options[:with]
within find_field(name).parent do
find('select[name*="2i"]').select(date.strftime('%B'))
find('select[name*="3i"]').select(date.day.to_s)
find('select[name*="1i"]').select(date.year.to_s)
# encoding: utf-8
def gas(name = "", acct = "")
url = "http://sevgaz.com.ua/index.php?option=com_content&view=article&id=52"
data = `curl -F "afam=#{name}" -F "peracc=#{acct}" "#{url}" 2>/dev/null`
data.scan(%r{Адрес.*?<tr><td>(.*?)</td>\s*<td>\s*<strong>(.*?)</strong>}).flatten
end
def water(name = "", acct = "")
describe SomeController do
context "if user is not logged in" do
[ :show, :edit, :update ].each do |action|
specify do
get action
should redirect_to login_path
end
end
end
end
@alg
alg / gist:2964374
Created June 21, 2012 07:20
Exposing an interface between windows in Titanium
//error when the a table row is clicked in nearme_window.js
[WARN] Exception in event callback. {
line = 59;
message = "'undefined' is not a function (evaluating 'pub_win.update_pub_details('blah')')";
name = TypeError;
sourceId = 233027648;
}
//nearme_window.js
module.exports = (function() {
@alg
alg / t1.erl
Created December 29, 2011 13:22
Primes from 1 to N
-module(t1).
-export([primes/1]).
primes(N) -> primeA(1, N, []).
primeA(X, N, L) ->
if
X =:= 1 -> primeA(2, N, [1|L]);
X > N -> lists:reverse(L);
true ->
NL = case length([I || I <- L, X rem I =:= 0]) of
@alg
alg / session
Created August 25, 2011 09:01
MongoDB id/array queries
> db.m.insert({ body: '1', phone_id: 1 })
> db.m.insert({ body: '2', phone_id: [ 1, 2 ]})
> db.m.find({ phone_id: 1 })
{ "_id" : ObjectId("4e56089fbdfcdc0f68c894ae"), "body" : "1", "phone_id" : 1 }
{ "_id" : ObjectId("4e5608afbdfcdc0f68c894af"), "body" : "2", "phone_id" : [ 1, 2 ] }
> db.m.find({ phone_id: 2 })
{ "_id" : ObjectId("4e5608afbdfcdc0f68c894af"), "body" : "2", "phone_id" : [ 1, 2 ] }