Skip to content

Instantly share code, notes, and snippets.

@teejayvanslyke
Created June 9, 2009 16:33
Show Gist options
  • Save teejayvanslyke/126619 to your computer and use it in GitHub Desktop.
Save teejayvanslyke/126619 to your computer and use it in GitHub Desktop.
# method_missing: It's a dirty beast when it comes to dealing with 'self'!
class Something
def something_else=(rhs)
@something_else = 3
end
def something_else
@something_else
end
def run
puts "self.something = 1"
self.something = 1
puts "something = 2"
something = 2
puts "something_else = 3"
something_else = 3
puts "self.something_else = 4"
self.something_else = 4
puts "self.something: #{self.something}"
puts "something: #{something}"
puts "self.something_else: #{self.something_else}"
puts "something_else: #{something_else}"
end
def method_missing(name, *args)
if name == :something=
@something = args.first
elsif name == :something
@something
else
super
end
end
end
Something.new.run
# self.something = 1
# something = 2
# something_else = 3
# self.something_else = 4
# self.something: 1
# something: 2
# self.something_else: 3
# something_else: 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment