Skip to content

Instantly share code, notes, and snippets.

@nusco
Created August 18, 2010 15:22
Show Gist options
  • Save nusco/535110 to your computer and use it in GitHub Desktop.
Save nusco/535110 to your computer and use it in GitHub Desktop.
Spell: Mimic Method
# ===================
# Spell: Mimic Method
# ===================
# Disguise a method as another language construct.
def BaseClass(name)
name == "string" ? String : Object
end
class C < BaseClass "string" # a method that looks like a class
attr_accessor :an_attribute # a method that looks like a keyword
end
obj = C.new
obj.an_attribute = 1 # a method that looks like an attribute
# For more information: http://www.pragprog.com/titles/ppmetr/metaprogramming-ruby
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment