Skip to content

Instantly share code, notes, and snippets.

View dblock's full-sized avatar
🐝
Alexa, ask the future of America to be great again! (try it)

Daniel (dB.) Doubrovkine dblock

🐝
Alexa, ask the future of America to be great again! (try it)
View GitHub Profile
@dblock
dblock / tags-mapreduce-mongodb-inline.rb
Created May 12, 2011 13:45
Improving tags map/reduce with MongoDB 1.8.x
class Tag
include Mongoid::Document
def self.rebuild
tags_before = Hash[ * Tag.all.collect { |tag|
[tag.name, tag]
}.flatten]
map = <<-EOS
function() {
@dblock
dblock / delayed_jobs_controller.rb
Created June 4, 2011 20:06
Delayed job view and controller
class Admin::DelayedJobsController < AdminController
# GET /admin/delayed_jobs
def index
@delayed_jobs = Delayed::Backend::Mongoid::Job.desc(:created_at)
.paginate :page => params[:page], :per_page => 20
end
end
@dblock
dblock / without_callbacks.rb
Created June 4, 2011 20:08
Suppress ActiveSupport callbacks
module ActiveSupport::Callbacks::ClassMethods
def without_callbacks(callbacks, &block)
saved = {}
callbacks.each do |callback|
saved[callback] = instance_method(callback)
remove_method(callback) if respond_to?(callback)
define_method(callback){ true }
end
begin
@dblock
dblock / git-delete-merged-branches.sh
Created June 9, 2011 21:12
Delete merged git branches.
git branch --merged | grep -v master | xargs git branch -d
git branch -r --merged | awk -F'/' '/^ *origin/{if(!match($0, /(>|master)/)){print $2}}' | xargs git push origin --delete
@dblock
dblock / getWeek.js
Created July 13, 2011 22:49
get week of the year in JavaScript
function( d ) {
// Create a copy of this date object
var target = new Date(d.valueOf());
// ISO week date weeks start on monday
// so correct the day number
var dayNr = (d.getDay() + 6) % 7;
// Set the target to the thursday of this week so the
@dblock
dblock / kaminari.rb
Created July 28, 2011 13:50
Kaminari pagination information.
# see https://github.com/amatsuda/kaminari/issues/56 and https://github.com/amatsuda/kaminari/pull/140
module Kaminari
# = Helpers
module ActionViewExtension
extend ::ActiveSupport::Concern
module InstanceMethods
def page_entries_info(collection, options = {})
collection_name = options[:collection_name] || (collection.empty?? 'entry' : collection.first.class.name.underscore.sub('_', ' '))
if collection.num_pages < 2
@dblock
dblock / capybara-448-selenium.rb
Created August 16, 2011 14:45
Selenium Webdriver dropdown selection
require 'rubygems'
require 'selenium-webdriver'
path = File.expand_path("test.html")
File.open(path, "w") { |io| io << DATA.read }
browser = Selenium::WebDriver.for :firefox # replace :firefox with the browser you're having trouble with
begin
browser.get "file://#{path}"
@dblock
dblock / spreadsheet_encodings.rb
Created September 1, 2011 23:15
Spreadhseet encodings monkey-patch, fixes "can't modify a frozen string" error.
# monkey patch frozen string bug, see https://github.com/dblock/spreadsheet/commit/164dcfbb24097728f1a7453702c270107e725b7c
module Spreadsheet
module Encodings
def client string, internal='UTF-16LE'
string = string.dup
string.force_encoding internal
string.encode Spreadsheet.client_encoding
end
def internal string, client=Spreadsheet.client_encoding
string = string.dup
@dblock
dblock / jade-pseudo-upper.pas
Created September 6, 2011 02:28
An obscure piece of code from Jade, 1997
function TJadeMainForm.PseudoUpper(iStr: string): string;
var
stNum: string;
stDes: string;
stNam: string;
stPre: string;
stTmp: string;
begin
if JadeTable.State <> dsEdit then JadeTable.Edit;
iStr := Trim(LowerCase(iStr));
@dblock
dblock / new_relic_agent_instrumentation_api.rb
Created September 21, 2011 21:49
New Relic API Rackup
if Rails.env.production?
require 'new_relic/agent/instrumentation/controller_instrumentation'
module NewRelic
module Agent
module Instrumentation
module API
def newrelic_request_headers
@newrelic_request.env