# How to lock a ruby definition?

**URL:** <https://www.ruby-forum.com/t/how-to-lock-a-ruby-definition/124970>\
**Category:** Ruby\
**Created:** [January 4, 2008, 7:48am UTC](https://www.ruby-forum.com/t/how-to-lock-a-ruby-definition/124970 "2008-01-04T07:48:52Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mokkai](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c2a13f/32.png) [@mokkai](https://www.ruby-forum.com/u/mokkai)\
**Post date:** [January 4, 2008, 7:48am UTC](https://www.ruby-forum.com/t/how-to-lock-a-ruby-definition/124970/1 "2008-01-04T07:48:52Z")

</div>

def self.def1  
end

how to lock a ruby definition to use it one instance at a time?

---

<div class="post-metadata">

**Author:** ![mokkai](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/c2a13f/32.png) [@mokkai](https://www.ruby-forum.com/u/mokkai)\
**Post date:** [January 6, 2008, 6:42am UTC](https://www.ruby-forum.com/t/how-to-lock-a-ruby-definition/124970/2 "2008-01-06T06:42:46Z")

</div>

You create “singleton methods” (don’t confuse this with Java/GoF  
“singletons”):

x = []  
y = []  
def x.sayHello; puts “Hello world!” end

x.sayHello  
y.sayHello # NoMethodError
