Skip to content

Instantly share code, notes, and snippets.

View alvinsj's full-sized avatar

Alvin alvinsj

  • Singapore
View GitHub Profile
@alvinsj
alvinsj / active-record-get-attribute
Created May 11, 2011 09:16
Get ActiveRecord::Base attribute/property with String
module ActiveRecord
class Base
def set_attr(key,value)
write_attribute(key, value)
end
def get_attr(key)
read_attribute(key)
end
end
@alvinsj
alvinsj / getURLParams.js
Created May 13, 2011 07:24
Get url parameters with javascript
// get url parameters with javascript (e.g.: sample.html?udid=123&device=iphone)
function getURLParams() {
var params= new Object();
var query = window.location.search.substring(1);
var pairs = query.split('&');
for (var i=0; i<pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos > 0) {
var key = pairs[i].substring(0,pos);
var val = pairs[i].substring(pos+1);
@alvinsj
alvinsj / Rakefile
Created October 3, 2011 16:28
Create migration files from existing ActiveRecord models
# ActiveRecord migration by @bridgeutopia (http://www.blog.bridgeutopiaweb.com/post/activerecord-migrations-for-sinatra/)
# Added "rake reverse_migrate" to do reverse migration
require 'rake'
require 'active_record'
require 'logger'
require 'yaml'
desc "Import DB"
task :import => :environment do
@alvinsj
alvinsj / sort_by_words.coffee
Created March 9, 2012 08:34
[jquery] sort list items by words (e.g.data-name)
$.sort_by_words = (ulClass, name) ->
$("ul.#{ulClass} li").sort (a, b) ->
if $(a).data("#{name}").toLowerCase() > $(b).data("#{name}").toLowerCase() then 1 else -1
.appendTo("ul.#{ulClass}")
@alvinsj
alvinsj / sort_by_numbers.cofee
Created March 9, 2012 08:34
[jquery] sort list items by numbers (e.g.data-age)
$.sort_by_numbers = (ulClass, number) ->
$("ul.#{ulClass} li").sort (a, b) ->
if parseInt($(a).data("#{number}")) > parseInt($(b).data("#{number}")) then 1 else -1
@alvinsj
alvinsj / sort_then_group_by_character.coffee
Created March 9, 2012 09:33
[jquery] sort then group by character
$.sort_then_group_by_character = (sortable, ul_class)->
$.sort_by_words(ul_class, sortable)
$('ul.group').empty()
count = 0
character = ''
$("ul.#{ul_class} li").each (index, li_el) ->
@alvinsj
alvinsj / group_by_word.coffee
Created March 9, 2012 10:05
[jquery] group by word
$.group_by_word = (ul_class, sortable, sub_string_count=0)->
$('ul.group').empty()
count = 0
word = ''
$("ul.#{ul_class} li").each (index, li_el) ->
# get attributes
@alvinsj
alvinsj / group_sequence.rb
Created March 14, 2012 12:34
Group continuos sequences in an array
def group_sequence(seq)
return [] if seq.size == 0
g = Array.new
sub = Array.new
sub << seq[0]
if seq.size > 2
(seq[1..-1]).each do |s|
if s -sub[-1] == 1
sub << s
@alvinsj
alvinsj / days_week_masking.rb
Created March 14, 2012 12:38
Mask days of week into binary, save to integer field
DAYS = %w[0 1 2 3 4 5 6 7]
DAYS_HUMAN = %w[Sun Mon Tue Wed Thur Fri Sat]
def days=(days)
self.days_mask = (days & DAYS).map { |r| 2**DAYS.index(r) }.sum
end
def days
DAYS.reject do |r|
((days_mask || 0) & 2**DAYS.index(r)).zero?
@alvinsj
alvinsj / google_calendar_colors.rb
Created March 14, 2012 15:03
Google calendar colors
COLORS = %w[#AC725E #D0CF64 #F83A22 #FA573C #FF7537 #FFAD46 #42D692 #16A765 #7BD148 #B3DC6C #FBE983 #FAD165 #92E1C0 #9FE1E7 #9FC6E7 #4986E7 #9A9CFF #B99AFF #C2C2C2 #CABDBF #CCA6AC #F691B2 #CD74E6 #A47AE2]