Skip to content

Instantly share code, notes, and snippets.

Caio Chassot kch

Block or report user

Report or block kch

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
kch / strip_html.rb
Created Apr 21, 2009
my super duper html stripper regexp
View strip_html.rb
class String
def strip_html!
\/? # optional end tag
([\w:-]+) # tag name (capturing)
(?: # optional attribute set (allowing even for end tags)
(?: # group for attribute repetition
\s+ # mandatory space before first attribute
[\w:-]+ # attribute name
kch / tracy.rb
Created Apr 25, 2009
dynamically define a method that takes a block in ruby 1.8; inspired by the pragprog metaprogramming screencasts
View tracy.rb
module Tracy
def self.included k
k.extend ClassMethods
module ClassMethods
def method_added m
kch / cas-sql-authenticator-original.rb
Created May 14, 2009
UR DOIN' IT WRONG (untested)
View cas-sql-authenticator-original.rb
class CASServer::Authenticators::SQL < CASServer::Authenticators::Base
def validate(credentials)
raise CASServer::AuthenticatorError, "Cannot validate credentials because the authenticator hasn't yet been configured" unless @options
raise CASServer::AuthenticatorError, "Invalid authenticator configuration!" unless @options[:database]
CASUser.establish_connection @options[:database]
CASUser.set_table_name @options[:user_table] || "users"
kch / think before you
Created May 14, 2009
How to not waste lines and save kittens
View think before you

So I ran into a bit of code that looked like this:

def my_method
  list.each do |item|
    return_value = item.some_property
    return return_value if return_value
kch / modsux.rb
Created Nov 3, 2009
Assimilates git submodules' files, gets properly rid of the submodule metadata.
View modsux.rb
#!/usr/bin/env ruby
require 'yaml'
require 'pathname'
require 'shellwords'
module_url_by_path = Dir['**/.gitmodules'].inject({}) do |h, path|^\[submodule .*\].*\n((?:\s+.*\n)+)/).flatten.each do |s_attrs|
h_attrs = s_attrs.strip.split(/\n/).inject({}) do |h_attrs, s_attr_line|
k, v = s_attr_line.strip.split(/\s+=\s+/, 2)
h_attrs[k.to_sym] = v
View gruber-url-regex.rb
require 'yaml'
urls = YAML::load <<-STR : :
(Something like : : :
kch / format number with separators.rb
Created Nov 29, 2009
format numbers with separators using a single regex substitution operation
View format number with separators.rb
require 'yaml'
RX = /(\d)(?=\d{3}+(?!\d))/
# Long version
(\d) # One digit
(?= # That is followed by
\d{3}+ # One or more triples of digits
(?!\d) # That are not followed by a digit
kch / 0-tm-align-assignments.rb
Created Dec 19, 2009
fancier align assignments command for textmate
View 0-tm-align-assignments.rb
#!/usr/bin/env ruby1.9
# encoding: UTF-8
# Copyright © 2009 Caio Chassot
# Licensed under the WTFPL
def alternation(*s);"|") end
# All input is read here.
LINES = $stdin.readlines
kch / filetrim.rb
Created Jan 1, 2010
removes trailing spaces on every line, leading and trailing empty lines; ensures files end with a line feed
View filetrim.rb
#!/usr/bin/env ruby -pi
# Copyright © 2010 Caio Chassot
# Licensed under the WTFPL <>
# File Trim. (Vertical and Right trim.)
# Command receives file paths as arguments. Modifies them in-place.
# - removes trailing spaces on every line;
# - removes leading and trailing empty lines;
# - ensures files end with a line feed.
kch /
Created Jan 2, 2010
decode all html entities in a project's files, in-place
$ ack --no-sql --ignore-dir=vendor -l '&\S+?;' | xargs \
ruby1.9 -rhtmlentities -pi -e '$_ =$_)'
You can’t perform that action at this time.