Skip to content

Instantly share code, notes, and snippets.

View jqr's full-sized avatar

Elijah Miller jqr

View GitHub Profile
require 'rational'
class Numeric
def to_r(rounding = 10_000)
Rational((self * rounding).to_i, rounding)
end
end
class Rational
def to_proper
# jQuery style method chaining https://twitter.com/grossberg/status/1297223439
class Thing
attr_accessor :name
def initialize(name)
self.name = name
end
def announce
#!/usr/bin/ruby
files = {}
Dir.glob('**/*').each do |file|
basename = File.basename(file).downcase
if File.file?(file)
files[basename] ||= []
files[basename] << file
end
end
@jqr
jqr / nginx.conf
Created March 26, 2009 19:52
Nginx cache busting rewriter
# Nginx cache busting rewriter, best used on assets that have long-lived expires.
#
# Rewrites like so:
# blah.com/release_ab2ea212312.../file.css => blah.com/file.css
#
location ~ ^/release_(.*?)/ {
rewrite ^/release_(.*?)/(.*)$ /$2 last;
}
#!/usr/bin/env /some/rails/project/script/runner
# Shows every class that contains capitalized method names and the "offending" methods.
methods = {}
ObjectSpace.each_object(Class) do |klass|
capitalized_methods = klass.methods.select { |m| m =~ /[A-Z]/ }
unless capitalized_methods.empty?
methods[klass] = capitalized_methods
end
def make_class(klass)
::Object.class_eval "
class #{klass} < #{self}
end
"
end
88888!
class FilterableEnumerable
def initialize(original)
@original = original
end
def >(value)
@original.select { |v| v > value }
end
def >=(value)
def reindent(data, base)
lines = data.split("\n")
smallest_indentation = lines.collect { |l| l =~ /\w/ }.min
lines.each do |line|
line.gsub!(/^\s{#{smallest_indentation}}/, ' ' * base)
end
lines.join("\n")
end
value =
10.times do |i|
if i == 5
break "found five!"
end
end
value # => "found five!"