Skip to content

Instantly share code, notes, and snippets.

Created March 16, 2018 21:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/6f80c75f80c9beacac547ce21901f787 to your computer and use it in GitHub Desktop.
Save anonymous/6f80c75f80c9beacac547ce21901f787 to your computer and use it in GitHub Desktop.
def method_missing(method_name, *args, &blk)
return self.[](method_name, &blk) if key?(method_name)
name, suffix = method_name_and_suffix(method_name)
case suffix
when '='.freeze
assign_property(name, args.first)
when '?'.freeze
!!self[name]
when '!'.freeze
initializing_reader(name)
when '_'.freeze
underbang_reader(name)
else
self[method_name]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment