Interesting. So currently the mixin's methods won't overwrite the methods you have on your class. You should avoid having a method with the same name of your mixins.
The behavior your explaining makes sense to me, so i'll discuss with other devs about it. Thanks. -- Fábio Miranda Costa Solucione Sistemas Engenheiro de interfaces On Fri, Apr 16, 2010 at 4:21 PM, Bogdan Gusiev <[email protected]> wrote: > Sorry, I am total JS noob. > I just can tell you does it work in Ruby: > Mixins are not multiple inheritance. They are appending to the Class > tree between the current class and it's parent class. > > Let's say that Person extends Model with mixins Cached and > ActivitySpawner: > > Model has method #save: > save: function() { // query DB } > > Cached has method #save: > save: function() { this.parent(); Cache.persist(this)} > > ActivitySpawner has also method #save: > save: function() {this.parent(); new Activity(this, "new object > created");} > > And User also have it: > save: function() {this.parent(); new ActivationEmail(this.email);} > > In this case > Class | save method parent > Model | none > Cached | Model#save > ActivitySpawner | Cached#save > Person | ActivitySpawner#save > > Sure, the order of mixins make sense. But in fact in this example I > don't care about the order - I just want all 'on Save' things to be > done. > > > > > > On Apr 16, 9:59 pm, Fábio M. Costa <[email protected]> wrote: > > Yeah you can just access the parent function from the Extended Class. > Thats > > the intended behavior. > > I mean who's the parent of who if you mix 2 classes that have the same > > method names? > > I'm confused now. > > > > -- > > Fábio Miranda Costa > > Solucione Sistemas > > Engenheiro de interfaces > > > > > > > > On Fri, Apr 16, 2010 at 3:56 PM, Bogdan Gusiev <[email protected]> > wrote: > > > > > "if (this.parent)" doesn't work for me. It is always defined. > > > > > I will try to describe the whole situation: > > > > > I have two mixins for the Widget class: > > > Animated is responding for animation. > > > Stateful is doing widget state control. > > > > > Both of them have show() and hide() methods. > > > But these mixins are independent from each other and I want to be able > > > to use them one by one and together. > > > > > In addition, it's sad that 'parent' is inaccessible in class mixed up > > > with 'Implements'. > > > > > On Apr 16, 8:30 pm, Fábio M. Costa <[email protected]> wrote: > > > > Could you explain why you need this? > > > > It makes little sense to me. > > > > Anyway you can do: > > > > > > if (this.parent) this.parent(); > > > > > > -- > > > > Fábio Miranda Costa > > > > Solucione Sistemas > > > > Engenheiro de interfaces > > > > > > On Fri, Apr 16, 2010 at 1:07 PM, Bogdan Gusiev <[email protected]> > > > wrote: > > > > > Good morning JS geeks, > > > > > > > Can somebody advice is there a way to check if class method exists > in > > > > > Extended class? > > > > > > > Like: > > > > > > > new Class({ > > > > > > > Extends: UnknownClass, > > > > > > > show: function() { > > > > > if (this.hasParent()) { > > > > > this.parent(); > > > > > } > > > > > this.doSomethingElse(); > > > > > } > > > > > > > }); > > > > > > > -- > > > > > Subscription settings: > > > > >http://groups.google.com/group/mootools-users/subscribe?hl=en >
