Skip to content

Instantly share code, notes, and snippets.

Bryan Hockey malakai97

Block or report user

Report or block malakai97

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
malakai97 / elsewhere.rb
Last active Apr 23, 2019
Ruby #handles? style factories
View elsewhere.rb
Superclass.for(obj) # => The concrete subclass instance you wanted
malakai97 /
Created Feb 7, 2018 — forked from blairanderson/
Dependency Injection in Ruby. Originally from Jim Weirich’s blog which does not exist except for googles cache.

Dependency Injection in Ruby 07 Oct 04


At the 2004 Ruby Conference, Jamis Buck had the unenviable task to explain Dependency Injection to a bunch of Ruby developers. First of all, Dependency Injection (DI) and Inversion of Control (IoC) is hard to explain, the benefits are subtle and the dynamic nature of Ruby make those benefits even more marginal. Furthermore examples using DI/IoC are either too simple (and don’t convey the usefulness) or too complex (and difficult to explain in the space of an article or presentation). I once attempted to explain DI/IoC to a room of Java programmers (see, so I can’t pass up trying to explain it to Ruby developers.

Thanks goes to Jamis Buck (the author of the Copland DI/IoC framework) who took the time to review this article and provide feedback.

What is Dependency Injection?

malakai97 / cli.rb
Last active Oct 24, 2017
Simple configuration for ruby gems and apps
View cli.rb
# lib/mygem/cli.rb
require "mygem"
require "mygem/configuration"
module MyGem
class CLI
def actual_cli_method(x,y)
MyGem.config = configuration(opts)
malakai97 / yaml_parse_no_times.rb
Last active Jan 12, 2017
Ruby: Parse yaml without converting time-strings to objects
View yaml_parse_no_times.rb
require 'psych'
class WorseScanner < Psych::ScalarScanner
def parse_time(s)
s = "---\nf: 2001-02-29T01:02:03-03:00" # Note this day doesn't exist.
You can’t perform that action at this time.