Skip to content

Instantly share code, notes, and snippets.

@joshuap
joshuap / environment.rb
Created April 29, 2011 19:37
Net:HTTP enabled URI Validator for Rails 3
...
require 'uri_validator'
@joshuap
joshuap / mp3_update
Created February 21, 2012 19:08
Systematically retrieve audio files from popular mp3 blogs
#!/usr/bin/env ruby
require 'nokogiri'
require 'open-uri'
class Mp3Crawler
def initialize(url)
@data = Nokogiri::XML(open(url))
end
def links
@joshuap
joshuap / custom_events.js.erb
Created August 24, 2012 00:50
Rails 3.2 route-based custom JQuery events
$(function(){
var controllers = <%=
actions = {}
Rails.application.routes.routes.each do |route|
if route.defaults.include?(:controller)
actions[route.defaults[:controller]] ||= []
actions[route.defaults[:controller]] << route.defaults[:action] if route.defaults.include?(:action)
end
end
actions.to_json %>;
@joshuap
joshuap / deploy.rb
Created October 7, 2012 01:19
Honeybadger deployment notification capistrano task using local machine and curl
namespace :deploy do
desc "Notifies Honeybadger locally using curl"
task :notify_honeybadger do
require 'json'
require 'honeybadger'
begin
require './config/initializers/honeybadger'
rescue LoadError
logger.info 'Honeybadger initializer not found'
@joshuap
joshuap / honeybadger.rb
Created October 7, 2012 01:46
Standard Honeybadger initializer
Honeybadger.configure do |config|
config.api_key = 'asdf'
end
@joshuap
joshuap / honeybadger.rb
Created December 28, 2012 18:28
Using Honeybadger with Sidekiq
# config/initializers/honeybadger.rb
Honeybadger.configure do |config|
...
config.async do |notice|
WorkingBadger.perform_async(notice.to_json)
end
end
@joshuap
joshuap / active_record.rb
Created June 7, 2013 07:14
Adding #with to ActiveRecord 3.2.13
# config/initializers/active_record.rb
module ActiveRecordRelationExt
def self.included(base)
base.send(:attr_accessor, :with_values)
base::MULTI_VALUE_METHODS << :with
end
def with(*subqueries)
return self if subqueries.blank?
@joshuap
joshuap / cancan_controller.rb
Created June 18, 2013 18:38
Define associations for eager loading when authorizing CanCan resources
module CanCanController
extend ActiveSupport::Concern
included do
extend(ClassMethods)
cattr_accessor :cancan_includes
self.cancan_includes = []
end
module ClassMethods
@joshuap
joshuap / simple_form_bootstrap.rb
Created October 31, 2013 21:05
Quick simple_form + Bootstrap3 hack
# config/initializers/simple_form_bootstrap.rb
# https://github.com/plataformatec/simple_form/issues/857
# https://gist.github.com/adamico/6510093
class CollectionCheckBoxesInput < SimpleForm::Inputs::CollectionCheckBoxesInput
def item_wrapper_class
"checkbox-inline"
end
end
# Notifies Honeybadger locally using curl
after :finishing, :notify_honeybadger do
on roles(:app) do
require 'json'
require 'honeybadger'
begin
require './config/initializers/honeybadger'
rescue LoadError
error 'Honeybadger initializer not found'