Skip to content

Instantly share code, notes, and snippets.

@TylerRick
TylerRick / content_for_inside_cache.rb
Last active June 11, 2020 05:37 — forked from stackng/rails content_for caching
Add ability to use content_for within a fragment cache block (Rails 5.2)
# 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
@TylerRick
TylerRick / detailed_hash_diff.rb
Last active July 22, 2022 18:25 — forked from fabriciofreitag/detailed_hash_diff.rb
Custom RSPec matcher for detailed hash compasion and diff
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 }
@TylerRick
TylerRick / .gitignore
Created January 19, 2018 18:12 — forked from ZJONSSON/force_labels.js
Automatic floating labels using d3 force-layout
d3-force-labels.js
@TylerRick
TylerRick / main.rb
Created January 16, 2018 19:04 — forked from coorasse/main.rb
CanCanCan Issue
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'
@TylerRick
TylerRick / action_mailer-dont_log_attachments.rb
Last active May 13, 2020 12:21
Override the version from the actionmailer gem in order to not log attachments.
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!
#
@TylerRick
TylerRick / gist:d5e2a57c95b354ddec5d
Last active August 29, 2015 14:13
zeus crash: Wrong message type! Expected ActionResponseMessage, (v0.15.3)
> zeus start
Starting Zeus server v0.15.3
[ready] [crashed] [running] [connecting] [waiting]
boot
├── default_bundle
│  └── development_environment
│  └── prerake
├── default_bundle_with_test_env
│  └── test_environment
│  ├── cucumber_environment
@TylerRick
TylerRick / table_bounds_width_bug.rb
Created May 12, 2014 20:00
Indent doesn't get reset after rendering a centered table
require "prawn"
Prawn::Document.generate("#{__FILE__}.pdf") do |pdf|
pdf.start_new_page margin: [100, 100, 100, 100]
pdf.stroke_axis
orig_bounds_width = pdf.bounds.width
pdf.formatted_text_box [ { :text => "width: #{pdf.bounds.width}" } ], :at => [0, 20]
pdf.indent(100) do
pdf.stroke_axis
@TylerRick
TylerRick / gist:9815597
Created March 27, 2014 19:09
time bundle exec rake canvas:compile_assets for https://github.com/instructure/canvas-lms
canvas (stable) > time bundle exec rake canvas:compile_assets
--> Compiling static assets [css]
warning Webkit only supports pixels for the start and end stops for radial gradients. Got: 100%
warning Webkit only supports pixels for the start and end stops for radial gradients. Got: 100%
warning Webkit only supports pixels for the start and end stops for radial gradients. Got: 100%
--> creating styleguide
# writing file: app/views/info/styleguide.html.erb
--> Compiling static assets [jammit]
--> Compiled static assets [css/jammit]
--> Compiling static assets [javascript]
@TylerRick
TylerRick / gist:9811465
Last active August 29, 2015 13:57
Canvas installation errors
Following https://github.com/instructure/canvas-lms/wiki/Quick-Start I ran into some problems. Here's what I did to work around them.
I am installing on my development computer, running Ubuntu 13.10.
dpkg --get-selections | egrep -i "postgresql"
postgresql install
postgresql-9.1 install
postgresql-9.1-postgis deinstall
postgresql-client-9.1 install
postgresql-client-common install
@TylerRick
TylerRick / reduce_precision_of_datetime_columns.rb
Last active December 20, 2015 10:31
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).
# 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"