Skip to content

Instantly share code, notes, and snippets.

View robertsosinski's full-sized avatar

Robert Sosinski robertsosinski

View GitHub Profile
@robertsosinski
robertsosinski / application.js
Created April 6, 2009 02:50
Handle cookies betwen JavaScript and Rails with JSON/Hash objects
window.cookies = {
set: function(name, value, days) {
if (name) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else {
var expires = "";
@robertsosinski
robertsosinski / application.rb
Created April 6, 2009 14:53
A simple way to manage multiple parameters in Rails routing
before_filter :hash_options
def hash_options
params[:options] = Hash[*((params[:options].size % 2) == 0) ? params[:options] : (params[:options] + [nil])] if params[:options]
end
@robertsosinski
robertsosinski / Event.simulate.js
Created April 11, 2009 21:32
Fire native events: Taken from kangax/protolicious
(function(){
var eventMatchers = {
'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
'MouseEvents': /^(?:click|mouse(?:down|up|over|move|out))$/
}
var defaultOptions = {
pointerX: 0,
pointerY: 0,
button: 0,
ctrlKey: false,
@robertsosinski
robertsosinski / tmp.rake
Created April 19, 2009 03:38
Deletes js and css cache files: Taken from maintainable software
namespace :tmp do
namespace :assets do
desc "Clears javascripts/cache and stylesheets/cache"
task :clear => :environment do
FileUtils.rm(Dir['public/javascripts/cache/[^.]*'])
FileUtils.rm(Dir['public/stylesheets/cache/[^.]*'])
end
end
end
@robertsosinski
robertsosinski / gist:98576
Created April 20, 2009 15:14
Understanding how to bind scope in JavaScript
window.scope = "window";
Function.prototype.bind = function(scope) {
var _function = this;
return function() {
return _function.apply(scope, arguments);
}
}
@robertsosinski
robertsosinski / scope.js
Created April 27, 2009 16:29
Understanding how to bind scope in JavaScript with constructors
Function.prototype.bind = function(scope) {
_function = this;
return function() {
_function.apply(scope, arguments);
}
}
window.scope = "window";
@robertsosinski
robertsosinski / gist:123078
Created June 3, 2009 16:32
Converts a query string to a Prototype.js Hash
Hash.fromQueryString = function(string) {
var hash = new Hash();
var array = string.gsub(/^#/, '').split(/=|&/);
for (var i = 0; i < array.length; i+=2) {
if(array[i +1] != undefined) {
hash.set(array[i], array[i + 1]);
}
}
@robertsosinski
robertsosinski / gist:192975
Created September 24, 2009 19:39
RegEx scrubber to make permalinks from strings
name.downcase.gsub(/'/, "").gsub(/[^[:alnum:]]/, "_").gsub(/_{2,}/, "_").gsub(/^_|_$/, "")
# scrub out: ^contractions ^non-alpha-num characters ^extra underscores ^other underscores
@robertsosinski
robertsosinski / gist:258489
Created December 17, 2009 02:54
Custom jQuery Filter with Parameters
<!DOCTYPE html>
<html>
<head>
<title>Custom jQuery Filter with Parameters</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
(function($) {
$.expr[':'].hasTitle = function(elem, index, list) {
var params = eval("([" + list[2] + list[3] + list[2] + "])");
for (var i = 0; i < params.length; i++) {
@robertsosinski
robertsosinski / gist:259072
Created December 17, 2009 22:12
Custom jQuery RegEx Filter
<!DOCTYPE html>
<html>
<head>
<title>RegEx jQuery Filter</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
(function($){
$.expr[':'].regex = function(elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,