Skip to content

Instantly share code, notes, and snippets.

@citrus
citrus / git_time_calcultor.rb
Created December 18, 2011 02:31
Gets time spent on a project with git log.
#! /usr/bin/env ruby
# encoding: UTF-8
require 'date'
since = ARGV.shift || Date.today
logs = `git log --since="#{since}" --pretty=format:"%H,%ae,%ai"`
all_commits = logs.split("\n").map{|i| i.split(",") }
@citrus
citrus / sequel.rb
Created January 12, 2012 18:23
Sequel pagination with Kaminari
# config/initializers/sequel.rb
module Kaminari
module Sequel
def self.included(base)
base.class_eval do
alias :num_pages :page_count
alias :limit_value :page_size
@citrus
citrus / cartesian_array.rb
Created February 27, 2012 18:31
A CartesianArray class in ruby
require "minitest/autorun"
# Each member of a Cartesian Array corresponds to the selection of one element each in every one of those sets.
# http://en.wikipedia.org/wiki/Cartesian_product
class CartesianArray < Array
# CartesianArray.new([0,1], [a,b], etc)
def initialize(*args)
super args
@citrus
citrus / gist:4759619
Created February 12, 2013 02:18
Time Hacks
module TimeHacks
class << Time
def now
Time.new + offset
end
def offset
@offset ||= 0
@citrus
citrus / ui_color.rb
Created August 7, 2013 17:19
A utility to convert a hex color to a UIColor in RubyMotion
#!/usr/bin/env ruby
require "bigdecimal"
def to_percent(c)
(c / BigDecimal.new("255.0")).round(3).to_f
end
color = ARGV.shift.to_s.strip.sub("#", "")
@citrus
citrus / blog.rb
Created June 17, 2014 04:51
Ruby wordpress API connector - For use with WP-API
require 'uri'
require 'net/http'
class Blog
class Connection
def request(url, &block)
req = Net::HTTP::Get.new(url)
req.basic_auth(ENV['blog_user'], ENV['blog_password']) if ENV['blog_user']
@citrus
citrus / twilio_helper.rb
Created September 9, 2014 22:13
RSpec helper for testing Twilio sms deliveries
module TwilioHelper
module TwilioMocker
def deliveries
@deliveries ||= []
end
def create(options)
deliveries << options
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define('progressbar', [], function() {
return factory();
});
} else {
// Browser globals
root.ProgressBar = factory();
}
@citrus
citrus / circle.yml
Created March 8, 2016 03:22
circle.yml for building ember app with Circle CI
machine:
node:
version: 0.12.0
dependencies:
pre:
- export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
- npm config set spin false
- npm install -g npm@^2
- npm install -g bower
SELECT *,
TO_TSVECTOR(holder_names) ||
TO_TSVECTOR(first_name) ||
TO_TSVECTOR(last_name) ||
TO_TSVECTOR(email) ||
TO_TSVECTOR(COALESCE(order_token, '')) AS attendee
FROM (
SELECT
users.id,
users.first_name,