# Mixins and initialize/initialize\_copy

**URL:** <https://www.ruby-forum.com/t/mixins-and-initialize-initialize-copy/93536>\
**Category:** Ruby\
**Created:** [April 4, 2006, 3:26pm UTC](https://www.ruby-forum.com/t/mixins-and-initialize-initialize-copy/93536 "2006-04-04T15:26:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 4, 2006, 3:26pm UTC](https://www.ruby-forum.com/t/mixins-and-initialize-initialize-copy/93536/1 "2006-04-04T15:26:39Z")

</div>

Hello,  
I have created a mixin module that overwrites initialize and  
initialize\_copy.  
This works fine until a class that uses the mixin wants to overwrite  
initialize  
and/or initialize\_copy, too.

I can replace initialize with lazy accessors. But I don’t know how to  
handle  
initialize\_copy:

The mixin manages some attributes and the initialize\_copy method makes  
sure  
that cloning the object clones the managed attributes.

What would be the best solution to this problem?

Regards,  
RÃ¼diger Sonderfeld [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 4, 2006, 5:14pm UTC](https://www.ruby-forum.com/t/mixins-and-initialize-initialize-copy/93536/2 "2006-04-04T17:14:09Z")

</div>

Anyone who does this kind of thing should always check to see if the  
method is already defined and if it is wrap it --NEVER just overwrite  
these instrumental methods.

T.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [April 4, 2006, 9:38pm UTC](https://www.ruby-forum.com/t/mixins-and-initialize-initialize-copy/93536/3 "2006-04-04T21:38:43Z")

</div>

RÃ¼diger Sonderfeld wrote:

> What would be the best solution to this problem?

Calling super from the instance methods of your class?
