Skip to content

Instantly share code, notes, and snippets.

View eiwi1101's full-sized avatar

William Eisert eiwi1101

View GitHub Profile
@eiwi1101
eiwi1101 / namespace.js
Last active December 21, 2017 14:05
It's like `mkdir -p` but for Javascript objects! (Probably an anti-pattern.)
// I often do stuff like (coffeescript):
//
// class @Forms.Select extends React.Component
//
// Which, often requires an ugly @Forms ||= {} somewhere, or this will
// explode. Now, I know there's better ways to do this, and CommonJS has
// its nifty resource stuff, but I am old and stuck in my ways and stuff.
//
// With this snippet (if you're in rails, you can include it in application.js
// before your components dir), you can write (again, coffee):
@eiwi1101
eiwi1101 / items.rb
Last active July 12, 2018 21:58
Some noodling for an RPG backend.
class Items::Flour < Item
name "Flour"
description "Looks like crushed up wheat to you. Keep dry."
value 2.copper
stack_size 20
# Use with a Bucket of Water to create Dough. Requires
# level 1 or greater cooking.
use_with Item::BucketOfWater, create: [Item::Dough, Item::Bucket], skills: { Skill::Cooking => 1 }
@eiwi1101
eiwi1101 / application_record.rb
Created October 15, 2018 19:58
Log validation errors and changes for all ActiveRecord updates.
class ApplicationRecord << ActiveRecord::Base
#...
after_validation :log_validation_errors
private
def log_validation_errors
Rails.logger.tagged self.class.name do
if self.errors.empty?