diff options
Diffstat (limited to 'proc.c')
-rw-r--r-- | proc.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -1273,6 +1273,32 @@ rb_proc_get_iseq(VALUE self, int *is_proc) return NULL; } +/* call-seq: + * prc == other -> true or false + * prc.eql?(other) -> true or false + * + * Two proc are the same if, and only if, they were created from the same code block. + * + * def return_block(&block) + * block + * end + * + * def pass_block_twice(&block) + * [return_block(&block), return_block(&block)] + * end + * + * block1, block2 = pass_block_twice { puts 'test' } + * # Blocks might be instantiated into Proc's lazily, so they may, or may not, + * # be the same object. + * # But they are produced from the same code block, so they are equal + * block1 == block2 + * #=> true + * + * # Another Proc will never be equal, even if the code is the "same" + * block1 == proc { puts 'test' } + * #=> false + * + */ static VALUE proc_eq(VALUE self, VALUE other) { |