Skip to content

Instantly share code, notes, and snippets.

View blimmer's full-sized avatar

Ben Limmer blimmer

View GitHub Profile
@blimmer
blimmer / rename-master-to-main.sh
Last active June 17, 2020 20:20
A helper tool to fix local clones after renaming "master" branches to "main"
#! /bin/bash
set -e
if ! git diff-index --quiet HEAD --; then
echo "ERROR: you have uncommited changes. Please stash or commit before running this script."
exit 1
fi
git fetch
import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['card-thingy'],
click() {
this.sendAction('transitionToMyRoute');
}
});
@blimmer
blimmer / monkeypatch.rb
Created March 21, 2018 20:47
Rails Issue #30947 Workaround
# This patch is to work around this bug in Rails 5.0.x and 5.1.x
# https://github.com/rails/rails/issues/30947
# Because we use SQLite for tests and MySQL in prod, having the options hash
# containing ENGINE=InnoDB causes problems when we try to prepare the test database.
#
# Because of this, we need to remove those options from the generated schema.rb file.
# Here is the source that's setting `options`
# https://github.com/rails/rails/blob/81787a895126ead62a2859b33eccbbb74ef38892/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb#L561
#
# This should be removed for Rails 5.2 ++
@blimmer
blimmer / components.my-component.js
Created December 6, 2017 16:34
Ember Array for Joey
import Ember from 'ember';
export default Ember.Component.extend({
array: Ember.A([]),
setSomeStuff() {
this.get('array').pushObjects(['foo', 'bar', 'baz']);
}
});
@blimmer
blimmer / components.my-ec-component.js
Created October 31, 2017 17:48
ember concurrency example for joey
import Ember from 'ember';
import { task, timeout } from 'ember-concurrency';
export default Ember.Component.extend({
myVal: null,
asyncPoll: task(function * () {
console.log('polling');
this.set('myVal', Math.random());
yield timeout(1000); // ms
this.get('asyncPoll').perform(); // requeue myself
@blimmer
blimmer / foo_for_caching.rb
Created September 27, 2017 15:04
Rails Issue 30680 Workaround
# This class exists to make the caching of Foo objects more efficient.
# Marshaling full activerecord objects is expensive, especially in Rails 5
# because of this bug: https://github.com/rails/rails/issues/30680
# This simple ruby class selects a very small subset of parameters needed
# for common operations on these objects. It also acts like Foo, by
# passing attributes through to an in-memory Foo model.
class FooForCaching
attr_accessor :attributes
# This is a list of attributes we want to save in cache
@blimmer
blimmer / bug_report.rb
Last active September 16, 2021 09:59
ActiveRecord 5 Bug Report - marshal slow loading
# frozen_string_literal: true
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
@blimmer
blimmer / components.user-info.js
Created August 9, 2017 01:45
wip multipage validations
import Ember from 'ember';
import { validator, buildValidations } from 'ember-cp-validations';
import { userInfoValidations } from '../models/order';
const Validations = buildValidations(userInfoValidations);
export default Ember.Component.extend(Validations, {
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});