Skip to content

Instantly share code, notes, and snippets.

View hilios's full-sized avatar
🛠️
Breaking stuff

Edson Hilios hilios

🛠️
Breaking stuff
View GitHub Profile
@hilios
hilios / authorization_request.rb
Created October 19, 2012 20:38
CanCan authorization Responder
require 'cancan/ability'
# A cleaner implementation of CanCan #load_and_authorize_resource method.
# Everytime you use the #respond_with method, send the given resources to check
# the authorizations.
module AuthorizationResponder
def initialize(controller, resources, options={})
super
@authorize_with = options.delete(:authorize_with)
@skip_authorization = options.delete(:skip_authorization)
end
@hilios
hilios / Rakefile
Created August 2, 2012 18:26 — forked from jeffreyiacono/Rakefile
rake task for precompiling assets using sprockets within a sinatra app + view helpers
require 'rubygems'
require 'bundler'
Bundler.require
require './application'
namespace :assets do
desc 'compile assets'
task :compile => [:compile_js, :compile_css] do
end
@hilios
hilios / gist:2962111
Created June 20, 2012 20:46 — forked from travis/gist:1084767
testing facebook connect with capybara and rspec
require 'mogli'
module FacebookIntegrationHelpers
shared_context "with unconnected facebook user" do
let(:fb_user) { create_test_user(installed: false) }
after { fb_user.destroy }
end
def app_client
Mogli::AppClient.new(AppConfig.facebook.access_token, AppConfig.facebook.app_id)
@hilios
hilios / zone.sh
Created June 12, 2012 14:43
Connect to zone
#!/bin/bash
USER="username"
HOST=$1
BRIDGE=FALSE
while getopts "u:h:b": OPT; do
# echo "$OPT=$OPTARG"
case ${OPT} in
u) USER=${OPTARG};;
b) BRIDGE=TRUE;;
@hilios
hilios / .vimrc
Last active August 2, 2016 16:59
vimrc - Personalizado
set cursorline
set hlsearch
set number
set ruler
set shiftwidth=2
set tabstop=2
syntax on
@hilios
hilios / nested_form.js.coffee
Created May 9, 2012 21:28
Nested Form Helpers
$('[data-nested="add"]').live 'click', (e)->
e.preventDefault()
association = $(this).data('association')
fields = $(this).data('fields')
target = $("[data-association='#{association}_fields']")
regexp = new RegExp('new_' + association, 'g');
new_id = new Date().getTime();
fields = fields.replace(regexp, "new_" + new_id);
@hilios
hilios / navigation_helper.rb
Created November 10, 2011 16:37
Navigation helpers
module NavigationHelper
# Create a link with confirmation message and method set to delete.
#
# Returns a link_to helper with options +:confirm+ and +:method+ setted,
# you can override the default values setting the options hash.
def link_to_destroy(*args, &block)
arg_index = if block_given? then 1 else 2 end
args[arg_index] ||= {}
args[arg_index][:confirm] = t('actions.delete.are_you_sure', :default => 'Are you sure?') unless args[arg_index].has_key? :confirm
args[arg_index][:method] = :delete unless args[arg_index].has_key? :method
@hilios
hilios / action_dispatch_extensions.rb
Created October 28, 2011 13:26 — forked from tokland/action_dispatch_extensions.rb
How to add locale scope to i18n_routing
class ActionDispatch::Routing::Mapper
def localize_and_scope_for(locales, options = {}, &block)
scoped_locales = locales - Array(options[:skip_scope])
localized(locales) do
locale_regexp = Regexp.new(scoped_locales.join('|'))
scope("/:i18n_locale", :constraints => {:i18n_locale => locale_regexp}) do
yield
end
yield if options[:skip_scope]
@hilios
hilios / application.rb
Last active September 27, 2015 19:28
My default generators configuration
# Generators
config.generators do |generator|
generator.helper false
generator.stylesheets false
generator.javascripts false
generator.controllers true
generator.template_engine :haml
generator.integration_tool :rspec
generator.test_framework :rspec, controller_specs: false,
view_specs: false,
@hilios
hilios / gist:1284170
Created October 13, 2011 12:57
Nginx YSlow performance boost w/ Gzip + Far future expires Header
server {
# output compression saves bandwidth
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# make sure gzip does not lose large gzipped js or css files