Skip to content

Instantly share code, notes, and snippets.

@gabrielg
Created February 4, 2010 00:36
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 gabrielg/294235 to your computer and use it in GitHub Desktop.
Save gabrielg/294235 to your computer and use it in GitHub Desktop.
class Class
def seal!
class_eval do
def self.method_added(method_name)
Object.const_set(name, @sealed) if defined?(@sealed)
end
def self.singleton_method_added(method_name)
Object.const_set(name, @sealed) if defined?(@sealed)
end
end
@sealed = self.clone
end
end
class Sealed
def foo
puts "denied"
end
def self.bar
puts "denied again"
end
seal!
end
class Sealed
def foo
puts "wuh-oh"
end
def self.bar
puts "double wuh-oh"
end
end
Sealed.new.foo
Sealed.bar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment