summaryrefslogtreecommitdiff
path: root/src/module.coffee
blob: f1f6038f55b0258114204a9a236a84556a63e501 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
moduleKeywords = ['extended', 'included']

module.exports = class Module
  @include: (object) ->
    for key, value of object when key not in moduleKeywords
      @::[key] = value

    object.included?.apply(@)
    this

  @extend: (object) ->
    for key, value of object when key not in moduleKeywords
      @[key] = value

    object.extended?.apply(@)
    this