1.0.1 • Published 10 years ago

double-latte v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

Double Latte

Python-like MRO based multiple inheritance for CoffeeScript.

Works with all javascript engines supported by CoffeeScript.

Example

{multiple, isinstance, issubclass} = require "double-latte"


class A
    constructor: ->
        console.log "A"


class B extends A
    constructor: ->
        console.log "B"
        super


class C extends A
    constructor: ->
        console.log "C"
        super


class D extends multiple B, C
    constructor: ->
        console.log "D"
        super


d = new D  # will print D; B; C; A;
isinstance d, B  # true

Install

npm install double-latte

FAQ

Q: Can I use this with <insert favorite compile-to-javascript language here> *

A: Probably not. This relies on the cls.__super__ property that CoffeeScript uses to figure out what parent to call. If your compiler does that, then maybe.

Q: How fast is this?

A: Fast enough ( Guido for president! ). If you're that worried about performance then you should probably code in javascript directly.

Q: What's the deal with isinstance?

A: For technical reasons, the instanceof operator doesn't work with classes that have multiple parents. The isinstance and issubclass are provided to work around this fact.

1.0.1

10 years ago

1.0.0

10 years ago