This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'facets/hash/recurse' | |
# Usage: | |
# expect(actual).to match_hash(expected) | |
# | |
RSpec::Matchers.define :match_hash do |expected| | |
match do |actual| | |
# Sort hashes before comparing so that the diff only shows actual changes between keys and | |
# values. | |
actual = actual.recurse {|h| h.sort_by {|k,v| k.to_s }.to_h } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# config/initializers/content_for_inside_cache.rb | |
module AbstractController | |
class Base | |
attr_internal :cached_content_for | |
end | |
module Caching | |
# actionpack/lib/action_controller/caching/fragments.rb | |
module Fragments |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ActionMailer::Base.class_eval do | |
class << self | |
protected | |
# Override the version from the actionmailer gem in order to not log attachments. | |
# | |
# Note: This depends on the patch from https://github.com/mikel/mail/pull/858, which adds | |
# parts.inspect_structure and fixes an issue with mail.without_attachments! | |
# |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# DelegateToAll. Like delegate.rb from Ruby's std lib but lets you have multiple target/delegate objects. | |
require 'delegate' | |
class DelegatorToAll < Delegator | |
# Pass in the _obj_ to delegate method calls to. All methods supported by | |
# _obj_ will be delegated to. | |
# | |
def initialize(*targets) | |
__setobj__(targets) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d3-force-labels.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
begin | |
require 'bundler/inline' | |
rescue LoadError => e | |
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler' | |
raise e | |
end | |
gemfile(true) do | |
source 'https://rubygems.org' | |
gem 'rails', '5.1.4' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//-------------------------------------------------------------------------------------------------- | |
// This is based on the 'group-required' rule from js-webshim/dev/extras/custom-validity.js but | |
// allows you to specify a group name, in case you need checkboxes with different names in the same | |
// group. | |
var groupTimer = {}; | |
$.webshims.addCustomValidityRule('group-required-by-name', function(elem, val){ | |
var $elem = $(elem); | |
var name = $elem.data('group-required'); | |
var filter = '[data-group-required="' + name + '"]' | |
if (!name || elem.type !== 'checkbox') { return; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Actual filename: bootstrap/rvm.erb | |
# vim: set ft=sh | |
# This script automatically bootstraps the system with everything it needs to run chef-solo. | |
# Note: This should only do the absolute minimum necessary to get chef-solo (and your recipes) | |
# working. All else should be done via chef recipes. | |
#=================================================================================================== | |
# Config |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Example usage: | |
require 'active_record/nonpersisted_attribute_methods' | |
class Node < ActiveRecord::Base | |
include ActiveRecord::NonPersistedAttributeMethods | |
define_nonpersisted_attribute_methods [:bar] | |
# Example of using with ancestry and getting :parent to show up in changes hash. | |
has_ancestry | |
define_nonpersisted_attribute_methods [:parent] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Change all datetime columns to have a precision of 0, to match the default precision of these | |
# columns in MySQL. | |
# | |
# This is useful if you migrate a database from MySQL to PostgreSQL and don't need the extra | |
# microsecond precision (precision: 6) that is the default in PostgreSQL | |
# (see http://www.postgresql.org/docs/9.2/static/datatype-datetime.html). | |
# | |
# Before: | |
# > some_record.created_at.strftime('%Y-%m-%d %H:%M:%S.%N') | |
# => "2013-07-25 11:49:33.270032000" |
NewerOlder