Skip to content

Instantly share code, notes, and snippets.

View eiwi1101's full-sized avatar

William Eisert eiwi1101

View GitHub Profile
@eiwi1101
eiwi1101 / some_view.html.haml
Last active November 21, 2015 00:45
A table helper file for HAML templates that allows you to make tables of a data collection painfully easy.
%h1 All Users
- table_for User.all do
- column "Username" => :username
- column "Email" => ->(m) { mail_to m.email }
- column "Notes" => :notes
@eiwi1101
eiwi1101 / sassify.rb
Created November 30, 2015 18:07
Enumerates the SASS variables in your Rails app, and searches for places they can be used.
#!/usr/bin/ruby
#
# Needs work, feel free to contribute.
# Dependencies: ANSI color escapes, spits out vim commands.
#
# USAGE
# ./sassify.rb list
# ./sassify.rb [files...]
#
# list - Command which lists all loaded SASSY variables.
@eiwi1101
eiwi1101 / encabulator.rb
Created March 11, 2016 17:38
Some examples on how to interface with various Rockwell Automation products.
class RetroEncabulator < RockwellAutomation::Base
end
class TurboEncabulator < RetroEncabulator
has_one :reverse_duractance_wheel, inverse_of: :duractance_wheel
end
@eiwi1101
eiwi1101 / post.rb
Last active April 4, 2016 15:50
Sluggable : An ActiveSupport Concern for generating URL slugs on a Model.
# === Table Schema
#
# id: integer
# title: string
# body: string
# author_id: integer
#
class Post < ActiveRecord::Base
include Sluggable
belongs_to :author
module CollectionHelper
#...
# This does a shitload of magic. It handles sort, order, filter, page and search.
#
def self.filter_scope(scope, params = {})
unpermitted_params = []
params = params.with_indifferent_access
params[:sort] ||= 'id'
@eiwi1101
eiwi1101 / has_guid.rb
Created December 12, 2016 17:24
HasGuid a concern for automatically adding and maintaining a GUID/UUID/Token etc on your objects.
module HasGuid
extend ActiveSupport::Concern
included do
before_validation :generate_guid
class_attribute :guid_column_name
class_attribute :guid_options
validate :validate_guid
# As if Ruby didn't make dates any easier, this!
# (#method_missing is disgusting and I love it.)
#
# 25.december 2015 #=> Fri, 25 Dec 2015
#
class Fixnum
def method_missing(month, year=nil)
Date::MONTHNAMES.each_with_index do |m, i|
return Date.new year, i, self if m && month.to_s.casecmp(m)==0
end
@eiwi1101
eiwi1101 / App.js.jsx.coffee
Created April 2, 2017 21:07
Personal React style guide 0.1
@App = React.createClass
#== Validations
propTypes: {}
contextTypes: {}
#== Initialize
@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 / DateFormat.jsx.coffee
Created October 5, 2017 18:02
DateFormat react component for formatting timestamps!
@DateFormat = React.createClass
propTypes:
timestamp: React.PropTypes.number.isRequired
fuzzy: React.PropTypes.bool
dateOnly: React.PropTypes.bool
short: React.PropTypes.bool
className: React.PropTypes.string
getInitialState: ->
timer: null