Instantly share code, notes, and snippets.

What would you like to do?
Effective Ruby

Effective Ruby

#1 (Almost) Everything is true

  • Every value is true except false and nil.
  • The number zero is true in Ruby.
  • Use the nil? method to differentiate between false and nil.

#2 All objects could be nil

  • Coerce nil objects into the expected type (eg use to_i and to_s).
  • Array#compact/Hash#compact removes all nil elements.
  • Array#dig/Hash#dig returns nil if any intermediate step is nil.

#3 -

#4 Constants are mutable

  • Always freeze constants to prevent them form being mutated (eg TIMEOUT = 5.freeze).

#5 -

#6 -

#7 Different behaviours of super

  • When you override a method from inheritance hierarchy the super keyword can be used to call the overriden method.
  • Using super with no arguments and parentheses is equivalent to passing it all of the arguments that were given to the enclosing method.
  • If you want to use super without passing the overriden method any arguments, you must use empty parentheses (eg super()).

#8 -


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment