Skip to content

Instantly share code, notes, and snippets.

@jsvnm
Created November 18, 2011 22:49
Show Gist options
  • Save jsvnm/1378016 to your computer and use it in GitHub Desktop.
Save jsvnm/1378016 to your computer and use it in GitHub Desktop.
chained operators
#http://timelessrepo.com/chained-comparisons
[:<, :>, :<=, :>=].each do |operator|
[Float, Fixnum, Comparable].each do |klass|
klass.class_eval {
alias_method("__#{operator}__", operator)
define_method(operator) do |operand|
send("__#{operator}__", operand) and operand
end
}
end
FalseClass.send(:define_method, operator) { false }
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment