|
|
1.1 moko 1: @main[]
2:
3: a before: ^show[$a:CLASS]
4:
5: b before: ^show[$b:CLASS]
6:
1.2 ! moko 7: ^reflection:mixin[$b:CLASS; $.name[method_b] $.to[$a:CLASS] $.fields(false) ]
! 8: 1. ^show[$a:CLASS]
! 9:
1.1 moko 10: ^reflection:mixin[$b:CLASS; $.to[$a:CLASS] $.fields(false) ]
1.2 ! moko 11: 2. ^show[$a:CLASS]
1.1 moko 12:
13: ^reflection:mixin[$b:CLASS; $.to[$a:CLASS] ]
1.2 ! moko 14: 3. ^show[$a:CLASS]
! 15:
! 16: ^a:mixin[ $.methods(false) $.name[field] $.overwrite(true) ]
! 17: 4. ^show[$a:CLASS]
1.1 moko 18:
19: ^a:mixin[ $.methods(false) $.overwrite(true) ]
1.2 ! moko 20: 5. ^show[$a:CLASS]
1.1 moko 21:
22: $a:b[check]
23: property copied: $a:b
24:
25: ^a:mixin[ $.overwrite(true) ]
1.2 ! moko 26: 6. ^show[$a:CLASS]
1.1 moko 27:
28:
29: inheritance check: ^show[$c:CLASS]
30:
31: @show[v]
32: fields: ^json:string[$v]
33: $methods[^reflection:methods[$v.CLASS_NAME; $.reverse(false) ]]
34: ^methods.foreach[name;]{method ${name}:^if(^name.left(6) eq 'method'){ ^v.$name[]}
35: }
36:
37:
38: @CLASS
39: a
40:
41: @auto[]
42: $field[a]
43: $field_a[a specific]
44:
45: @create[]
46: $value[a]
47:
48: @method[]
49: a
50:
51: @method_a[]
52: a specific
53:
54: @mixin[options]
55: ^reflection:mixin[$b:CLASS;$options]
56:
57: @CLASS
58: b
59:
60: @auto[]
61: $field[b]
62: $field_b[b specific]
63:
64: @method[]
65: b
66:
67: @method_b[]
68: b specific
69:
70: @GET_b[]
71: b property "$property"
72:
73: @SET_b[value]
74: $self.property[$value]
75:
76:
77: @CLASS
78: c
79:
80: @BASE
81: a
82:
83: @method_c[]
84: c specific