Skip to content

Instantly share code, notes, and snippets.

Tim Diggins timdiggins

Block or report user

Report or block timdiggins

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@timdiggins
timdiggins / gist:294f0a37312fcbeaac70
Created Dec 18, 2014
delayedjob plugin to log backtraces
View gist:294f0a37312fcbeaac70
module Delayed
module Plugins
class LogErrors < Plugin
callbacks do |lifecycle|
lifecycle.around(:invoke_job) do |job, &block|
begin
block.call(job)
rescue Exception => error
Delayed::Worker.logger.error(error.message)
Delayed::Worker.logger.error(error.backtrace.join("\n"))
@timdiggins
timdiggins / delayedjob-bugsnag.rb
Last active Aug 29, 2015 — forked from loopj/delayedjob-bugsnag.rb
notify bugsnag when delayed job errors occur
View delayedjob-bugsnag.rb
# some references which helped
# http://blog.salsify.com/engineering/delayed-jobs-callbacks-and-hooks-in-rails
# http://stackoverflow.com/a/16639849/109175
# example plugin: https://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/plugins/clear_locks.rb
module Delayed
module Plugins
class Bugsnag < Plugin
callbacks do |lifecycle|
lifecycle.around(:invoke_job) do |job, &block|
begin
@timdiggins
timdiggins / rake_testing_support.rb
Created Mar 20, 2015
testing rake in rspec (etc)
View rake_testing_support.rb
# ./spec/support/rake_testing_support.rb
def invoke_rake_task_in_test(task_name)
require 'rake'
Rails.application.load_tasks if Rake.application.tasks.count < 10
Rake::Task[task_name].reenable
Rake::Task[task_name].invoke
end
View ruby crashreport
Process: ruby [1079]
Path: /usr/bin/ruby
Identifier: ruby
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: zsh [327]
Date/Time: 2009-05-13 14:26:58.435 +0100
OS Version: Mac OS X 10.5.6 (9G55)
Report Version: 6
View crash report with nokogiri 1.2.4
Process: ruby [4332]
Path: /usr/bin/ruby
Identifier: ruby
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: zsh [327]
Date/Time: 2009-05-15 11:15:29.213 +0100
OS Version: Mac OS X 10.5.6 (9G55)
Report Version: 6
@timdiggins
timdiggins / chef-roles-to-json-task.rb
Created Feb 19, 2011
rake task to convert existing ruby roles to json
View chef-roles-to-json-task.rb
# ADD this to Rakefile and run it by issuing rake roles.to_json
ROLE_DIR = File.expand_path(File.join(TOPDIR, "roles"))
namespace :roles do
desc "Convert ruby roles from ruby to json, creating/overwriting json files."
task :to_json do
Dir.glob(File.join(ROLE_DIR, '*.rb')) do |rb_file|
role = Chef::Role.new
role.from_file(rb_file)
json_file = rb_file.sub(/\.rb$/,'.json')
@timdiggins
timdiggins / search_for_chef_solo.rb
Created Mar 8, 2011
simplistic search implementation for chef solo
View search_for_chef_solo.rb
# better to use a monkeypatch - see https://gist.github.com/867960
@timdiggins
timdiggins / Vagrant_monkeypatch.rb
Created Mar 13, 2011
Vagrantfile monkeypatch of Vagrant's chef solo provisioner to allow databag folders
View Vagrant_monkeypatch.rb
CHEF_REPO = "../chef_repo" # path to chef repo,
# because Vagrantfile is normally in application repo, not in chef repo.
# see also https://gist.github.com/867960 for chef_solo patch
module Vagrant
module Provisioners
class ChefSolo
class Config
attr_accessor :data_bag_path
end
@timdiggins
timdiggins / chef_solo_patch.rb
Created Mar 13, 2011
Monkeypatch for chef solo to do basic data_bag manipulations
View chef_solo_patch.rb
# save this in the library folder of a cookbook
# (e.g. ./coookbooks/vagrant/library/chef_solo_patch.rb)
# see also https://gist.github.com/867958 for vagrant patch
# based on http://lists.opscode.com/sympa/arc/chef/2011-02/msg00000.html
if Chef::Config[:solo]
class Chef
module Mixin
module Language
def data_bag(bag)
View gist:901829
/usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/data_bag_item.rb:95:in `raw_data=': Data Bag Items must have an id key in the hash! {"evq"=>"https://api.opscode.com/organizations/ima_evq/data/apps/evq"} (Chef::Exceptions::ValidationFailed)
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/data_bag_item.rb:147:in `from_hash'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/data_bag_item.rb:183:in `load'
from /var/chef/cache/cookbooks/django/libraries/app.rb:6:in `initialize'
from /var/chef/cache/cookbooks/django/definitions/install.rb:3:in `new'
from /var/chef/cache/cookbooks/django/definitions/install.rb:3:in `from_file'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:50:in `instance_eval'
from /usr/lib/ruby/gems/1.8/gems/chef-0.9.14/bin/../lib/chef/mixin/recipe_definition_dsl_core.rb:50:in `method_missing'
from /var/chef/cache/cookbooks/django/definitions/install.rb:42:in `from_file'
from /usr/lib/ruby/gems/1.8/gems/chef
You can’t perform that action at this time.