Compare commits
762 Commits
v0.0.0
...
v13.0.0-38
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9eb1e459f0 | ||
|
|
4091b7d004 | ||
|
|
dfc183643d | ||
|
|
cf8698f2b6 | ||
|
|
3595f14da7 | ||
|
|
c6e671b1d5 | ||
|
|
e4c10fd6b3 | ||
|
|
e70aa09f88 | ||
|
|
7808b143da | ||
|
|
b35092928e | ||
|
|
b7dbcf69d3 | ||
|
|
377df18788 | ||
|
|
26a323733d | ||
|
|
d0d1015074 | ||
|
|
2e3240b379 | ||
|
|
2558652356 | ||
|
|
783cbd63fc | ||
|
|
41be80e751 | ||
|
|
3d6050d8a2 | ||
|
|
3d5ba7b4cc | ||
|
|
415b66607c | ||
|
|
05cd1d0575 | ||
|
|
4edc22bedb | ||
|
|
16f84c67d5 | ||
|
|
290d3c8ffe | ||
|
|
c51e8b46c2 | ||
|
|
0cda1630d2 | ||
|
|
d232b883e9 | ||
|
|
3a0e65403f | ||
|
|
224fff93ba | ||
|
|
4f55e8c655 | ||
|
|
a08624c04e | ||
|
|
9b00929172 | ||
|
|
b94267e14a | ||
|
|
e696304845 | ||
|
|
d503c9d640 | ||
|
|
e5f289506f | ||
|
|
c453593ee7 | ||
|
|
5ed1818de5 | ||
|
|
0310500c4e | ||
|
|
b7defc32e8 | ||
|
|
dbdd49af23 | ||
|
|
b7c05ba133 | ||
|
|
9298903bdb | ||
|
|
d59e30b239 | ||
|
|
d29b83a457 | ||
|
|
0208d83f91 | ||
|
|
c545118637 | ||
|
|
c619aa33d9 | ||
|
|
1dea8f394f | ||
|
|
5cf8d20cf6 | ||
|
|
74f9ceab01 | ||
|
|
ca81cdf3be | ||
|
|
96c6aa2751 | ||
|
|
e6b5e258fb | ||
|
|
e8170a09a7 | ||
|
|
9d1ad8cb28 | ||
|
|
d859fd68fe | ||
|
|
2b7d2ed1e6 | ||
|
|
142a5ada60 | ||
|
|
c92f987496 | ||
|
|
755c9eb16e | ||
|
|
1311c7a0d8 | ||
|
|
4eec8ecdd3 | ||
|
|
0e426f8928 | ||
|
|
82015d5a37 | ||
|
|
d9ee67d2f3 | ||
|
|
791f6c12f0 | ||
|
|
23d019c244 | ||
|
|
c8ca80d15f | ||
|
|
be282c8338 | ||
|
|
829a094c6d | ||
|
|
725273167e | ||
|
|
581264c5e3 | ||
|
|
be537c9f8c | ||
|
|
4028eee39d | ||
|
|
0e3e561ec7 | ||
|
|
7df46cb731 | ||
|
|
40fb16ef32 | ||
|
|
ada5d36cd5 | ||
|
|
f537a43e29 | ||
|
|
3a305fb228 | ||
|
|
1afdab376d | ||
|
|
526c862071 | ||
|
|
fdbb558ce2 | ||
|
|
76ad58bb59 | ||
|
|
c88a813bb0 | ||
|
|
ccf6d86c98 | ||
|
|
6b5c02f1ce | ||
|
|
2be6e935a4 | ||
|
|
0ddf3bf742 | ||
|
|
5f29724578 | ||
|
|
ab6cde07e6 | ||
|
|
0455eaa8ad | ||
|
|
9ed7e15d0f | ||
|
|
6e633d0bd9 | ||
|
|
e16195cb54 | ||
|
|
86c46cf0ec | ||
|
|
8770c8e934 | ||
|
|
7e12ea2db5 | ||
|
|
3ca260e0da | ||
|
|
edb5e4f719 | ||
|
|
be3b8b65ce | ||
|
|
d093ef56c8 | ||
|
|
90b2a895b8 | ||
|
|
4f57c91b82 | ||
|
|
3e1d89253f | ||
|
|
03e1a3fc12 | ||
|
|
5c33f41c30 | ||
|
|
65e8c29b33 | ||
|
|
fed77d532f | ||
|
|
d129184f7b | ||
|
|
a05bb1d4f9 | ||
|
|
65af4963e6 | ||
|
|
4dce0816a6 | ||
|
|
5384bf4faf | ||
|
|
454ac9ba16 | ||
|
|
e2ec53be65 | ||
|
|
aa6edcfd9b | ||
|
|
f31ec9a8b8 | ||
|
|
003fa735a0 | ||
|
|
574f0c3269 | ||
|
|
eb4fb3a225 | ||
|
|
c97130abc4 | ||
|
|
a19cfa1465 | ||
|
|
bb45abbb70 | ||
|
|
67b47fd868 | ||
|
|
2c18b9ffad | ||
|
|
a6b7d76544 | ||
|
|
442ea7ec70 | ||
|
|
747da52c0b | ||
|
|
6c37bd4463 | ||
|
|
dd6c196135 | ||
|
|
252bec0ad2 | ||
|
|
6c8876d282 | ||
|
|
3c317828d1 | ||
|
|
cd3f4a72d6 | ||
|
|
2c852c85c6 | ||
|
|
434ec84837 | ||
|
|
2b618cd83c | ||
|
|
f4327529b9 | ||
|
|
67189f4d44 | ||
|
|
6225fb4dfd | ||
|
|
a7550fe5d3 | ||
|
|
9d9c84f40e | ||
|
|
ae91902de3 | ||
|
|
033d24eee7 | ||
|
|
8abef69aa7 | ||
|
|
7e4dedab38 | ||
|
|
85e488bbe6 | ||
|
|
a6a321da10 | ||
|
|
008764ccdc | ||
|
|
de5f4abe32 | ||
|
|
382d06f6d4 | ||
|
|
66de422749 | ||
|
|
bbf5e39408 | ||
|
|
c8bca15d72 | ||
|
|
a64730e651 | ||
|
|
409a9414f1 | ||
|
|
24facaab09 | ||
|
|
060549f2cb | ||
|
|
dfe3b0b1d1 | ||
|
|
a5506a5ded | ||
|
|
361d4a48e1 | ||
|
|
e23154bec2 | ||
|
|
1682d43c26 | ||
|
|
68c417fe6f | ||
|
|
2ea163a5cf | ||
|
|
020dacdad4 | ||
|
|
42abcc897c | ||
|
|
0a321610aa | ||
|
|
edf47d3491 | ||
|
|
14ee42cad5 | ||
|
|
f990927d3e | ||
|
|
a1cef4662f | ||
|
|
2c343970c4 | ||
|
|
74b41e03e3 | ||
|
|
b242aab955 | ||
|
|
8e4efd9bba | ||
|
|
47d5899058 | ||
|
|
a126a29876 | ||
|
|
4aa720116f | ||
|
|
e29162c3fc | ||
|
|
aa40855953 | ||
|
|
b6545d62fc | ||
|
|
3425d95507 | ||
|
|
53682c17fb | ||
|
|
a492a83f0c | ||
|
|
d340e557c1 | ||
|
|
d5cd9d94d5 | ||
|
|
e1a160b894 | ||
|
|
f996ac83d2 | ||
|
|
922637930f | ||
|
|
ff7e9cdef2 | ||
|
|
f02641deb7 | ||
|
|
f97144356c | ||
|
|
a9fdd5df66 | ||
|
|
e90f241ae0 | ||
|
|
102bef4f92 | ||
|
|
96e9c3c166 | ||
|
|
1080f83990 | ||
|
|
66b6b2a568 | ||
|
|
7415f27fbc | ||
|
|
c9d1f34864 | ||
|
|
34997f940b | ||
|
|
4e9e21e75e | ||
|
|
6c375a37c8 | ||
|
|
cd0cddaf35 | ||
|
|
93c23ddc09 | ||
|
|
480dfdfb77 | ||
|
|
dda2a1ef82 | ||
|
|
f32ff1b613 | ||
|
|
8ab16f4ada | ||
|
|
3fdcf82bcc | ||
|
|
6dd33f4f90 | ||
|
|
0521fac8d8 | ||
|
|
666ab8285c | ||
|
|
675c7f6638 | ||
|
|
463608cb5c | ||
|
|
d1059b5d04 | ||
|
|
8b24284e25 | ||
|
|
08bcdfb008 | ||
|
|
f93d7b1e70 | ||
|
|
4d024883bc | ||
|
|
ecd412c6f6 | ||
|
|
b939cdd086 | ||
|
|
17803266d4 | ||
|
|
f0e88d192c | ||
|
|
e66c0f8a4e | ||
|
|
eba3d590cc | ||
|
|
0b31e63b82 | ||
|
|
d22fbca6cc | ||
|
|
330434ee24 | ||
|
|
2f0216bf89 | ||
|
|
f9d0625bd2 | ||
|
|
7a9d60770a | ||
|
|
059f72ffe1 | ||
|
|
d2d74a64ab | ||
|
|
a1f0140069 | ||
|
|
7bd8e81342 | ||
|
|
34f365cd8f | ||
|
|
b3ba8e7546 | ||
|
|
e1e94bcf5d | ||
|
|
4a83ff8514 | ||
|
|
4078020afd | ||
|
|
e31d5e0e1d | ||
|
|
acbc884eb5 | ||
|
|
f9315288d0 | ||
|
|
3b0d0343f4 | ||
|
|
74c881bb5b | ||
|
|
63f8a891be | ||
|
|
2083cdb6b0 | ||
|
|
2091392031 | ||
|
|
3dc67e075b | ||
|
|
81e72126ce | ||
|
|
e77a753708 | ||
|
|
bc856a09f5 | ||
|
|
f7ae62a906 | ||
|
|
6669be104e | ||
|
|
14d59de2bd | ||
|
|
483d2c78aa | ||
|
|
5b835563c8 | ||
|
|
996566419c | ||
|
|
5d6a9872e2 | ||
|
|
8930865a21 | ||
|
|
2897695680 | ||
|
|
5118f02b49 | ||
|
|
a10933beef | ||
|
|
c2ffe0b697 | ||
|
|
2d1a7b067b | ||
|
|
2675f0277c | ||
|
|
918bc334b2 | ||
|
|
accf0dbafb | ||
|
|
6b8ce0ab4f | ||
|
|
71bf6438e1 | ||
|
|
90b7b01e9a | ||
|
|
895ec86ff6 | ||
|
|
bffd130b92 | ||
|
|
feae0d51bd | ||
|
|
f46c8df605 | ||
|
|
82025c5de9 | ||
|
|
153ec811e2 | ||
|
|
01031d27c3 | ||
|
|
c72f62ecb6 | ||
|
|
e1df1a7a12 | ||
|
|
a7f845f553 | ||
|
|
20321c8a7d | ||
|
|
f3fadd3895 | ||
|
|
08a79d0e7b | ||
|
|
5b21104da3 | ||
|
|
ecc2aef0f8 | ||
|
|
1c32067908 | ||
|
|
fe75ed6208 | ||
|
|
c2404b1e98 | ||
|
|
f363e1e9fc | ||
|
|
749514c074 | ||
|
|
24f8616386 | ||
|
|
d4ee8af772 | ||
|
|
83a42271ad | ||
|
|
88971b4e69 | ||
|
|
f844dcbc1e | ||
|
|
c9c00b5a08 | ||
|
|
d79e3102fc | ||
|
|
ba4f444f32 | ||
|
|
effc2fe576 | ||
|
|
f9a54626b1 | ||
|
|
808a07d218 | ||
|
|
afbe81a602 | ||
|
|
2883947641 | ||
|
|
1c15edd332 | ||
|
|
214380c3ca | ||
|
|
ecbf03ab10 | ||
|
|
5aedddeea3 | ||
|
|
babdb765c5 | ||
|
|
43b4d59f9b | ||
|
|
64a5fae838 | ||
|
|
5036053d9c | ||
|
|
0ec249d388 | ||
|
|
be68a25904 | ||
|
|
fc92b12e85 | ||
|
|
e35f4d19f3 | ||
|
|
6d3c4b21fb | ||
|
|
339590f49e | ||
|
|
429c1f83c1 | ||
|
|
03bab63358 | ||
|
|
06ef22b8ca | ||
|
|
f579a436c7 | ||
|
|
da7e67d97d | ||
|
|
bd54a43a33 | ||
|
|
68c21131d3 | ||
|
|
3826d9b592 | ||
|
|
fa9ff669e4 | ||
|
|
bca7477ca5 | ||
|
|
b40b7e10ab | ||
|
|
d20141fec1 | ||
|
|
5f2a81d064 | ||
|
|
56ba55cbab | ||
|
|
7be262e9f3 | ||
|
|
1da76dbc20 | ||
|
|
8924c3e163 | ||
|
|
608b5e3319 | ||
|
|
d532fc530f | ||
|
|
a5760a45bb | ||
|
|
437955ba84 | ||
|
|
dab72be87f | ||
|
|
89a6ec374e | ||
|
|
4b6352b11a | ||
|
|
31d2a231e3 | ||
|
|
6b1cf18822 | ||
|
|
39dc2317b7 | ||
|
|
38bf398709 | ||
|
|
364ed325b0 | ||
|
|
1b3f5443b3 | ||
|
|
37ac7787d0 | ||
|
|
8e4cf83330 | ||
|
|
5524ab9c20 | ||
|
|
65dc716936 | ||
|
|
5b7a4482cf | ||
|
|
cfa089f7cf | ||
|
|
190442a58d | ||
|
|
0398b5260a | ||
|
|
8544c16771 | ||
|
|
a5f55359c3 | ||
|
|
102555a3b0 | ||
|
|
ece8268e44 | ||
|
|
dd279bccf7 | ||
|
|
7e046e0753 | ||
|
|
51a834d6c9 | ||
|
|
a33d0bf7bc | ||
|
|
fd6a28eb25 | ||
|
|
579fd52455 | ||
|
|
8cfc9d41c3 | ||
|
|
bdf290adb2 | ||
|
|
98d87cb26d | ||
|
|
fbbfa9fd47 | ||
|
|
72bd0d9c3a | ||
|
|
3dbeb2c415 | ||
|
|
2a9fd96958 | ||
|
|
9d34ccfdbc | ||
|
|
7753994e36 | ||
|
|
709779425c | ||
|
|
334db3234b | ||
|
|
0db7fe5d46 | ||
|
|
3a55ca4f21 | ||
|
|
8d14a9cbba | ||
|
|
f6c5051472 | ||
|
|
eff6fb1cc5 | ||
|
|
0ebfae6997 | ||
|
|
e9c40f9a83 | ||
|
|
da2762edf5 | ||
|
|
bd9c3813fd | ||
|
|
940a44bb7c | ||
|
|
aa2e7fd917 | ||
|
|
9fc55f5386 | ||
|
|
8ee563f873 | ||
|
|
5fcfbbfe94 | ||
|
|
8870fdc495 | ||
|
|
58a612eaa1 | ||
|
|
ae12b087e7 | ||
|
|
528dbc6e5a | ||
|
|
1deb453cc5 | ||
|
|
099297ebdf | ||
|
|
3faeb628fd | ||
|
|
d1e30c5040 | ||
|
|
fa45ce04ef | ||
|
|
2d20fd59d0 | ||
|
|
08d07796ee | ||
|
|
010d0d684e | ||
|
|
6dc347642b | ||
|
|
138afe39dc | ||
|
|
0832be2380 | ||
|
|
8a2a184f30 | ||
|
|
4882e77fdd | ||
|
|
78f4f6f5b9 | ||
|
|
317f7f19bb | ||
|
|
00f58ba68f | ||
|
|
029a169114 | ||
|
|
f58889a05d | ||
|
|
e9ac59dcf8 | ||
|
|
57cf20555f | ||
|
|
805ed3b577 | ||
|
|
2a0d5c0cd7 | ||
|
|
13ed66c326 | ||
|
|
1c35198839 | ||
|
|
a7021b9212 | ||
|
|
1fa1f1a668 | ||
|
|
243e62e320 | ||
|
|
15e933ee5b | ||
|
|
605e1052ac | ||
|
|
16c00525d1 | ||
|
|
e9da461625 | ||
|
|
a071c07ee2 | ||
|
|
8dad4f6ed4 | ||
|
|
0980609cc9 | ||
|
|
29f3f3f722 | ||
|
|
04139d3b7e | ||
|
|
45814c4e00 | ||
|
|
cf365b8902 | ||
|
|
aff10fa4db | ||
|
|
181595293f | ||
|
|
ee133ef334 | ||
|
|
661232f23c | ||
|
|
541a93d152 | ||
|
|
d6e1cd42a2 | ||
|
|
51e20fb9c7 | ||
|
|
e32aef4c9f | ||
|
|
9c4074e3e3 | ||
|
|
aadef59934 | ||
|
|
6a13419c62 | ||
|
|
1ace3e3120 | ||
|
|
c95dae3c33 | ||
|
|
82e2254302 | ||
|
|
6e9f990d5c | ||
|
|
7d4adf314d | ||
|
|
8745fd64ca | ||
|
|
638c575dfc | ||
|
|
acf8d37616 | ||
|
|
ae8be1ec6b | ||
|
|
a5f76cee84 | ||
|
|
2013266d56 | ||
|
|
b08aeee4fc | ||
|
|
183f30878e | ||
|
|
5e4c56af29 | ||
|
|
13bef69be4 | ||
|
|
b1d70ef25e | ||
|
|
6f3a291ef5 | ||
|
|
2a601ac6f6 | ||
|
|
82b3e50d49 | ||
|
|
4bfe484fc2 | ||
|
|
b9e21665e2 | ||
|
|
06e7caab2d | ||
|
|
c8ded24842 | ||
|
|
dae0f71cbc | ||
|
|
81c601c65f | ||
|
|
56165a3c10 | ||
|
|
5e0d602e12 | ||
|
|
420821be31 | ||
|
|
d1fda080d9 | ||
|
|
dd5e2adc87 | ||
|
|
ee983ceff6 | ||
|
|
ee116b8ca4 | ||
|
|
d4ef54358b | ||
|
|
ebc628adfc | ||
|
|
4563ccc98e | ||
|
|
a4f7f5c987 | ||
|
|
4a7f09c32d | ||
|
|
f78dc52d7b | ||
|
|
f9f8228db6 | ||
|
|
60b75d1862 | ||
|
|
9b3fe2f197 | ||
|
|
6b153896dd | ||
|
|
66a7d2720d | ||
|
|
d50d34dc12 | ||
|
|
8cc374cabb | ||
|
|
8e9e62b3d0 | ||
|
|
9b45a78e58 | ||
|
|
f862fae473 | ||
|
|
0493d99d57 | ||
|
|
a1026bc365 | ||
|
|
fe4564542b | ||
|
|
7b52111c31 | ||
|
|
c184cb961b | ||
|
|
02f2f6b0fe | ||
|
|
e47dee53a3 | ||
|
|
9b6183ea70 | ||
|
|
79ec71d559 | ||
|
|
bf4d5f24a8 | ||
|
|
9d0373b85b | ||
|
|
f8ad9abcc0 | ||
|
|
b25977be06 | ||
|
|
bffbb6ca27 | ||
|
|
8f63147dbc | ||
|
|
7a274565e5 | ||
|
|
75793d0ced | ||
|
|
7ec409e09f | ||
|
|
fec03dc6e1 | ||
|
|
3142b0f161 | ||
|
|
042bcee482 | ||
|
|
b3e09d001f | ||
|
|
dcec0fe967 | ||
|
|
ae790b6947 | ||
|
|
4b08cbe875 | ||
|
|
01173879a0 | ||
|
|
6f99ee5c34 | ||
|
|
8d1bccbea0 | ||
|
|
b6c278f8e4 | ||
|
|
5a9f59913e | ||
|
|
bf493216a2 | ||
|
|
d37d0ef9af | ||
|
|
c7a6e74dd9 | ||
|
|
24570b791a | ||
|
|
f99853529e | ||
|
|
159f37474d | ||
|
|
1b63f5efde | ||
|
|
c3ba8173d7 | ||
|
|
7a89c1cc6d | ||
|
|
c5b47e88ac | ||
|
|
dc3c6a5d42 | ||
|
|
a9c2ec6ba0 | ||
|
|
f166b9efc5 | ||
|
|
0441b83f74 | ||
|
|
90c82a6a02 | ||
|
|
da25905b73 | ||
|
|
3c07a938cd | ||
|
|
55ccacc442 | ||
|
|
946a11f03d | ||
|
|
93f3a49396 | ||
|
|
3eed100b8d | ||
|
|
eb136ae1bf | ||
|
|
006d0a2643 | ||
|
|
7959bdf5ac | ||
|
|
6f9ee0d9ba | ||
|
|
d901d5f5e4 | ||
|
|
b2c7706a2e | ||
|
|
4d926cf841 | ||
|
|
0314a1b709 | ||
|
|
8a5b69e86c | ||
|
|
ce5250b9d8 | ||
|
|
f51c791490 | ||
|
|
b75305a082 | ||
|
|
8d80fd5614 | ||
|
|
bad6c913fc | ||
|
|
85d85540e7 | ||
|
|
80f1cfd21b | ||
|
|
729d7ed3aa | ||
|
|
0a89150fab | ||
|
|
6fc33e40bb | ||
|
|
7f6592a6b7 | ||
|
|
b9cdbcc6fa | ||
|
|
2a78cdba48 | ||
|
|
b02662c36e | ||
|
|
f44f463e9d | ||
|
|
757bb118ce | ||
|
|
5417ffb999 | ||
|
|
4de979bc33 | ||
|
|
875f56586e | ||
|
|
249b712648 | ||
|
|
58cefae839 | ||
|
|
d9c5ab5fa8 | ||
|
|
6d99ed07f0 | ||
|
|
e55ed9f2b4 | ||
|
|
bb0bfcc5c8 | ||
|
|
b24de43fe2 | ||
|
|
446560d9e8 | ||
|
|
148e46f043 | ||
|
|
e8f20dabd3 | ||
|
|
96ed8b0f98 | ||
|
|
c663230c1b | ||
|
|
0a8118367d | ||
|
|
f932f560bd | ||
|
|
f9542b90db | ||
|
|
014495febd | ||
|
|
82f11c421f | ||
|
|
9059618d1f | ||
|
|
9a8f8fba05 | ||
|
|
3ba89edf7d | ||
|
|
fea6de3bf9 | ||
|
|
2a644f2f0c | ||
|
|
f189ae11b0 | ||
|
|
2e9f8f6d03 | ||
|
|
860934de06 | ||
|
|
792440a71d | ||
|
|
1aacc0e967 | ||
|
|
d4b0c8cbbd | ||
|
|
d6526f12fb | ||
|
|
d3af98cd17 | ||
|
|
e33eb6a928 | ||
|
|
d1be152983 | ||
|
|
548a77833a | ||
|
|
5ba0a7492a | ||
|
|
c65f11b308 | ||
|
|
77b83cae2a | ||
|
|
f609c22be8 | ||
|
|
670854e9d8 | ||
|
|
2bb7ba03cd | ||
|
|
686be484fc | ||
|
|
60de3ce5b0 | ||
|
|
b6fe47efe1 | ||
|
|
e5f16812b3 | ||
|
|
3eb933400a | ||
|
|
58a479be9b | ||
|
|
f835a72151 | ||
|
|
50fa81d191 | ||
|
|
93e75e0111 | ||
|
|
cbcdebf33e | ||
|
|
7c842efd52 | ||
|
|
60daa082f7 | ||
|
|
5681ba84bf | ||
|
|
978203d73e | ||
|
|
d5c7d51dc4 | ||
|
|
bba92f6a73 | ||
|
|
31e80f0727 | ||
|
|
f23bb36635 | ||
|
|
b39e9d6450 | ||
|
|
d93aa8a2ba | ||
|
|
672696ef86 | ||
|
|
7c81dceb23 | ||
|
|
592a0969d3 | ||
|
|
00458bab58 | ||
|
|
bc1c1f7bcf | ||
|
|
ed392e72ae | ||
|
|
fb68550e2c | ||
|
|
08fe014f9b | ||
|
|
9f9ba33428 | ||
|
|
0421b1ab6a | ||
|
|
bec7d107bd | ||
|
|
54844f4535 | ||
|
|
02d0ace241 | ||
|
|
bab4bcc94b | ||
|
|
e54402e842 | ||
|
|
f1f710b269 | ||
|
|
b647b2af58 | ||
|
|
6b46500325 | ||
|
|
3f2ab5cdfe | ||
|
|
ef9e183138 | ||
|
|
a1b07f84ea | ||
|
|
af3cd2361a | ||
|
|
d898136f64 | ||
|
|
d2fa906b50 | ||
|
|
17a752c93e | ||
|
|
e73829f73b | ||
|
|
877365d00c | ||
|
|
6790355232 | ||
|
|
fd1128d456 | ||
|
|
2f47ad9e3a | ||
|
|
cacfb54d5e | ||
|
|
21f7350c4d | ||
|
|
584964153c | ||
|
|
2cf899418a | ||
|
|
7696864841 | ||
|
|
9b582fc795 | ||
|
|
d4bb2dc173 | ||
|
|
e1900e8561 | ||
|
|
03925ab32f | ||
|
|
6965678581 | ||
|
|
df838fa1a6 | ||
|
|
94e66af751 | ||
|
|
ee516a6271 | ||
|
|
84601c2b94 | ||
|
|
bab06e9f3d | ||
|
|
be814f8f8c | ||
|
|
ee7c5e4bad | ||
|
|
590c5ea900 | ||
|
|
3c21fd08b7 | ||
|
|
d2f16eaa87 | ||
|
|
98e582c413 | ||
|
|
693f9bab67 | ||
|
|
6caab5e853 | ||
|
|
530210ca63 | ||
|
|
3415d0ee5e | ||
|
|
968e07a8ff | ||
|
|
1455933abb | ||
|
|
eb3afe9106 | ||
|
|
1e73381863 | ||
|
|
5cb7951d44 | ||
|
|
631bf47a96 | ||
|
|
51b5294e3c | ||
|
|
607d442abc | ||
|
|
6623bd6134 | ||
|
|
c337f37665 | ||
|
|
8fcd8f6809 | ||
|
|
03d652f70b | ||
|
|
98b1a8f660 | ||
|
|
09cd9f3394 | ||
|
|
12e8768c31 | ||
|
|
93a04c8e23 | ||
|
|
977e4d2a7c | ||
|
|
4da6efd634 | ||
|
|
b750d95b98 | ||
|
|
68c17f1876 | ||
|
|
b03f477a3f | ||
|
|
f444b25ac9 | ||
|
|
86849ae8b1 | ||
|
|
77739deda3 | ||
|
|
ad5898a77a | ||
|
|
465a2f18e6 | ||
|
|
974d2ba0de | ||
|
|
9e6c238870 | ||
|
|
d8a4d8613e | ||
|
|
f4fdfda9ba | ||
|
|
2f73c499d3 | ||
|
|
6ea027b8c0 | ||
|
|
a39767723f | ||
|
|
a998f81211 | ||
|
|
9d871adb00 | ||
|
|
71c01fbb9e | ||
|
|
e6b5706aad | ||
|
|
a7dffa6ce9 | ||
|
|
671174e17f | ||
|
|
92e23b7007 | ||
|
|
9a1b0b7ced | ||
|
|
bb18c8d0f4 | ||
|
|
c40fe0e0b7 | ||
|
|
e9783c8a25 | ||
|
|
8aa5dc9866 | ||
|
|
c27618bc0a | ||
|
|
4ebd362a2b | ||
|
|
339908d1de | ||
|
|
d8a7367c20 | ||
|
|
9d61dd87fc | ||
|
|
f348ca8f5e | ||
|
|
79eb0ae3b4 | ||
|
|
0c610e4551 | ||
|
|
716fbd40d8 | ||
|
|
c6ca102bce | ||
|
|
5ce4fbe950 | ||
|
|
184f0efdff | ||
|
|
2a10fe45fa | ||
|
|
eb541fd473 | ||
|
|
a637633a1c | ||
|
|
089ae137dc | ||
|
|
6bbee4ef40 | ||
|
|
2f0d902b1a | ||
|
|
1039f169c3 | ||
|
|
3f5f3cae97 | ||
|
|
de399bf7b7 | ||
|
|
a13a79b791 | ||
|
|
0cc265ac65 | ||
|
|
dfd7cc567d | ||
|
|
28b48de454 | ||
|
|
49f56859ae | ||
|
|
b340bbe806 |
12
.babelrc
Normal file
12
.babelrc
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"presets": [
|
||||
["latest", {
|
||||
"es2015": {
|
||||
"modules": false
|
||||
}
|
||||
}]
|
||||
],
|
||||
"plugins": [
|
||||
"external-helpers"
|
||||
]
|
||||
}
|
||||
14
.flowconfig
Normal file
14
.flowconfig
Normal file
@@ -0,0 +1,14 @@
|
||||
[ignore]
|
||||
.*/node_modules/.*
|
||||
.*/dist/.*
|
||||
.*/build/.*
|
||||
|
||||
[include]
|
||||
./src/
|
||||
./tests-lib/
|
||||
./test/
|
||||
|
||||
[libs]
|
||||
./declarations/
|
||||
|
||||
[options]
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
/node_modules/
|
||||
.kateproject.d
|
||||
.kateproject
|
||||
.directory
|
||||
node_modules
|
||||
bower_components
|
||||
/y.*
|
||||
/examples/yjs-dist.js*
|
||||
|
||||
135
Gruntfile.coffee
135
Gruntfile.coffee
@@ -1,135 +0,0 @@
|
||||
"use strict"
|
||||
module.exports = (grunt) ->
|
||||
|
||||
# Project configuration.
|
||||
grunt.initConfig
|
||||
coffee:
|
||||
lib:
|
||||
options:
|
||||
bare: true
|
||||
sourceMap: true
|
||||
expand: true
|
||||
src: ["lib/**/*.coffee"]
|
||||
dest: "dest/"
|
||||
ext: ".js"
|
||||
test:
|
||||
#options:
|
||||
#bare: true
|
||||
expand: true
|
||||
src: ["test/**/*.coffee"]
|
||||
dest: "dest/"
|
||||
ext: ".js"
|
||||
|
||||
watch:
|
||||
lib:
|
||||
files: [
|
||||
"<%= coffee.lib.src %>"
|
||||
]
|
||||
tasks: ["coffee:lib"]
|
||||
test:
|
||||
files: [
|
||||
"<%= coffee.lib.src %>"
|
||||
"<%= coffee.test.src %>"
|
||||
"examples/*"
|
||||
]
|
||||
tasks: ["build"]
|
||||
|
||||
simplemocha:
|
||||
all:
|
||||
src: ['test/**/*.coffee']
|
||||
options:
|
||||
timeout: 9999999
|
||||
ignoreLeaks: false
|
||||
ui: 'bdd'
|
||||
reporter: 'list'
|
||||
compilers: 'coffee:coffee-script'
|
||||
|
||||
pkg: grunt.file.readJSON('package.json')
|
||||
|
||||
coffeelint:
|
||||
app: [
|
||||
'lib/**/*.coffee'
|
||||
'test/**/.coffee'
|
||||
"Gruntfile.coffee"
|
||||
]
|
||||
options:
|
||||
"indentation":
|
||||
"level": "ignore"
|
||||
"no_trailing_whitespace":
|
||||
"level": "warn"
|
||||
"max_line_length":
|
||||
"level": "ignore"
|
||||
#"line_endings":
|
||||
# "level": "error"
|
||||
codo:
|
||||
options:
|
||||
name: "Yatta!"
|
||||
title: "Yatta! Documentation"
|
||||
extras: ["LICENSE.txt", "examples/README.md", "examples/IwcJson.md"]
|
||||
#undocumented: yes
|
||||
verbose: false
|
||||
stats: true
|
||||
src: ["./lib"]
|
||||
browserify:
|
||||
dest:
|
||||
files:
|
||||
'dest/browser/test/Yatta_test.js': ['test/**/*.coffee']
|
||||
options:
|
||||
transform: ['coffeeify']
|
||||
debug: true
|
||||
bundleOptions: {debug: true}
|
||||
# Serve files via http-server
|
||||
lib:
|
||||
files:
|
||||
'dest/browser/Frameworks/JsonIwcYatta.js': ['./lib/Frameworks/JsonYatta.coffee', './lib/Connectors/IwcConnector.coffee']
|
||||
options:
|
||||
transform: ['coffeeify']
|
||||
debug: false
|
||||
bundleOptions: {debug: false}
|
||||
uglify:
|
||||
browser:
|
||||
files: [
|
||||
expand: true
|
||||
cwd: './dest/browser/'
|
||||
src: '**/*.js'
|
||||
dest: './dest/browser'
|
||||
ext: '.min.js'
|
||||
]
|
||||
connect:
|
||||
server:
|
||||
options:
|
||||
hostname: '*'
|
||||
port: 1337
|
||||
base: './'
|
||||
keepalive: true
|
||||
middleware: (connect, options, middlewares)->
|
||||
middlewares.push (req, res, next)->
|
||||
if res.header?
|
||||
res.header('Access-Control-Allow-Origin', "*")
|
||||
res.header('Access-Control-Allow-Credentials', true)
|
||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
|
||||
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
|
||||
res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0')
|
||||
return next()
|
||||
return middlewares
|
||||
literate:
|
||||
"examples/IwcJson.md": "examples/IwcJson.js"
|
||||
options:
|
||||
code: true
|
||||
|
||||
# These plugins provide necessary tasks.
|
||||
grunt.loadNpmTasks "grunt-browserify"
|
||||
grunt.loadNpmTasks "grunt-contrib-uglify"
|
||||
grunt.loadNpmTasks "grunt-contrib-coffee"
|
||||
grunt.loadNpmTasks 'grunt-contrib-connect'
|
||||
grunt.loadNpmTasks "grunt-contrib-watch"
|
||||
grunt.loadNpmTasks "grunt-literate"
|
||||
grunt.loadNpmTasks "grunt-simple-mocha"
|
||||
grunt.loadNpmTasks "grunt-coffeelint"
|
||||
grunt.loadNpmTasks "grunt-codo"
|
||||
|
||||
grunt.registerTask "build", ["coffeelint", "codo", "browserify", "test"]
|
||||
grunt.registerTask "production", ["test", "coffee","coffeelint", "literate", "browserify", "uglify", "codo"]
|
||||
grunt.registerTask "default", ["build", "watch"]
|
||||
grunt.registerTask "production", ["coffee"]
|
||||
grunt.registerTask "test", ["simplemocha"]
|
||||
@@ -1,6 +1,8 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Kevin Jahns.
|
||||
Copyright (c) 2014
|
||||
- Kevin Jahns <kevin.jahns@rwth-aachen.de>.
|
||||
- Chair of Computer Science 5 (Databases & Information Systems), RWTH Aachen University, Germany
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
311
README.md
311
README.md
@@ -1,68 +1,295 @@
|
||||
|
||||
# 
|
||||
# 
|
||||
|
||||
A real-time web framework that manages concurrency control for arbitrary data structures and is _not_ based on Operational Transformation.
|
||||
Yatta! provides similar functionality as [ShareJs](https://github.com/share/ShareJS) and [OpenCoweb](https://github.com/opencoweb/coweb)
|
||||
but does not require you to understand how the internals work. The predefined data structures provide a simple API to access your shared data structures.
|
||||
Yjs is a framework for offline-first p2p shared editing on structured data like
|
||||
text, richtext, json, or XML. It is fairly easy to get started, as Yjs hides
|
||||
most of the complexity of concurrent editing. For additional information, demos,
|
||||
and tutorials visit [y-js.org](http://y-js.org/).
|
||||
|
||||
Predefined data structures:
|
||||
* Text
|
||||
* Json - [example](./examples/IwcJson.md)
|
||||
* XML (coming soon)
|
||||
### Extensions
|
||||
Yjs only knows how to resolve conflicts on shared data. You have to choose a ..
|
||||
* *Connector* - a communication protocol that propagates changes to the clients
|
||||
* *Database* - a database to store your changes
|
||||
* one or more *Types* - that represent the shared data
|
||||
|
||||
Unlike other frameworks, Yatta! supports P2P message propagation and is not bound to a specific communication protocol.
|
||||
Connectors, Databases, and Types are available as modules that extend Yjs. Here
|
||||
is a list of the modules we know of:
|
||||
|
||||
Currently supported communication protocols:
|
||||
* [IWC](http://dbis.rwth-aachen.de/gadgets/iwc/resources/iwc.manual.pdf) - Inter-widget Communication
|
||||
##### Connectors
|
||||
|
||||
|Name | Description |
|
||||
|----------------|-----------------------------------|
|
||||
|[webrtc](https://github.com/y-js/y-webrtc) | Propagate updates Browser2Browser via WebRTC|
|
||||
|[websockets](https://github.com/y-js/y-websockets-client) | Set up [a central server](https://github.com/y-js/y-websockets-client), and connect to it via websockets |
|
||||
|[xmpp](https://github.com/y-js/y-xmpp) | Propagate updates in a XMPP multi-user-chat room ([XEP-0045](http://xmpp.org/extensions/xep-0045.html))|
|
||||
|[ipfs](https://github.com/ipfs-labs/y-ipfs-connector) | Connector for the [Interplanetary File System](https://ipfs.io/)!|
|
||||
|[test](https://github.com/y-js/y-test) | A Connector for testing purposes. It is designed to simulate delays that happen in worst case scenarios|
|
||||
|
||||
##### Database adapters
|
||||
|
||||
|Name | Description |
|
||||
|----------------|-----------------------------------|
|
||||
|[memory](https://github.com/y-js/y-memory) | In-memory storage. |
|
||||
|[indexeddb](https://github.com/y-js/y-indexeddb) | Offline storage for the browser |
|
||||
|[leveldb](https://github.com/y-js/y-leveldb) | Persistent storage for node apps |
|
||||
|
||||
|
||||
# Use it!
|
||||
Either clone this git repository or install this package with [bower](http://bower.io/).
|
||||
##### Types
|
||||
|
||||
| Name | Description |
|
||||
|----------|-------------------|
|
||||
|[map](https://github.com/y-js/y-map) | A shared Map implementation. Maps from text to any stringify-able object |
|
||||
|[array](https://github.com/y-js/y-array) | A shared Array implementation |
|
||||
|[xml](https://github.com/y-js/y-xml) | An implementation of the DOM. You can create a two way binding to Browser DOM objects |
|
||||
|[text](https://github.com/y-js/y-text) | Collaborate on text. Supports two way binding to the [Ace Editor](https://ace.c9.io), [CodeMirror](https://codemirror.net/), [Monaco](https://github.com/Microsoft/monaco-editor), textareas, input elements, and HTML elements (e.g. <*h1*>, or <*p*>) |
|
||||
|[richtext](https://github.com/y-js/y-richtext) | Collaborate on rich text. Supports two way binding to the [Quill Rich Text Editor](http://quilljs.com/)|
|
||||
|
||||
##### Other
|
||||
|
||||
| Name | Description |
|
||||
|-----------|-------------------|
|
||||
|[y-element](http://y-js.org/y-element/) | Yjs Polymer Element |
|
||||
|
||||
## Use it!
|
||||
Install Yjs, and its modules with [bower](http://bower.io/), or
|
||||
[npm](https://www.npmjs.org/package/yjs).
|
||||
|
||||
### Bower
|
||||
```
|
||||
bower install Yatta
|
||||
bower install --save yjs y-array % add all y-* modules you want to use
|
||||
```
|
||||
You only need to include the `y.js` file. Yjs is able to automatically require
|
||||
missing modules.
|
||||
```
|
||||
<script src="./bower_components/yjs/y.js"></script>
|
||||
```
|
||||
|
||||
Use the [examples](./examples/README.md) to struggle your way through this mess..
|
||||
### Npm
|
||||
```
|
||||
npm install --save yjs % add all y-* modules you want to use
|
||||
```
|
||||
|
||||
# About
|
||||
Find out more about the concurrent editing problem here
|
||||
[Cooperation, Concurrency, Conflicts, and Convergence](http://opencoweb.org/ocwdocs/intro/openg.html) and here
|
||||
[Operational Transformation (OT)](http://en.wikipedia.org/wiki/Operational_transformation)
|
||||
If you don't include via script tag, you have to explicitly include all modules!
|
||||
(Same goes for other module systems)
|
||||
```
|
||||
var Y = require('yjs')
|
||||
require('y-array')(Y) // add the y-array type to Yjs
|
||||
require('y-websockets-client')(Y)
|
||||
require('y-memory')(Y)
|
||||
require('y-array')(Y)
|
||||
require('y-map')(Y)
|
||||
require('y-text')(Y)
|
||||
// ..
|
||||
// do the same for all modules you want to use
|
||||
```
|
||||
|
||||
My Bachelor Thesis project aim was to develop a P2P OT Framework that enables collaboration on XML documents and supports
|
||||
[Intention Preservation](http://www3.ntu.edu.sg/home/czsun/projects/otfaq/#intentionPreservation).
|
||||
After some time I realized that OT has significant drawbacks in P2P environments.
|
||||
### ES6 Syntax
|
||||
```
|
||||
import Y from 'yjs'
|
||||
import yArray from 'y-array'
|
||||
import yWebsocketsClient from 'y-webrtc'
|
||||
import yMemory from 'y-memory'
|
||||
import yArray from 'y-array'
|
||||
import yMap from 'y-map'
|
||||
import yText from 'y-text'
|
||||
// ..
|
||||
Y.extend(yArray, yWebsocketsClient, yMemory, yArray, yMap, yText /*, .. */)
|
||||
```
|
||||
|
||||
With my gained experiences I came up with a new approach. I named it Yata - Yet Another Transformation Approach.
|
||||
It enables concurrent editing with the following space and time properties:
|
||||
* Time complexity: O(S), whereby S is the number of operations that are inserted concurrently at the same position. This means that my approach does not transform against operations that happen on other positions.
|
||||
* Space complexity = O(|Document|), whereby |Document| is the size of the shared document. Depending on the used data structure, Yata may needs 4*|Document| of space.
|
||||
# Text editing example
|
||||
Install dependencies
|
||||
```
|
||||
bower i yjs y-memory y-webrtc y-array y-text
|
||||
```
|
||||
|
||||
This means that my approach beats all OT time complexities. Furthermore, it is possible to make a very strict definition of Intention Preservation, and I was able to
|
||||
show that it is never violated.
|
||||
Here is a simple example of a shared textarea
|
||||
```HTML
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<script src="./bower_components/yjs/y.js"></script>
|
||||
<!-- Yjs automatically includes all missing dependencies (browser only) -->
|
||||
<script>
|
||||
Y({
|
||||
db: {
|
||||
name: 'memory' // use memory database adapter.
|
||||
// name: 'indexeddb' // use indexeddb database adapter instead for offline apps
|
||||
},
|
||||
connector: {
|
||||
name: 'webrtc', // use webrtc connector
|
||||
// name: 'websockets-client'
|
||||
// name: 'xmpp'
|
||||
room: 'my-room' // clients connecting to the same room share data
|
||||
},
|
||||
sourceDir: '/bower_components', // location of the y-* modules (browser only)
|
||||
share: {
|
||||
textarea: 'Text' // y.share.textarea is of type y-text
|
||||
}
|
||||
}).then(function (y) {
|
||||
// The Yjs instance `y` is available
|
||||
// y.share.* contains the shared types
|
||||
|
||||
Another advantage of my approach is that propagated messages are very small.
|
||||
Background: In real-time P2P OT algorithms you have to send a state-vector with every message that defines the state of the History Buffer
|
||||
on which the operation was created. This is not necessary in Yata.
|
||||
// Bind `y.share.textarea` to `<textarea/>`
|
||||
y.share.textarea.bind(document.querySelector('textarea'))
|
||||
})
|
||||
</script>
|
||||
<textarea></textarea>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
One downside is that the History Buffer holds at least as many operations as there are characters in the document.
|
||||
In contrast, an OT algorithm can have an empty History Buffer while the document size is very big.
|
||||
## Get Help & Give Help
|
||||
There are some friendly people on [](https://gitter.im/y-js/yjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) who are eager to help, and answer questions. Please join!
|
||||
|
||||
So, how did I come up with the name for the implementation (Yatta! is not Yata)?
|
||||
Yatta! means "I did it!" in Japanese. You scream it when you accomplish something (for proper application I refer to the Yatta-man in [Heroes](http://heroeswiki.com/Yatta!)).
|
||||
There is also this awesome video on the Internet that will change your life [Yatta](https://www.youtube.com/watch?v=kL5DDSglM_s).
|
||||
Report _any_ issues to the
|
||||
[Github issue page](https://github.com/y-js/yjs/issues)! I try to fix them very
|
||||
soon, if possible.
|
||||
|
||||
# Status
|
||||
Yatta! is still in an early development phase.
|
||||
# API
|
||||
|
||||
# Support
|
||||
Please report any issues to the [Github issue page](https://github.com/DadaMonad/Yatta/issues)!
|
||||
### Y(options)
|
||||
* Y.extend(module1, module2, ..)
|
||||
* Add extensions to Y
|
||||
* `Y.extend(require('y-webrtc'))` has the same semantics as
|
||||
`require('y-webrtc')(Y)`
|
||||
* options.db
|
||||
* Will be forwarded to the database adapter. Specify the database adaper on
|
||||
`options.db.name`.
|
||||
* Have a look at the used database adapter repository to see all available
|
||||
options.
|
||||
* options.connector
|
||||
* Will be forwarded to the connector adapter. Specify the connector adaper on
|
||||
`options.connector.name`.
|
||||
* All our connectors implement a `room` property. Clients that specify the
|
||||
same room share the same data.
|
||||
* All of our connectors specify an `url` property that defines the connection
|
||||
endpoint of the used connector.
|
||||
* All of our connectors also have a default connection endpoint that you can
|
||||
use for development.
|
||||
* Set `options.connector.generateUserId = true` in order to genenerate a
|
||||
userid, instead of receiving one from the server. This way the `Y(..)` is
|
||||
immediately going to be resolved, without waiting for any confirmation from
|
||||
the server. Use with caution.
|
||||
* Have a look at the used connector repository to see all available options.
|
||||
* *Only if you know what you are doing:* Set
|
||||
`options.connector.preferUntransformed = true` in order receive the shared
|
||||
data untransformed. This is very efficient as the database content is simply
|
||||
copied to this client. This does only work if this client receives content
|
||||
from only one client.
|
||||
* options.sourceDir (browser only)
|
||||
* Path where all y-* modules are stored
|
||||
* Defaults to `/bower_components`
|
||||
* Not required when running on `nodejs` / `iojs`
|
||||
* When using nodejs you need to manually extend Yjs:
|
||||
```
|
||||
var Y = require('yjs')
|
||||
// you have to require a db, connector, and *all* types you use!
|
||||
require('y-memory')(Y)
|
||||
require('y-webrtc')(Y)
|
||||
require('y-map')(Y)
|
||||
// ..
|
||||
```
|
||||
* options.share
|
||||
* Specify on `options.share[arbitraryName]` types that are shared among all
|
||||
users.
|
||||
* E.g. Specify `options.share[arbitraryName] = 'Array'` to require y-array and
|
||||
create an y-array type on `y.share[arbitraryName]`.
|
||||
* If userA doesn't specify `options.share[arbitraryName]`, it won't be
|
||||
available for userA.
|
||||
* If userB specifies `options.share[arbitraryName]`, it still won't be
|
||||
available for userA. But all the updates are send from userB to userA.
|
||||
* In contrast to y-map, types on `y.share.*` cannot be overwritten or deleted.
|
||||
Instead, they are merged among all users. This feature is only available on
|
||||
`y.share.*`
|
||||
* Weird behavior: It is supported that two users specify different types with
|
||||
the same property name.
|
||||
E.g. userA specifies `options.share.x = 'Array'`, and userB specifies
|
||||
`options.share.x = 'Text'`. But they only share data if they specified the
|
||||
same type with the same property name
|
||||
* options.type (browser only)
|
||||
* Array of modules that Yjs needs to require, before instantiating a shared
|
||||
type.
|
||||
* By default Yjs requires the specified database adapter, the specified
|
||||
connector, and all modules that are used in `options.share.*`
|
||||
* Put all types here that you intend to use, but are not used in y.share.*
|
||||
|
||||
# License
|
||||
Yatta! is licensed under the [MIT License](./LICENSE.txt).
|
||||
### Instantiated Y object (y)
|
||||
`Y(options)` returns a promise that is fulfilled when..
|
||||
|
||||
* All modules are loaded
|
||||
* The specified database adapter is loaded
|
||||
* The specified connector is loaded
|
||||
* All types are included
|
||||
* The connector is initialized, and a unique user id is set (received from the
|
||||
server)
|
||||
* Note: When using y-indexeddb, a retrieved user id is stored on `localStorage`
|
||||
|
||||
The promise returns an instance of Y. We denote it with a lower case `y`.
|
||||
|
||||
* y.share.*
|
||||
* Instances of the types you specified on options.share.*
|
||||
* y.share.* can only be defined once when you instantiate Y!
|
||||
* y.connector is an instance of Y.AbstractConnector
|
||||
* y.connector.onUserEvent(function (event) {..})
|
||||
* Observe user events (event.action is either 'userLeft' or 'userJoined')
|
||||
* y.connector.whenSynced(listener)
|
||||
* `listener` is executed when y synced with at least one user.
|
||||
* `listener` is not called when no other user is in the same room.
|
||||
* y-websockets-client aways waits to sync with the server
|
||||
* y.connector.disconnect()
|
||||
* Force to disconnect this instance from the other instances
|
||||
* y.connector.reconnect()
|
||||
* Try to reconnect to the other instances (needs to be supported by the
|
||||
connector)
|
||||
* Not supported by y-xmpp
|
||||
* y.close()
|
||||
* Destroy this object.
|
||||
* Destroys all types (they will throw weird errors if you still use them)
|
||||
* Disconnects from the other instances (via connector)
|
||||
* Returns a promise
|
||||
* y.destroy()
|
||||
* calls y.close()
|
||||
* Removes all data from the database
|
||||
* Returns a promise
|
||||
* y.db.stopGarbageCollector()
|
||||
* Stop the garbage collector. Call y.db.garbageCollect() to continue garbage
|
||||
collection
|
||||
* y.db.gc :: Boolean
|
||||
* Whether gc is turned on
|
||||
* y.db.gcTimeout :: Number (defaults to 50000 ms)
|
||||
* Time interval between two garbage collect cycles
|
||||
* It is required that all instances exchanged all messages after two garbage
|
||||
collect cycles (after 100000 ms per default)
|
||||
* y.db.userId :: String
|
||||
* The used user id for this client. **Never overwrite this**
|
||||
|
||||
### Logging
|
||||
Yjs uses [debug](https://github.com/visionmedia/debug) for logging. The flag
|
||||
`y*` enables logging for all y-* components. You can selectively remove
|
||||
components you are not interested in: E.g. The flag `y*,-y:connector-message`
|
||||
will not log the long `y:connector-message` messages.
|
||||
|
||||
##### Enable logging in Node.js
|
||||
```sh
|
||||
DEBUG=y* node app.js
|
||||
```
|
||||
|
||||
Remove the colors in order to log to a file:
|
||||
```sh
|
||||
DEBUG_COLORS=0 DEBUG=y* node app.js > log
|
||||
```
|
||||
|
||||
##### Enable logging in the browser
|
||||
```js
|
||||
localStorage.debug = 'y*'
|
||||
```
|
||||
|
||||
## Contribution
|
||||
I created this framework during my bachelor thesis at the chair of computer
|
||||
science 5 [(i5)](http://dbis.rwth-aachen.de/cms), RWTH University. Since
|
||||
December 2014 I'm working on Yjs as a part of my student worker job at the i5.
|
||||
|
||||
## License
|
||||
Yjs is licensed under the [MIT License](./LICENSE).
|
||||
|
||||
<yjs@dbis.rwth-aachen.de>
|
||||
|
||||
28
bower.json
28
bower.json
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"name": "Yatta",
|
||||
"version": "0.0.0",
|
||||
"homepage": "https://github.com/DadaMonad/Yatta",
|
||||
"authors": [
|
||||
"Kevin Jahns <kevin.jahns@rwth-aachen.de>"
|
||||
],
|
||||
"description": "A Framework for Real-Time collaboration on arbitrary data structures.",
|
||||
"main": "./dest/browser/**",
|
||||
"keywords": [
|
||||
"OT",
|
||||
"collaboration",
|
||||
"synchronization",
|
||||
"ShareJS",
|
||||
"Coweb",
|
||||
"concurrency"
|
||||
],
|
||||
"license": "MIT",
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"Gruntfile.coffee",
|
||||
"extras",
|
||||
"tests"
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
10
dest/browser/Frameworks/JsonIwcYatta.min.js
vendored
10
dest/browser/Frameworks/JsonIwcYatta.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Module>
|
||||
<ModulePrefs title="Video upload" description="Upload videos in Sevianno" author="Kevin Jahns, Chair of Computer Science 5, RWTH Aachen University, Germany" author_email="jahns@dbis.rwth-aachen.de" scrolling="true">
|
||||
<Require feature="dynamic-height"/>
|
||||
|
||||
</ModulePrefs>
|
||||
|
||||
<Content type="html"><![CDATA[
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/lib/las/storage.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/lib/las/lasAjaxClient.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/~jahns/role-widgets/widgetbundles/libraries/DUIClient.js"></script>
|
||||
<script src="../dest/browser/Frameworks/JsonIwcYatta.js"></script>
|
||||
<script src="../Frameworks/JsonIwcYatta.js"></script>
|
||||
<script>
|
||||
function init(){
|
||||
window.createIwcConnector(function(Connector){
|
||||
console.log("initializing..");
|
||||
yatta = new window.JsonYatta(1, Connector);
|
||||
var dui = yatta.getConnector().duiClient
|
||||
dui.getAppState()
|
||||
console.log("initialized!");
|
||||
|
||||
})
|
||||
}
|
||||
$(document).ready(init)
|
||||
</script>
|
||||
<h1> awesomewidget </h1>
|
||||
]]></Content>
|
||||
</Module>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Module>
|
||||
<ModulePrefs title="Video upload" description="Upload videos in Sevianno" author="Kevin Jahns, Chair of Computer Science 5, RWTH Aachen University, Germany" author_email="jahns@dbis.rwth-aachen.de" scrolling="true">
|
||||
<Require feature="dynamic-height"/>
|
||||
|
||||
</ModulePrefs>
|
||||
|
||||
<Content type="html"><![CDATA[
|
||||
<script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/lib/las/storage.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/lib/las/lasAjaxClient.js"></script>
|
||||
<script src="../Widgets/libs/DUIClient.js"></script>
|
||||
<script src="../Frameworks/JsonIwcYatta.js"></script>
|
||||
<script>
|
||||
function init(){
|
||||
function f(){
|
||||
console.log("beginning");
|
||||
window.createIwcConnector(function(Connector){
|
||||
console.log("initializing..");
|
||||
yatta = new window.JsonYatta(2, Connector);
|
||||
console.log("initialized!");
|
||||
});
|
||||
}
|
||||
setTimeout(f, 8000)
|
||||
}
|
||||
$(document).ready(init)
|
||||
</script>
|
||||
<h1> awesomewidget </h1>
|
||||
]]></Content>
|
||||
</Module>
|
||||
@@ -1,241 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<Module>
|
||||
<ModulePrefs
|
||||
title="IWC Test Stub"
|
||||
description="A widget for tracing and sending ROLE IWC intents. Recommended for developers of IWC-enabled widgets."
|
||||
author="Dominik Renzel, Chair of Computer Science 5, RWTH Aachen University, Germany"
|
||||
author_email="renzel@dbis.rwth-aachen.de"
|
||||
height="500">
|
||||
<Require feature="dynamic-height"/>
|
||||
</ModulePrefs>
|
||||
<Content type="html">
|
||||
<![CDATA[
|
||||
<style type="text/css">
|
||||
* {
|
||||
font-family: Verdana;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
#accordion {
|
||||
overflow: auto;
|
||||
height: 310px;
|
||||
}
|
||||
|
||||
#pubform, .entry {
|
||||
border: 1pt solid black
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
tr td.ui-state-default{
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
tr td.input, tr td.ui-widget-content {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
#pub_form tr td input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#pub_form tr td textarea {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css"/>
|
||||
|
||||
<script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
|
||||
<script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"</script>
|
||||
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/date.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var counter = 0;
|
||||
var iwcClient = null;
|
||||
|
||||
function renderIntent(intent){
|
||||
var result = "<table class='entry'>";
|
||||
|
||||
|
||||
var sender = intent.sender;
|
||||
var publisher = "me";
|
||||
var source = sender;
|
||||
|
||||
if (sender.indexOf("?sender=") > -1){
|
||||
var ts = sender.split("?sender=");
|
||||
publisher = ts[0].split("/")[0];
|
||||
source = ts[1];
|
||||
} else {
|
||||
publisher = "<b><i>me</i></b>";
|
||||
source = sender;
|
||||
}
|
||||
|
||||
result += "<tr><td class='ui-state-default'>Publisher</td><td class='ui-widget-content'>" + publisher + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Source</td><td class='ui-widget-content'>" + source + "</td></tr>";
|
||||
|
||||
|
||||
|
||||
var comp = intent.component;
|
||||
if(comp === ""){
|
||||
comp = "*";
|
||||
}
|
||||
|
||||
result += "<tr><td class='ui-state-default'>Component</td><td class='ui-widget-content,value'>" + comp + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Action</td><td class='ui-widget-content'>" + intent.action + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Data</td><td class='ui-widget-content'>" + intent.data + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Datatype</td><td class='ui-widget-content'>" + intent.dataType + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Categories</td><td class='ui-widget-content'>" + intent.categories + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Flags</td><td class='ui-widget-content'>" + intent.flags + "</td></tr>";
|
||||
result += "<tr><td class='ui-state-default'>Extras</td><td class='ui-widget-content'> " + JSON.stringify(intent.extras) + "</td></tr>";
|
||||
|
||||
result += "</table>";
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function collectIntent(){
|
||||
var action = $("#pub_action").val();
|
||||
console.log("Action: " + action);
|
||||
|
||||
var sender = $("#pub_source").val();
|
||||
if(!($("#pub_publisher").val() == 'me')){
|
||||
sender = $("#pub_publisher").val() + "?sender=" + sender;
|
||||
}
|
||||
|
||||
var categories = $("#pub_categories").val().split(",");
|
||||
var flags = $("#pub_flags").val().split(",");
|
||||
|
||||
try{
|
||||
var extras = $.parseJSON($("#pub_extras").val());
|
||||
} catch(error) {
|
||||
alert("Corrupt JSON specified for extras");
|
||||
return;
|
||||
}
|
||||
var intent = {
|
||||
"component": $("#pub_component").val(),
|
||||
"sender": sender,
|
||||
"data": $("#pub_data").val(),
|
||||
"dataType":$("#pub_datatype").val(),
|
||||
"action":$("#pub_action").val(),
|
||||
"categories":categories,
|
||||
"flags": flags,
|
||||
"extras": extras
|
||||
};
|
||||
return intent;
|
||||
}
|
||||
|
||||
function init(){
|
||||
|
||||
iwcClient = new iwc.Client();
|
||||
|
||||
var iwcCallback = function(intent) {
|
||||
var date = new Date();
|
||||
var format = "yyyy-MM-dd kk:mm:ss";
|
||||
var dates = formatDate(date,format)+"."+date.getMilliseconds();
|
||||
$('#accordion').prepend("<h3><a href='#'>#" + counter + " - " + intent.action + " (" + dates + ")</a></h3><div>" + renderIntent(intent) + "</div>").accordion('destroy').accordion();
|
||||
counter += 1;
|
||||
}
|
||||
|
||||
iwcClient.connect(iwcCallback);
|
||||
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$( "#accordion" ).accordion({
|
||||
collapsible: true
|
||||
});
|
||||
|
||||
$( "#clearb" ).button().click(function() {
|
||||
counter = 0;
|
||||
$( "#accordion" ).accordion('destroy').empty().accordion();
|
||||
});
|
||||
|
||||
$( "#sendb" ).button().click(function() {
|
||||
$("#sendintent").dialog('open');
|
||||
});
|
||||
|
||||
$("#exint").dialog({
|
||||
autoOpen: false,
|
||||
heigth: 340,
|
||||
width: 350,
|
||||
modal: true
|
||||
});
|
||||
|
||||
$("#sendintent").dialog({
|
||||
autoOpen: false,
|
||||
height: 340,
|
||||
width: 350,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"Send": function() {
|
||||
var intent = collectIntent();
|
||||
|
||||
console.log(intent);
|
||||
|
||||
if(iwc.util.validateIntent(intent)) {
|
||||
iwcClient.publish(intent);
|
||||
}
|
||||
else {
|
||||
alert("Intent not valid! ");
|
||||
}
|
||||
|
||||
},
|
||||
Export: function() {
|
||||
var intent = collectIntent();
|
||||
var istr = JSON.stringify(intent);
|
||||
console.log(istr);
|
||||
$("#intsnip").html(istr);
|
||||
$("#exint").dialog("open");
|
||||
},
|
||||
Cancel: function() {
|
||||
$(this).dialog('close');
|
||||
}
|
||||
},
|
||||
close: function(){
|
||||
//$(this).dialog('close');
|
||||
}
|
||||
});
|
||||
|
||||
gadgets.window.adjustHeight();
|
||||
});
|
||||
|
||||
$(document).ready(init());
|
||||
|
||||
|
||||
</script>
|
||||
<button id="sendb">Send Intent</button> <button id="clearb">Clear List</button>
|
||||
<h1>Received Intents</h1>
|
||||
<div id="accordion">
|
||||
</div>
|
||||
|
||||
<div id='sendintent' title='Send Intent'>
|
||||
<table id='pub_form'>
|
||||
<tr><td class='ui-state-default'>Publisher</td><td class='input'><input id='pub_publisher' type='text' value='me'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Source</td><td class='input'><input id='pub_source' type='text' value='http://widget.org/sender.xml'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Component</td><td class='input'><input id='pub_component' type='text'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Action</td><td class='input'><input id='pub_action' type='text' value='ACTION_UPDATE'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Data</td><td class='input'><input id='pub_data' type='text' value='http://example.org/some/data'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Data Type</td><td class='input'><input id='pub_datatype' type='text' value='text/plain'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Flags</td><td class='input'><input id='pub_flags' type='text' value='PUBLISH_GLOBAL'/></td></tr>
|
||||
<tr><td class='ui-state-default'>Categories</td><td class='input'><input id='pub_categories' type='text' value='cat1,cat2'/></td></tr>
|
||||
<!-- <tr><td class='ui-state-default'>Extras</td><td class='input'><input id='pub_extras' type='text' value='{"key":"value"}'/></td></tr> -->
|
||||
<tr><td class='ui-state-default'>Extras</td><td class='input'><textarea id='pub_extras' value='{"key":"value"}'/></td></tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div id="exint" title="Exported Intent JSON">
|
||||
Copy the snippet below to your code to specify a respective intent message.
|
||||
<p id="intsnip"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
]]>
|
||||
</Content>
|
||||
</Module>
|
||||
@@ -1,371 +0,0 @@
|
||||
//get the iwc.Client class def.
|
||||
/*
|
||||
iwc = iwc || {};
|
||||
iwc.Client = iwc.Client || {};
|
||||
|
||||
/**
|
||||
* Add a function to set the compnent name of the iwc.Client class.<br/>
|
||||
* This component name is for filtering incoming intent at the iwc.Client. The intent can be further processed
|
||||
* only when the intent.component attribute matches the component name of the iwc.Client or the intent.component is an empty string(pseudo broadcast).
|
||||
* @param componentName The component name
|
||||
*/
|
||||
/*
|
||||
iwc.Client.prototype.setComponentName = function(componentName){
|
||||
this._componentName = componentName;
|
||||
};
|
||||
*/
|
||||
|
||||
DUIClient = function(){
|
||||
//in role framework the parent div of the widget ifr is IDed as "widget-{widgetId}-body" sth. like this
|
||||
var _widgetId = parent.document.getElementById(self.frameElement.id).parentNode.id.split("-")[1];
|
||||
var that = this;
|
||||
var _iwcClient = new iwc.Client(["*"]);
|
||||
_iwcClient._componentName = "duiclient-"+_widgetId;
|
||||
|
||||
this.externalCallback = function(intent){};
|
||||
|
||||
/**
|
||||
* The target function when the intent is for updating widget state request
|
||||
*/
|
||||
this._onUpdateState = function(intent){
|
||||
var isForMigration = intent.extras.isForMigration;
|
||||
if (isForMigration)
|
||||
this.finishMigration(intent);
|
||||
else
|
||||
this.updateState(intent);
|
||||
};
|
||||
|
||||
this.getIwcClient = function(){
|
||||
return _iwcClient;
|
||||
}
|
||||
/**
|
||||
* The target function when the intent is for getting the current widget state.<br/>
|
||||
* The intent.extras object here is always a Json object.
|
||||
*/
|
||||
this._onGetWidgetState = function(intent){
|
||||
var target = null;
|
||||
var forMigration = false;
|
||||
if (intent.extras.target != null){
|
||||
target = intent.extras.target;
|
||||
forMigration = true;
|
||||
}
|
||||
var states = this.getWidgetState(forMigration);
|
||||
|
||||
var resIntent = {};
|
||||
if (forMigration)
|
||||
resIntent = {
|
||||
"action": "DUI_WS_MIG",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"target": target, "widgetId": _widgetId, "widgetStates": states}
|
||||
};
|
||||
else
|
||||
resIntent = {
|
||||
"action": "DUI_WS",
|
||||
"categories": ["DUI"],
|
||||
"component": intent.sender,
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"widgetId": _widgetId, "widgetStates": states}
|
||||
};
|
||||
|
||||
_iwcClient.publish(resIntent);
|
||||
};
|
||||
|
||||
/**
|
||||
* The target function when the intent is to inform a change in the scope of the application
|
||||
*/
|
||||
this._onAppStateChange = function(intent){
|
||||
this.changeWithApp(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* The target function when the intent is to inform a migration of this widget is waiting to be taken place
|
||||
*/
|
||||
this._prepareMigration = function(intent){
|
||||
console.log("do sth before the widget is removed");
|
||||
this.prepareMigration();
|
||||
};
|
||||
|
||||
this._logOff = function(intent){
|
||||
var states = this.getWidgetState(false);
|
||||
resIntent = {
|
||||
"action": "DUI_WS_LOGOFF",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"widgetId": _widgetId, "widgetStates": states}
|
||||
};
|
||||
|
||||
_iwcClient.publish(resIntent);
|
||||
};
|
||||
|
||||
/**
|
||||
* The intent dispatcher and the callback function connected to the private field of iwc.Client.onIntent.<br/>
|
||||
* This function is called once an intent is received by the iwc.Client and passed the first level filter of the iwc.Client.<br/>
|
||||
* @param intent The incoming intent. Technically all intents will come, the filter of the iwc.Client class is weak...
|
||||
*/
|
||||
var _iwcCallback = function(intent){
|
||||
that.externalCallback(intent);
|
||||
//does not accept global intents(global intents are processed by normal iwc.Client, normal iwc.Proxy and DUI manager)
|
||||
//does not accept intents that are not categorized as "DUI"
|
||||
if ((typeof intent.flags != "undefined" && intent.flags.indexOf("PUBLISH_GLOBAL")!=-1)
|
||||
|| typeof intent.categories == "undefined" || intent.categories.indexOf("DUI") == -1)
|
||||
return;
|
||||
//then does not accept intents for other widgets
|
||||
//if the widget id is undefined here, this is an DUI intent from the DUI manager for all involved widget, e.g. application state changed
|
||||
var action = intent.action;
|
||||
if (typeof intent.extras.widgetId != "undefined" && intent.extras.widgetId == _widgetId){
|
||||
if (action == "DUI_UPDATE_STATE"){
|
||||
that._onUpdateState(intent);
|
||||
return;
|
||||
}
|
||||
if (action == "DUI_GET_WS"){
|
||||
that._onGetWidgetState(intent);
|
||||
return;
|
||||
}
|
||||
if (action == "DUI_PRE_MIG"){
|
||||
that._prepareMigration(intent);
|
||||
return;
|
||||
}
|
||||
}else if (typeof intent.extras.widgetId == "undefined"){
|
||||
if (action == "DUI_LOG_OFF"){
|
||||
that._logOff(intent);
|
||||
return;
|
||||
}
|
||||
if (action == "DUI_APP_CHANGE"){
|
||||
that._onAppStateChange(intent);
|
||||
return;
|
||||
}
|
||||
if (action == "DUI_REG_CLIENT"){
|
||||
that.initOK();
|
||||
return;
|
||||
}
|
||||
if (action == "DUI_AS"){
|
||||
that.onAppState(intent.extras.appStates);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
_iwcClient.connect(_iwcCallback);
|
||||
|
||||
//remember to bind(this) the function when override
|
||||
|
||||
/**
|
||||
* The function is called when the dui manager wants the widget states.<br/>
|
||||
* <strong>Notice</strong>: avoid putting complex data and data structure to the state value, the browser and Java JSON encoder and parser might cause inconsistent input and output.
|
||||
* @param isForMigration A boolean. True if special state for migration is needed otherwise not.
|
||||
* @returns an object containing the widget states, e.g. {"selectIndex":1, "phaseNum":2, "textinput":"iamatextvalueinatextinput"}
|
||||
*/
|
||||
this.getWidgetState = function(isForMigration){
|
||||
console.log("the widget collects it is state and return, overwrite it");
|
||||
var states = {};
|
||||
return states;
|
||||
};
|
||||
|
||||
/**
|
||||
* The function is called when there detected a application state change at the dui manager and the manager informs the widget about the change.<br/>
|
||||
* Override this function to apply changes to the widget according to the valuable application state changes.<br/>
|
||||
* @param intent intent The infos are in intent.extras object e.g. intent.extras = {"oldStates":{}, "newStates":{"statename":value, "state2":value2}}. the property 'oldStates' can be null if the space has not set app state ever before.
|
||||
*/
|
||||
this.changeWithApp = function(intent){
|
||||
//sample
|
||||
var oldStates = intent.extras.oldStates;
|
||||
var newStates = intent.extras.newStates;
|
||||
console.log(oldStates);
|
||||
console.log(newStates);
|
||||
console.log("the widget may need to change something following the whole app");
|
||||
};
|
||||
|
||||
/**
|
||||
* The function is called right before a migration for this widget and the widget state is already saved to the server in previous migration phases.<br/>
|
||||
* And it is the last chance to perform any moves before the widget is removed from current web page.<br/>
|
||||
* Override this method to perform state update for each different widget.<br/>
|
||||
* <strong>AND DO REMEMBER TO CALL {@link DUIClient#prepareMigDone} AT THE END OF THIS FUNCTION!</strong>
|
||||
*/
|
||||
this.prepareMigration = function(){
|
||||
//e.g. ..... just a joke....
|
||||
/*
|
||||
if (confirm("you sure to sign out?..."))
|
||||
parent.location = parent.location.protocol + "//" + parent.location.host + "/:authentication?return=&action=signout";
|
||||
console.log("the migration is at hand, the widget may need to do sth special before it is removed from the role widget container e.g. disconnect from the lasServer etc.");
|
||||
*/
|
||||
this.prepareMigDone();
|
||||
};
|
||||
|
||||
/**
|
||||
* The function is called when the dui manager asks the widget to update its states.<br/>
|
||||
* Compared to the function DUIClient.finishMigration(), this is a typical normal state update for active widget on presence.<br/>
|
||||
* This method will be called as a callback for DUIClient#requireWidgetState(); or DUIClient#initOK() when it is not a migration.
|
||||
* Override this method to perform state update for each different widget.
|
||||
* @param intent The Intent object that contains infos of required widget states, the infos are in intent.extras.widgetStates e.g. {"state1":value1,"state2":value2}.
|
||||
* The object might contain appStates as well if there is any application state, get it in intent.extras.appStates e.g. {"appstate1":value1,"appstate2":value2}.
|
||||
*/
|
||||
this.updateState = function(intent){
|
||||
var states = {};
|
||||
states = intent.extras.widgetStates;
|
||||
var appStates = intent.extras.appStates;
|
||||
console.log(states);
|
||||
if (typeof appStates != "undefined")
|
||||
console.log(appStates);
|
||||
console.log("update the widget state, widget need to overwrite it");
|
||||
};
|
||||
|
||||
/**
|
||||
* The function is called to finish the Migration and update the widget state.<br/>
|
||||
* Compared to the method DUIClient.updateState(), this method is a special widget state update for the widget that has just migrated.<br/>
|
||||
* Override this method to perform finishing moves for each different widget.
|
||||
* @param intent The Intent object that contains infos to complete the migration, the infos are in intent.extras.states e.g. {"state1":value1, "state2":value2}.
|
||||
* The object might contain appStates as well if there is any application state, get it in intent.extras.appStates e.g. {"appstate1":value1,"appstate2":value2}.
|
||||
*/
|
||||
this.finishMigration = function(intent){
|
||||
var states = {};
|
||||
states = intent.extras.widgetStates;
|
||||
var appStates = intent.extras.appStates;
|
||||
console.log(states);
|
||||
if (typeof appStates != "undefined")
|
||||
console.log(appStates);
|
||||
console.log("the migration is done, the widget may need to perform special inits before update the widget state e.g. login to the lasServer again.");
|
||||
};
|
||||
|
||||
/**
|
||||
* The function to signal the dui manager that the preparation for the migration is ready on this widget.<br/>
|
||||
* This function should be called at the end of the overwritten function {@link DUIClient#prepareMigration}<br/>
|
||||
* Do not override this method unless there is really an unstoppable reason.
|
||||
*/
|
||||
this.prepareMigDone = function(){
|
||||
//prepared and send OK response to DUIMgr
|
||||
var intent = {
|
||||
"component": "duimanager",
|
||||
"categories": ["DUI"],
|
||||
"action": "DUI_PRE_MIG_OK",
|
||||
"data": "",
|
||||
"dataType": "",
|
||||
"extras": {"widgetId": _widgetId}
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* The function to call the DUI manager to save the widget state on the server.<br/>
|
||||
* Do not override this method unless there is really an unstoppable reason.
|
||||
* @param states An array of widget state object {"stateName": stateValue}
|
||||
*/
|
||||
this.saveWidgetState = function(){
|
||||
var states = this.getWidgetState(false);
|
||||
var intent = {
|
||||
"action": "DUI_SAVE_WS",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager"
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"widgetStates":states, "widgetId": _widgetId}
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* An open interface to send any intent
|
||||
*/
|
||||
this.sendIntent = function(intent){
|
||||
//or to send the intent to "duimanager"
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* This function asks the framework for the states stored on the server.
|
||||
* Do not override it.
|
||||
*/
|
||||
this.requireWidgetState = function(){
|
||||
var intent = {
|
||||
"action": "DUI_REQ_WS",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager"
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"widgetId": _widgetId}
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* Store the global app state
|
||||
* @param states the app state to be stored e.g. {"state1":value1, "state2":value2}
|
||||
*/
|
||||
this.setAppState = function(states){
|
||||
var intent = {
|
||||
"action": "DUI_SET_AS",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager"
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"states": states}
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* Ask the dui manager for the app state.
|
||||
*/
|
||||
this.getAppState = function(){
|
||||
var intent = {
|
||||
"action": "DUI_GET_AS",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager"
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
};
|
||||
|
||||
/**
|
||||
* Override this function to do something when the requested app state comes.
|
||||
* @param appStates the json format of the app state:{"name1": value1, "name2": value2};
|
||||
*/
|
||||
this.onAppState = function(appStates){};
|
||||
|
||||
/**
|
||||
* call this function to register the duiclient to duimanager after all things are OK
|
||||
*/
|
||||
this.initOK = function(){
|
||||
var okIntent = {
|
||||
"action": "DUI_CLIENT_OK",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",// the overwritten dui manager from the iwc.Proxy should have the _componentName set to "duimanager"
|
||||
"data":"",
|
||||
"dataType":"",
|
||||
"extras":{"widgetId": _widgetId}
|
||||
};
|
||||
|
||||
_iwcClient.publish(okIntent);
|
||||
};
|
||||
|
||||
/**
|
||||
* publish the intent in the domain of the user only
|
||||
*/
|
||||
this.publishToUser = function(intent){
|
||||
var wrap = {
|
||||
"action": "DUI_PUB_USER",
|
||||
"categories": ["DUI"],
|
||||
"component": "duimanager",
|
||||
"data": JSON.stringify(intent),
|
||||
"dataType": "application/json",
|
||||
"extras": {}
|
||||
};
|
||||
_iwcClient.publish(intent);
|
||||
_iwcClient.publish(wrap);
|
||||
};
|
||||
|
||||
/**
|
||||
* register the call back function of the widget to the DUI client.
|
||||
*/
|
||||
this.connect = function(callback){
|
||||
this.externalCallback = callback;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// reminder to myself:.... the callback funcs injected into this DUIClient need to bind()
|
||||
2
dest/browser/Widgets/libs/DUIClient.min.js
vendored
2
dest/browser/Widgets/libs/DUIClient.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,17 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test Yatta!</title>
|
||||
<link rel="stylesheet" href="../../../node_modules/mocha/mocha.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="../../../node_modules/mocha/mocha.js"></script>
|
||||
<script>mocha.setup('bdd')</script>
|
||||
<script src="Yatta_test.js"></script>
|
||||
<script>
|
||||
mocha.checkLeaks();
|
||||
mocha.run();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,119 +0,0 @@
|
||||
var createIwcConnector;
|
||||
|
||||
createIwcConnector = function(callback) {
|
||||
var IwcConnector, duiClient, get_HB_intent, init, iwcHandler, received_HB;
|
||||
iwcHandler = {};
|
||||
duiClient = new DUIClient();
|
||||
duiClient.connect(function(intent) {
|
||||
var _ref;
|
||||
return (_ref = iwcHandler[intent.action]) != null ? _ref.map(function(f) {
|
||||
return setTimeout(function() {
|
||||
return f(intent);
|
||||
}, 0);
|
||||
}) : void 0;
|
||||
});
|
||||
duiClient.initOK();
|
||||
received_HB = null;
|
||||
IwcConnector = (function() {
|
||||
function IwcConnector(engine, HB, execution_listener, yatta) {
|
||||
var receive_, sendHistoryBuffer, send_;
|
||||
this.engine = engine;
|
||||
this.HB = HB;
|
||||
this.execution_listener = execution_listener;
|
||||
this.yatta = yatta;
|
||||
this.duiClient = duiClient;
|
||||
this.iwcHandler = iwcHandler;
|
||||
send_ = (function(_this) {
|
||||
return function(o) {
|
||||
return _this.send(o);
|
||||
};
|
||||
})(this);
|
||||
this.execution_listener.push(send_);
|
||||
receive_ = (function(_this) {
|
||||
return function(intent) {
|
||||
var o;
|
||||
o = intent.extras;
|
||||
return _this.receive(o);
|
||||
};
|
||||
})(this);
|
||||
this.iwcHandler["Yatta_new_operation"] = [receive_];
|
||||
if (received_HB != null) {
|
||||
this.engine.applyOpsCheckDouble(received_HB);
|
||||
}
|
||||
sendHistoryBuffer = (function(_this) {
|
||||
return function() {
|
||||
var json;
|
||||
json = {
|
||||
HB: _this.yatta.getHistoryBuffer()._encode()
|
||||
};
|
||||
return _this.sendIwcIntent("Yatta_push_HB_element", json);
|
||||
};
|
||||
})(this);
|
||||
this.iwcHandler["Yatta_get_HB_element"] = [sendHistoryBuffer];
|
||||
}
|
||||
|
||||
IwcConnector.prototype.send = function(o) {
|
||||
if (o.uid.creator === this.HB.getUserId() && (typeof o.uid.op_number !== "string")) {
|
||||
return this.sendIwcIntent("Yatta_new_operation", o);
|
||||
}
|
||||
};
|
||||
|
||||
IwcConnector.prototype.receive = function(o) {
|
||||
if (o.uid.creator !== this.HB.getUserId()) {
|
||||
return this.engine.applyOp(o);
|
||||
}
|
||||
};
|
||||
|
||||
IwcConnector.prototype.sendIwcIntent = function(action_name, content) {
|
||||
var intent;
|
||||
intent = {
|
||||
action: action_name,
|
||||
component: "",
|
||||
data: "",
|
||||
dataType: "",
|
||||
extras: content
|
||||
};
|
||||
return this.duiClient.sendIntent(intent);
|
||||
};
|
||||
|
||||
IwcConnector.prototype.sync = function() {
|
||||
throw new Error("Can't use this a.t.m.");
|
||||
};
|
||||
|
||||
return IwcConnector;
|
||||
|
||||
})();
|
||||
get_HB_intent = {
|
||||
action: "Yatta_get_HB_element",
|
||||
component: "",
|
||||
data: "",
|
||||
dataType: "",
|
||||
extras: {}
|
||||
};
|
||||
init = function() {
|
||||
var is_initialized, receiveHB;
|
||||
duiClient.sendIntent(get_HB_intent);
|
||||
is_initialized = false;
|
||||
receiveHB = function(json) {
|
||||
var proposed_user_id;
|
||||
proposed_user_id = duiClient.getIwcClient()._componentName;
|
||||
received_HB = json != null ? json.extras.HB : void 0;
|
||||
if (!is_initialized) {
|
||||
is_initialized = true;
|
||||
return callback(IwcConnector, proposed_user_id);
|
||||
}
|
||||
};
|
||||
iwcHandler["Yatta_push_HB_element"] = [receiveHB];
|
||||
return setTimeout(receiveHB, 0);
|
||||
};
|
||||
setTimeout(init, Math.random() * 0);
|
||||
return void 0;
|
||||
};
|
||||
|
||||
module.exports = createIwcConnector;
|
||||
|
||||
if (typeof window !== "undefined" && window !== null) {
|
||||
window.createConnector = createIwcConnector;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=IwcConnector.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "IwcConnector.js",
|
||||
"sourceRoot": "../../../lib/Connectors/",
|
||||
"sources": [
|
||||
"IwcConnector.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
var _;
|
||||
|
||||
_ = require("underscore");
|
||||
|
||||
module.exports = function(user_list) {
|
||||
var TestConnector;
|
||||
return TestConnector = (function() {
|
||||
function TestConnector(engine, HB, execution_listener) {
|
||||
var appliedOperationsListener, send_;
|
||||
this.engine = engine;
|
||||
this.HB = HB;
|
||||
this.execution_listener = execution_listener;
|
||||
send_ = (function(_this) {
|
||||
return function(o) {
|
||||
return _this.send(o);
|
||||
};
|
||||
})(this);
|
||||
this.execution_listener.push(send_);
|
||||
this.applied_operations = [];
|
||||
appliedOperationsListener = (function(_this) {
|
||||
return function(o) {
|
||||
return _this.applied_operations.push(o);
|
||||
};
|
||||
})(this);
|
||||
this.execution_listener.push(appliedOperationsListener);
|
||||
if (!((user_list != null ? user_list.length : void 0) === 0)) {
|
||||
this.engine.applyOps(user_list[0].getHistoryBuffer()._encode());
|
||||
}
|
||||
this.unexecuted = {};
|
||||
}
|
||||
|
||||
TestConnector.prototype.getOpsInExecutionOrder = function() {
|
||||
return this.applied_operations;
|
||||
};
|
||||
|
||||
TestConnector.prototype.send = function(o) {
|
||||
var user, _i, _len, _results;
|
||||
if ((o.uid.creator === this.HB.getUserId()) && (typeof o.uid.op_number !== "string")) {
|
||||
_results = [];
|
||||
for (_i = 0, _len = user_list.length; _i < _len; _i++) {
|
||||
user = user_list[_i];
|
||||
if (user.getUserId() !== this.HB.getUserId()) {
|
||||
_results.push(user.getConnector().receive(o));
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
}
|
||||
};
|
||||
|
||||
TestConnector.prototype.receive = function(o) {
|
||||
var _base, _name;
|
||||
if ((_base = this.unexecuted)[_name = o.uid.creator] == null) {
|
||||
_base[_name] = [];
|
||||
}
|
||||
return this.unexecuted[o.uid.creator].push(o);
|
||||
};
|
||||
|
||||
TestConnector.prototype.flushOne = function(user) {
|
||||
var _ref;
|
||||
if (((_ref = this.unexecuted[user]) != null ? _ref.length : void 0) > 0) {
|
||||
return this.engine.applyOp(this.unexecuted[user].shift());
|
||||
}
|
||||
};
|
||||
|
||||
TestConnector.prototype.flushOneRandom = function() {
|
||||
return this.flushOne(_.random(0, user_list.length - 1));
|
||||
};
|
||||
|
||||
TestConnector.prototype.flushAll = function() {
|
||||
var n, ops, _ref;
|
||||
_ref = this.unexecuted;
|
||||
for (n in _ref) {
|
||||
ops = _ref[n];
|
||||
this.engine.applyOps(ops);
|
||||
}
|
||||
return this.unexecuted = {};
|
||||
};
|
||||
|
||||
TestConnector.prototype.sync = function() {
|
||||
throw new Error("Can't use this a.t.m.");
|
||||
};
|
||||
|
||||
return TestConnector;
|
||||
|
||||
})();
|
||||
};
|
||||
|
||||
//# sourceMappingURL=TestConnector.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "TestConnector.js",
|
||||
"sourceRoot": "../../../lib/Connectors/",
|
||||
"sources": [
|
||||
"TestConnector.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
var Engine;
|
||||
|
||||
Engine = (function() {
|
||||
function Engine(HB, parser) {
|
||||
this.HB = HB;
|
||||
this.parser = parser;
|
||||
this.unprocessed_ops = [];
|
||||
}
|
||||
|
||||
Engine.prototype.parseOperation = function(json) {
|
||||
var typeParser;
|
||||
typeParser = this.parser[json.type];
|
||||
if (typeParser != null) {
|
||||
return typeParser(json);
|
||||
} else {
|
||||
throw new Error("You forgot to specify a parser for type " + json.type + ". The message is " + (JSON.stringify(json)) + ".");
|
||||
}
|
||||
};
|
||||
|
||||
Engine.prototype.applyOpsBundle = function(ops_json) {
|
||||
var o, ops, _i, _j, _k, _len, _len1, _len2;
|
||||
ops = [];
|
||||
for (_i = 0, _len = ops_json.length; _i < _len; _i++) {
|
||||
o = ops_json[_i];
|
||||
ops.push(this.parseOperation(o));
|
||||
}
|
||||
for (_j = 0, _len1 = ops.length; _j < _len1; _j++) {
|
||||
o = ops[_j];
|
||||
this.HB.addOperation(o);
|
||||
}
|
||||
for (_k = 0, _len2 = ops.length; _k < _len2; _k++) {
|
||||
o = ops[_k];
|
||||
if (!o.execute()) {
|
||||
this.unprocessed_ops.push(o);
|
||||
}
|
||||
}
|
||||
return this.tryUnprocessed();
|
||||
};
|
||||
|
||||
Engine.prototype.applyOpsCheckDouble = function(ops_json) {
|
||||
var o, _i, _len, _results;
|
||||
_results = [];
|
||||
for (_i = 0, _len = ops_json.length; _i < _len; _i++) {
|
||||
o = ops_json[_i];
|
||||
if (this.HB.getOperation(o.uid) != null) {
|
||||
_results.push(this.applyOp(o));
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Engine.prototype.applyOps = function(ops_json) {
|
||||
var o, _i, _len, _results;
|
||||
_results = [];
|
||||
for (_i = 0, _len = ops_json.length; _i < _len; _i++) {
|
||||
o = ops_json[_i];
|
||||
_results.push(this.applyOp(o));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Engine.prototype.applyOp = function(op_json) {
|
||||
var o;
|
||||
o = this.parseOperation(op_json);
|
||||
if (!o.execute()) {
|
||||
this.unprocessed_ops.push(o);
|
||||
} else {
|
||||
this.HB.addOperation(o);
|
||||
}
|
||||
return this.tryUnprocessed();
|
||||
};
|
||||
|
||||
Engine.prototype.tryUnprocessed = function() {
|
||||
var old_length, op, unprocessed, _i, _len, _ref, _results;
|
||||
_results = [];
|
||||
while (true) {
|
||||
old_length = this.unprocessed_ops.length;
|
||||
unprocessed = [];
|
||||
_ref = this.unprocessed_ops;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
op = _ref[_i];
|
||||
if (!op.execute()) {
|
||||
unprocessed.push(op);
|
||||
} else {
|
||||
this.HB.addOperation(op);
|
||||
}
|
||||
}
|
||||
this.unprocessed_ops = unprocessed;
|
||||
if (this.unprocessed_ops.length === old_length) {
|
||||
break;
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
return Engine;
|
||||
|
||||
})();
|
||||
|
||||
module.exports = Engine;
|
||||
|
||||
//# sourceMappingURL=Engine.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "Engine.js",
|
||||
"sourceRoot": "../../lib/",
|
||||
"sources": [
|
||||
"Engine.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
var Engine, HistoryBuffer, JsonYatta, json_types_uninitialized;
|
||||
|
||||
json_types_uninitialized = require("../Types/JsonTypes.coffee");
|
||||
|
||||
HistoryBuffer = require("../HistoryBuffer.coffee");
|
||||
|
||||
Engine = require("../Engine.coffee");
|
||||
|
||||
JsonYatta = (function() {
|
||||
function JsonYatta(user_id, Connector) {
|
||||
var first_word, json_types;
|
||||
this.HB = new HistoryBuffer(user_id);
|
||||
json_types = json_types_uninitialized(this.HB);
|
||||
this.engine = new Engine(this.HB, json_types.parser);
|
||||
this.connector = new Connector(this.engine, this.HB, json_types.execution_listener, this);
|
||||
first_word = new json_types.types.JsonType(this.HB.getReservedUniqueIdentifier());
|
||||
this.HB.addOperation(first_word).execute();
|
||||
this.root_element = first_word;
|
||||
}
|
||||
|
||||
JsonYatta.prototype.getRootElement = function() {
|
||||
return this.root_element;
|
||||
};
|
||||
|
||||
JsonYatta.prototype.getEngine = function() {
|
||||
return this.engine;
|
||||
};
|
||||
|
||||
JsonYatta.prototype.getConnector = function() {
|
||||
return this.connector;
|
||||
};
|
||||
|
||||
JsonYatta.prototype.getHistoryBuffer = function() {
|
||||
return this.HB;
|
||||
};
|
||||
|
||||
JsonYatta.prototype.setMutableDefault = function(mutable) {
|
||||
return this.root_element.setMutableDefault(mutable);
|
||||
};
|
||||
|
||||
JsonYatta.prototype.getUserId = function() {
|
||||
return this.HB.getUserId();
|
||||
};
|
||||
|
||||
JsonYatta.prototype.val = function(name, content, mutable) {
|
||||
return this.root_element.val(name, content, mutable);
|
||||
};
|
||||
|
||||
Object.defineProperty(JsonYatta.prototype, 'value', {
|
||||
get: function() {
|
||||
return this.root_element.value;
|
||||
},
|
||||
set: function(o) {
|
||||
var o_name, o_obj, _results;
|
||||
if (o.constructor === {}.constructor) {
|
||||
_results = [];
|
||||
for (o_name in o) {
|
||||
o_obj = o[o_name];
|
||||
_results.push(this.val(o_name, o_obj, 'immutable'));
|
||||
}
|
||||
return _results;
|
||||
} else {
|
||||
throw new Error("You must only set Object values!");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return JsonYatta;
|
||||
|
||||
})();
|
||||
|
||||
if (typeof window !== "undefined" && window !== null) {
|
||||
window.JsonYatta = JsonYatta;
|
||||
}
|
||||
|
||||
module.exports = JsonYatta;
|
||||
|
||||
//# sourceMappingURL=JsonYatta.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "JsonYatta.js",
|
||||
"sourceRoot": "../../../lib/Frameworks/",
|
||||
"sources": [
|
||||
"JsonYatta.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AACA,IAAA,0DAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,2BAAR,CAA3B,CAAA;;AAAA,aACA,GAAgB,OAAA,CAAQ,yBAAR,CADhB,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,kBAAR,CAFT,CAAA;;AAAA;AAYe,EAAA,mBAAC,OAAD,EAAU,SAAV,GAAA;AACX,QAAA,sBAAA;AAAA,IAAA,IAAC,CAAA,EAAD,GAAU,IAAA,aAAA,CAAc,OAAd,CAAV,CAAA;AAAA,IACA,UAAA,GAAa,wBAAA,CAAyB,IAAC,CAAA,EAA1B,CADb,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAC,CAAA,EAAR,EAAY,UAAU,CAAC,MAAvB,CAFd,CAAA;AAAA,IAGA,IAAC,CAAA,SAAD,GAAiB,IAAA,SAAA,CAAU,IAAC,CAAA,MAAX,EAAmB,IAAC,CAAA,EAApB,EAAwB,UAAU,CAAC,kBAAnC,EAAuD,IAAvD,CAHjB,CAAA;AAAA,IAKA,UAAA,GAAiB,IAAA,UAAU,CAAC,KAAK,CAAC,QAAjB,CAA0B,IAAC,CAAA,EAAE,CAAC,2BAAJ,CAAA,CAA1B,CALjB,CAAA;AAAA,IAMA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,UAAjB,CAA4B,CAAC,OAA7B,CAAA,CANA,CAAA;AAAA,IAOA,IAAC,CAAA,YAAD,GAAgB,UAPhB,CADW;EAAA,CAAb;;AAAA,sBAcA,cAAA,GAAgB,SAAA,GAAA;WACd,IAAC,CAAA,aADa;EAAA,CAdhB,CAAA;;AAAA,sBAoBA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,OADQ;EAAA,CApBX,CAAA;;AAAA,sBA0BA,YAAA,GAAc,SAAA,GAAA;WACZ,IAAC,CAAA,UADW;EAAA,CA1Bd,CAAA;;AAAA,sBAgCA,gBAAA,GAAkB,SAAA,GAAA;WAChB,IAAC,CAAA,GADe;EAAA,CAhClB,CAAA;;AAAA,sBAsCA,iBAAA,GAAmB,SAAC,OAAD,GAAA;WAChB,IAAC,CAAA,YAAY,CAAC,iBAAd,CAAgC,OAAhC,EADgB;EAAA,CAtCnB,CAAA;;AAAA,sBA8CA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,EAAE,CAAC,SAAJ,CAAA,EADS;EAAA,CA9CX,CAAA;;AAAA,sBAoDA,GAAA,GAAM,SAAC,IAAD,EAAO,OAAP,EAAgB,OAAhB,GAAA;WACJ,IAAC,CAAA,YAAY,CAAC,GAAd,CAAkB,IAAlB,EAAwB,OAAxB,EAAiC,OAAjC,EADI;EAAA,CApDN,CAAA;;AAAA,EA0DA,MAAM,CAAC,cAAP,CAAsB,SAAS,CAAC,SAAhC,EAA2C,OAA3C,EACE;AAAA,IAAA,GAAA,EAAM,SAAA,GAAA;aAAG,IAAC,CAAA,YAAY,CAAC,MAAjB;IAAA,CAAN;AAAA,IACA,GAAA,EAAM,SAAC,CAAD,GAAA;AACJ,UAAA,uBAAA;AAAA,MAAA,IAAG,CAAC,CAAC,WAAF,KAAiB,EAAE,CAAC,WAAvB;AACE;aAAA,WAAA;4BAAA;AACE,wBAAA,IAAC,CAAA,GAAD,CAAK,MAAL,EAAa,KAAb,EAAoB,WAApB,EAAA,CADF;AAAA;wBADF;OAAA,MAAA;AAIE,cAAU,IAAA,KAAA,CAAM,kCAAN,CAAV,CAJF;OADI;IAAA,CADN;GADF,CA1DA,CAAA;;mBAAA;;IAZF,CAAA;;;EA8EA,MAAM,CAAE,SAAR,GAAoB;CA9EpB;;AAAA,MA+EM,CAAC,OAAP,GAAiB,SA/EjB,CAAA"
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
var Engine, HistoryBuffer, TextYatta, text_types_uninitialized;
|
||||
|
||||
text_types_uninitialized = require("../Types/TextTypes.coffee");
|
||||
|
||||
HistoryBuffer = require("../HistoryBuffer.coffee");
|
||||
|
||||
Engine = require("../Engine.coffee");
|
||||
|
||||
TextYatta = (function() {
|
||||
function TextYatta(user_id, Connector) {
|
||||
var first_word, root_elem, text_types;
|
||||
this.HB = new HistoryBuffer(user_id);
|
||||
text_types = text_types_uninitialized(this.HB);
|
||||
this.engine = new Engine(this.HB, text_types.parser);
|
||||
this.connector = new Connector(this.engine, this.HB, text_types.execution_listener);
|
||||
root_elem = this.connector.getRootElement();
|
||||
if (root_elem == null) {
|
||||
first_word = new text_types.types.Word(this.HB.getNextOperationIdentifier());
|
||||
this.HB.addOperation(first_word);
|
||||
first_word.execute();
|
||||
this.root_element = this.HB.addOperation(new text_types.types.ReplaceManager(first_word, this.HB.getNextOperationIdentifier())).execute();
|
||||
} else {
|
||||
this.root_element = this.HB.getOperation(root_elem);
|
||||
}
|
||||
}
|
||||
|
||||
TextYatta.prototype.getRootElement = function() {
|
||||
return this.root_element;
|
||||
};
|
||||
|
||||
TextYatta.prototype.getEngine = function() {
|
||||
return this.engine;
|
||||
};
|
||||
|
||||
TextYatta.prototype.getConnector = function() {
|
||||
return this.connector;
|
||||
};
|
||||
|
||||
TextYatta.prototype.getHistoryBuffer = function() {
|
||||
return this.HB;
|
||||
};
|
||||
|
||||
TextYatta.prototype.getUserId = function() {
|
||||
return this.HB.getUserId();
|
||||
};
|
||||
|
||||
TextYatta.prototype.val = function() {
|
||||
return this.root_element.val().val();
|
||||
};
|
||||
|
||||
TextYatta.prototype.insertText = function(pos, content) {
|
||||
return this.root_element.val().insertText(pos, content);
|
||||
};
|
||||
|
||||
TextYatta.prototype.deleteText = function(pos, length) {
|
||||
return this.root_element.val().deleteText(pos, length);
|
||||
};
|
||||
|
||||
TextYatta.prototype.replaceText = function(text) {
|
||||
return this.root_element.val().replaceText(text);
|
||||
};
|
||||
|
||||
return TextYatta;
|
||||
|
||||
})();
|
||||
|
||||
module.exports = TextYatta;
|
||||
|
||||
//# sourceMappingURL=TextYatta.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "TextYatta.js",
|
||||
"sourceRoot": "../../../lib/Frameworks/",
|
||||
"sources": [
|
||||
"TextYatta.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AACA,IAAA,0DAAA;;AAAA,wBAAA,GAA2B,OAAA,CAAQ,2BAAR,CAA3B,CAAA;;AAAA,aACA,GAAgB,OAAA,CAAQ,yBAAR,CADhB,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,kBAAR,CAFT,CAAA;;AAAA;AAQe,EAAA,mBAAC,OAAD,EAAU,SAAV,GAAA;AACX,QAAA,iCAAA;AAAA,IAAA,IAAC,CAAA,EAAD,GAAU,IAAA,aAAA,CAAc,OAAd,CAAV,CAAA;AAAA,IACA,UAAA,GAAa,wBAAA,CAAyB,IAAC,CAAA,EAA1B,CADb,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAC,CAAA,EAAR,EAAY,UAAU,CAAC,MAAvB,CAFd,CAAA;AAAA,IAGA,IAAC,CAAA,SAAD,GAAiB,IAAA,SAAA,CAAU,IAAC,CAAA,MAAX,EAAmB,IAAC,CAAA,EAApB,EAAwB,UAAU,CAAC,kBAAnC,CAHjB,CAAA;AAAA,IAIA,SAAA,GAAY,IAAC,CAAA,SAAS,CAAC,cAAX,CAAA,CAJZ,CAAA;AAKA,IAAA,IAAO,iBAAP;AACE,MAAA,UAAA,GAAiB,IAAA,UAAU,CAAC,KAAK,CAAC,IAAjB,CAAsB,IAAC,CAAA,EAAE,CAAC,0BAAJ,CAAA,CAAtB,CAAjB,CAAA;AAAA,MACA,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,UAAjB,CADA,CAAA;AAAA,MAEA,UAAU,CAAC,OAAX,CAAA,CAFA,CAAA;AAAA,MAGA,IAAC,CAAA,YAAD,GAAgB,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAqB,IAAA,UAAU,CAAC,KAAK,CAAC,cAAjB,CAAgC,UAAhC,EAA4C,IAAC,CAAA,EAAE,CAAC,0BAAJ,CAAA,CAA5C,CAArB,CAAkG,CAAC,OAAnG,CAAA,CAHhB,CADF;KAAA,MAAA;AAME,MAAA,IAAC,CAAA,YAAD,GAAgB,IAAC,CAAA,EAAE,CAAC,YAAJ,CAAiB,SAAjB,CAAhB,CANF;KANW;EAAA,CAAb;;AAAA,sBAcA,cAAA,GAAgB,SAAA,GAAA;WACd,IAAC,CAAA,aADa;EAAA,CAdhB,CAAA;;AAAA,sBAiBA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,OADQ;EAAA,CAjBX,CAAA;;AAAA,sBAoBA,YAAA,GAAc,SAAA,GAAA;WACZ,IAAC,CAAA,UADW;EAAA,CApBd,CAAA;;AAAA,sBAuBA,gBAAA,GAAkB,SAAA,GAAA;WAChB,IAAC,CAAA,GADe;EAAA,CAvBlB,CAAA;;AAAA,sBA0BA,SAAA,GAAW,SAAA,GAAA;WACT,IAAC,CAAA,EAAE,CAAC,SAAJ,CAAA,EADS;EAAA,CA1BX,CAAA;;AAAA,sBA6BA,GAAA,GAAK,SAAA,GAAA;WACH,IAAC,CAAA,YAAY,CAAC,GAAd,CAAA,CAAmB,CAAC,GAApB,CAAA,EADG;EAAA,CA7BL,CAAA;;AAAA,sBAgCA,UAAA,GAAY,SAAC,GAAD,EAAM,OAAN,GAAA;WACV,IAAC,CAAA,YAAY,CAAC,GAAd,CAAA,CAAmB,CAAC,UAApB,CAA+B,GAA/B,EAAoC,OAApC,EADU;EAAA,CAhCZ,CAAA;;AAAA,sBAmCA,UAAA,GAAY,SAAC,GAAD,EAAM,MAAN,GAAA;WACV,IAAC,CAAA,YAAY,CAAC,GAAd,CAAA,CAAmB,CAAC,UAApB,CAA+B,GAA/B,EAAoC,MAApC,EADU;EAAA,CAnCZ,CAAA;;AAAA,sBAsCA,WAAA,GAAa,SAAC,IAAD,GAAA;WACX,IAAC,CAAA,YAAY,CAAC,GAAd,CAAA,CAAmB,CAAC,WAApB,CAAgC,IAAhC,EADW;EAAA,CAtCb,CAAA;;mBAAA;;IARF,CAAA;;AAAA,MAkDM,CAAC,OAAP,GAAiB,SAlDjB,CAAA"
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
var HistoryBuffer;
|
||||
|
||||
HistoryBuffer = (function() {
|
||||
function HistoryBuffer(user_id) {
|
||||
this.user_id = user_id;
|
||||
this.operation_counter = {};
|
||||
this.buffer = {};
|
||||
this.change_listeners = [];
|
||||
}
|
||||
|
||||
HistoryBuffer.prototype.getUserId = function() {
|
||||
return this.user_id;
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype.getReservedUniqueIdentifier = function() {
|
||||
return {
|
||||
creator: '_',
|
||||
op_number: '_'
|
||||
};
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype.getOperationCounter = function() {
|
||||
var ctn, res, user, _ref;
|
||||
res = {};
|
||||
_ref = this.operation_counter;
|
||||
for (user in _ref) {
|
||||
ctn = _ref[user];
|
||||
res[user] = ctn;
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype._encode = function(state_vector) {
|
||||
var json, o, o_json, o_next, o_number, o_prev, u_name, unknown, user, _ref;
|
||||
if (state_vector == null) {
|
||||
state_vector = {};
|
||||
}
|
||||
json = [];
|
||||
unknown = function(user, o_number) {
|
||||
if ((user == null) || (o_number == null)) {
|
||||
throw new Error("dah!");
|
||||
}
|
||||
return (state_vector[user] == null) || state_vector[user] <= o_number;
|
||||
};
|
||||
_ref = this.buffer;
|
||||
for (u_name in _ref) {
|
||||
user = _ref[u_name];
|
||||
for (o_number in user) {
|
||||
o = user[o_number];
|
||||
if (!isNaN(parseInt(o_number)) && unknown(u_name, o_number)) {
|
||||
o_json = o._encode();
|
||||
if (o.next_cl != null) {
|
||||
o_next = o.next_cl;
|
||||
while ((o_next.next_cl != null) && unknown(o_next.creator, o_next.op_number)) {
|
||||
o_next = o_next.next_cl;
|
||||
}
|
||||
o_json.next = o_next.getUid();
|
||||
} else if (o.prev_cl != null) {
|
||||
o_prev = o.prev_cl;
|
||||
while ((o_prev.prev_cl != null) && unknown(o_next.creator, o_next.op_number)) {
|
||||
o_prev = o_prev.prev_cl;
|
||||
}
|
||||
o_json.prev = o_prev.getUid();
|
||||
}
|
||||
json.push(o_json);
|
||||
}
|
||||
}
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype.getNextOperationIdentifier = function(user_id) {
|
||||
var uid;
|
||||
if (user_id == null) {
|
||||
user_id = this.user_id;
|
||||
}
|
||||
if (this.operation_counter[user_id] == null) {
|
||||
this.operation_counter[user_id] = 0;
|
||||
}
|
||||
uid = {
|
||||
'creator': user_id,
|
||||
'op_number': this.operation_counter[user_id]
|
||||
};
|
||||
this.operation_counter[user_id]++;
|
||||
return uid;
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype.getOperation = function(uid) {
|
||||
var _ref;
|
||||
if (uid instanceof Object) {
|
||||
return (_ref = this.buffer[uid.creator]) != null ? _ref[uid.op_number] : void 0;
|
||||
} else if (uid == null) {
|
||||
|
||||
} else {
|
||||
throw new Error("This type of uid is not defined!");
|
||||
}
|
||||
};
|
||||
|
||||
HistoryBuffer.prototype.addOperation = function(o) {
|
||||
if (this.buffer[o.creator] == null) {
|
||||
this.buffer[o.creator] = {};
|
||||
}
|
||||
if (this.operation_counter[o.creator] == null) {
|
||||
this.operation_counter[o.creator] = 0;
|
||||
}
|
||||
if (this.buffer[o.creator][o.op_number] != null) {
|
||||
throw new Error("You must not overwrite operations!");
|
||||
}
|
||||
this.buffer[o.creator][o.op_number] = o;
|
||||
if (typeof o.op_number === 'number' && o.creator !== this.getUserId()) {
|
||||
this.operation_counter[o.creator]++;
|
||||
}
|
||||
return o;
|
||||
};
|
||||
|
||||
return HistoryBuffer;
|
||||
|
||||
})();
|
||||
|
||||
module.exports = HistoryBuffer;
|
||||
|
||||
//# sourceMappingURL=HistoryBuffer.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "HistoryBuffer.js",
|
||||
"sourceRoot": "../../lib/",
|
||||
"sources": [
|
||||
"HistoryBuffer.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
||||
@@ -1,330 +0,0 @@
|
||||
var __hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
module.exports = function(HB) {
|
||||
var Delete, Delimiter, ImmutableObject, Insert, Operation, execution_listener, parser;
|
||||
parser = {};
|
||||
execution_listener = [];
|
||||
Operation = (function() {
|
||||
function Operation(uid) {
|
||||
if (uid == null) {
|
||||
uid = HB.getNextOperationIdentifier();
|
||||
}
|
||||
this.creator = uid['creator'], this.op_number = uid['op_number'];
|
||||
}
|
||||
|
||||
Operation.prototype.getUid = function() {
|
||||
return {
|
||||
'creator': this.creator,
|
||||
'op_number': this.op_number
|
||||
};
|
||||
};
|
||||
|
||||
Operation.prototype.execute = function() {
|
||||
var l, _i, _len;
|
||||
this.is_executed = true;
|
||||
for (_i = 0, _len = execution_listener.length; _i < _len; _i++) {
|
||||
l = execution_listener[_i];
|
||||
l(this._encode());
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
Operation.prototype.saveOperation = function(name, op) {
|
||||
if ((op != null ? op.execute : void 0) != null) {
|
||||
return this[name] = op;
|
||||
} else if (op != null) {
|
||||
if (this.unchecked == null) {
|
||||
this.unchecked = {};
|
||||
}
|
||||
return this.unchecked[name] = op;
|
||||
}
|
||||
};
|
||||
|
||||
Operation.prototype.validateSavedOperations = function() {
|
||||
var name, op, op_uid, success, uninstantiated, _ref;
|
||||
uninstantiated = {};
|
||||
success = this;
|
||||
_ref = this.unchecked;
|
||||
for (name in _ref) {
|
||||
op_uid = _ref[name];
|
||||
op = HB.getOperation(op_uid);
|
||||
if (op) {
|
||||
this[name] = op;
|
||||
} else {
|
||||
uninstantiated[name] = op_uid;
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
delete this.unchecked;
|
||||
if (!success) {
|
||||
this.unchecked = uninstantiated;
|
||||
}
|
||||
return success;
|
||||
};
|
||||
|
||||
return Operation;
|
||||
|
||||
})();
|
||||
Delete = (function(_super) {
|
||||
__extends(Delete, _super);
|
||||
|
||||
function Delete(uid, deletes) {
|
||||
this.saveOperation('deletes', deletes);
|
||||
Delete.__super__.constructor.call(this, uid);
|
||||
}
|
||||
|
||||
Delete.prototype._encode = function() {
|
||||
return {
|
||||
'type': "Delete",
|
||||
'uid': this.getUid(),
|
||||
'deletes': this.deletes.getUid()
|
||||
};
|
||||
};
|
||||
|
||||
Delete.prototype.execute = function() {
|
||||
if (this.validateSavedOperations()) {
|
||||
this.deletes.applyDelete(this);
|
||||
Delete.__super__.execute.apply(this, arguments);
|
||||
return this;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
return Delete;
|
||||
|
||||
})(Operation);
|
||||
parser['Delete'] = function(o) {
|
||||
var deletes_uid, uid;
|
||||
uid = o['uid'], deletes_uid = o['deletes'];
|
||||
return new Delete(uid, deletes_uid);
|
||||
};
|
||||
Insert = (function(_super) {
|
||||
__extends(Insert, _super);
|
||||
|
||||
function Insert(uid, prev_cl, next_cl, origin) {
|
||||
this.saveOperation('prev_cl', prev_cl);
|
||||
this.saveOperation('next_cl', next_cl);
|
||||
if (origin != null) {
|
||||
this.saveOperation('origin', origin);
|
||||
} else {
|
||||
this.saveOperation('origin', prev_cl);
|
||||
}
|
||||
Insert.__super__.constructor.call(this, uid);
|
||||
}
|
||||
|
||||
Insert.prototype.applyDelete = function(o) {
|
||||
if (this.deleted_by == null) {
|
||||
this.deleted_by = [];
|
||||
}
|
||||
return this.deleted_by.push(o);
|
||||
};
|
||||
|
||||
Insert.prototype.isDeleted = function() {
|
||||
var _ref;
|
||||
return ((_ref = this.deleted_by) != null ? _ref.length : void 0) > 0;
|
||||
};
|
||||
|
||||
Insert.prototype.getDistanceToOrigin = function() {
|
||||
var d, o;
|
||||
d = 0;
|
||||
o = this.prev_cl;
|
||||
while (true) {
|
||||
if (this.origin === o) {
|
||||
break;
|
||||
}
|
||||
d++;
|
||||
if (this === this.prev_cl) {
|
||||
throw new Error("this should not happen ;) ");
|
||||
}
|
||||
o = o.prev_cl;
|
||||
}
|
||||
return d;
|
||||
};
|
||||
|
||||
Insert.prototype.update_sl = function() {
|
||||
var o;
|
||||
o = this.prev_cl;
|
||||
({
|
||||
update: function(dest_cl, dest_sl) {
|
||||
var _results;
|
||||
_results = [];
|
||||
while (true) {
|
||||
if (o.isDeleted()) {
|
||||
_results.push(o = o[dest_cl]);
|
||||
} else {
|
||||
this[dest_sl] = o;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
}
|
||||
});
|
||||
update("prev_cl", "prev_sl");
|
||||
return update("next_cl", "prev_sl");
|
||||
};
|
||||
|
||||
Insert.prototype.execute = function() {
|
||||
var distance_to_origin, i, o, _ref, _ref1;
|
||||
if (this.is_executed != null) {
|
||||
return this;
|
||||
}
|
||||
if (!this.validateSavedOperations()) {
|
||||
return false;
|
||||
} else {
|
||||
if (((_ref = this.prev_cl) != null ? _ref.validateSavedOperations() : void 0) && ((_ref1 = this.next_cl) != null ? _ref1.validateSavedOperations() : void 0) && this.prev_cl.next_cl !== this) {
|
||||
distance_to_origin = 0;
|
||||
o = this.prev_cl.next_cl;
|
||||
i = 0;
|
||||
while (true) {
|
||||
if (o == null) {
|
||||
console.log(JSON.stringify(this.prev_cl.getUid()));
|
||||
console.log(JSON.stringify(this.next_cl.getUid()));
|
||||
}
|
||||
if (o !== this.next_cl) {
|
||||
if (o.getDistanceToOrigin() === i) {
|
||||
if (o.creator < this.creator) {
|
||||
this.prev_cl = o;
|
||||
distance_to_origin = i + 1;
|
||||
} else {
|
||||
|
||||
}
|
||||
} else if (o.getDistanceToOrigin() < i) {
|
||||
if (i - distance_to_origin <= o.getDistanceToOrigin()) {
|
||||
this.prev_cl = o;
|
||||
distance_to_origin = i + 1;
|
||||
} else {
|
||||
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
o = o.next_cl;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.next_cl = this.prev_cl.next_cl;
|
||||
this.prev_cl.next_cl = this;
|
||||
this.next_cl.prev_cl = this;
|
||||
}
|
||||
Insert.__super__.execute.apply(this, arguments);
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
return Insert;
|
||||
|
||||
})(Operation);
|
||||
ImmutableObject = (function(_super) {
|
||||
__extends(ImmutableObject, _super);
|
||||
|
||||
function ImmutableObject(uid, content, prev, next, origin) {
|
||||
this.content = content;
|
||||
ImmutableObject.__super__.constructor.call(this, uid, prev, next, origin);
|
||||
}
|
||||
|
||||
ImmutableObject.prototype.val = function() {
|
||||
return this.content;
|
||||
};
|
||||
|
||||
ImmutableObject.prototype._encode = function() {
|
||||
var json;
|
||||
json = {
|
||||
'type': "ImmutableObject",
|
||||
'uid': this.getUid(),
|
||||
'content': this.content
|
||||
};
|
||||
if (this.prev_cl != null) {
|
||||
json['prev'] = this.prev_cl.getUid();
|
||||
}
|
||||
if (this.next_cl != null) {
|
||||
json['next'] = this.next_cl.getUid();
|
||||
}
|
||||
if ((this.origin != null) && this.origin !== this.prev_cl) {
|
||||
json["origin"] = this.origin.getUid();
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
return ImmutableObject;
|
||||
|
||||
})(Insert);
|
||||
parser['ImmutableObject'] = function(json) {
|
||||
var content, next, origin, prev, uid;
|
||||
uid = json['uid'], content = json['content'], prev = json['prev'], next = json['next'], origin = json['origin'];
|
||||
return new ImmutableObject(uid, content, prev, next, origin);
|
||||
};
|
||||
Delimiter = (function(_super) {
|
||||
__extends(Delimiter, _super);
|
||||
|
||||
function Delimiter(uid, prev_cl, next_cl, origin) {
|
||||
this.saveOperation('prev_cl', prev_cl);
|
||||
this.saveOperation('next_cl', next_cl);
|
||||
this.saveOperation('origin', prev_cl);
|
||||
Delimiter.__super__.constructor.call(this, uid);
|
||||
}
|
||||
|
||||
Delimiter.prototype.isDeleted = function() {
|
||||
return false;
|
||||
};
|
||||
|
||||
Delimiter.prototype.execute = function() {
|
||||
var _ref, _ref1;
|
||||
if (((_ref = this.unchecked) != null ? _ref['next_cl'] : void 0) != null) {
|
||||
return Delimiter.__super__.execute.apply(this, arguments);
|
||||
} else if ((_ref1 = this.unchecked) != null ? _ref1['prev_cl'] : void 0) {
|
||||
if (this.validateSavedOperations()) {
|
||||
if (this.prev_cl.next_cl != null) {
|
||||
throw new Error("Probably duplicated operations");
|
||||
}
|
||||
this.prev_cl.next_cl = this;
|
||||
delete this.prev_cl.unchecked.next_cl;
|
||||
return Delimiter.__super__.execute.apply(this, arguments);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if ((this.prev_cl != null) && (this.prev_cl.next_cl == null)) {
|
||||
delete this.prev_cl.unchecked.next_cl;
|
||||
return this.prev_cl.next_cl = this;
|
||||
} else if ((this.prev_cl != null) || (this.next_cl != null)) {
|
||||
return Delimiter.__super__.execute.apply(this, arguments);
|
||||
} else {
|
||||
throw new Error("Delimiter is unsufficient defined!");
|
||||
}
|
||||
};
|
||||
|
||||
Delimiter.prototype._encode = function() {
|
||||
var _ref, _ref1;
|
||||
return {
|
||||
'type': "Delimiter",
|
||||
'uid': this.getUid(),
|
||||
'prev': (_ref = this.prev_cl) != null ? _ref.getUid() : void 0,
|
||||
'next': (_ref1 = this.next_cl) != null ? _ref1.getUid() : void 0
|
||||
};
|
||||
};
|
||||
|
||||
return Delimiter;
|
||||
|
||||
})(Operation);
|
||||
parser['Delimiter'] = function(json) {
|
||||
var next, prev, uid;
|
||||
uid = json['uid'], prev = json['prev'], next = json['next'];
|
||||
return new Delimiter(uid, prev, next);
|
||||
};
|
||||
return {
|
||||
'types': {
|
||||
'Delete': Delete,
|
||||
'Insert': Insert,
|
||||
'Delimiter': Delimiter,
|
||||
'Operation': Operation,
|
||||
'ImmutableObject': ImmutableObject
|
||||
},
|
||||
'parser': parser,
|
||||
'execution_listener': execution_listener
|
||||
};
|
||||
};
|
||||
|
||||
//# sourceMappingURL=BasicTypes.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1,168 +0,0 @@
|
||||
var text_types_uninitialized,
|
||||
__hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
text_types_uninitialized = require("./TextTypes.coffee");
|
||||
|
||||
module.exports = function(HB) {
|
||||
var JsonType, createJsonWrapper, parser, text_types, types;
|
||||
text_types = text_types_uninitialized(HB);
|
||||
types = text_types.types;
|
||||
parser = text_types.parser;
|
||||
createJsonWrapper = function(_jsonType) {
|
||||
var JsonWrapper;
|
||||
JsonWrapper = (function() {
|
||||
function JsonWrapper(jsonType) {
|
||||
var name, obj, _fn, _ref;
|
||||
_ref = jsonType.map;
|
||||
_fn = function(name, obj) {
|
||||
return Object.defineProperty(JsonWrapper.prototype, name, {
|
||||
get: function() {
|
||||
var x;
|
||||
x = obj.val();
|
||||
if (x instanceof JsonType) {
|
||||
return createJsonWrapper(x);
|
||||
} else if (x instanceof types.ImmutableObject) {
|
||||
return x.val();
|
||||
} else {
|
||||
return x;
|
||||
}
|
||||
},
|
||||
set: function(o) {
|
||||
var o_name, o_obj, overwrite, _results;
|
||||
if (o.constructor === {}.constructor) {
|
||||
overwrite = jsonType.val(name);
|
||||
_results = [];
|
||||
for (o_name in o) {
|
||||
o_obj = o[o_name];
|
||||
_results.push(overwrite.val(o_name, o_obj, 'immutable'));
|
||||
}
|
||||
return _results;
|
||||
} else {
|
||||
return jsonType.val(name, o, 'immutable');
|
||||
}
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: false
|
||||
});
|
||||
};
|
||||
for (name in _ref) {
|
||||
obj = _ref[name];
|
||||
_fn(name, obj);
|
||||
}
|
||||
}
|
||||
|
||||
return JsonWrapper;
|
||||
|
||||
})();
|
||||
return new JsonWrapper(_jsonType);
|
||||
};
|
||||
JsonType = (function(_super) {
|
||||
__extends(JsonType, _super);
|
||||
|
||||
function JsonType(uid, initial_value, mutable) {
|
||||
var name, o;
|
||||
JsonType.__super__.constructor.call(this, uid);
|
||||
if (initial_value != null) {
|
||||
if (typeof initial_value !== "object") {
|
||||
throw new Error("The initial value of JsonTypes must be of type Object! (current type: " + (typeof initial_value) + ")");
|
||||
}
|
||||
for (name in initial_value) {
|
||||
o = initial_value[name];
|
||||
this.val(name, o, mutable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
JsonType.prototype.mutable_default = true;
|
||||
|
||||
JsonType.prototype.setMutableDefault = function(mutable) {
|
||||
if (mutable === true || mutable === 'mutable') {
|
||||
JsonType.prototype.mutable_default = true;
|
||||
} else if (mutable === false || mutable === 'immutable') {
|
||||
JsonType.prototype.mutable_default = false;
|
||||
} else {
|
||||
throw new Error('Set mutable either "mutable" or "immutable"!');
|
||||
}
|
||||
return 'OK';
|
||||
};
|
||||
|
||||
JsonType.prototype.val = function(name, content, mutable) {
|
||||
var json, o, o_name, obj, word;
|
||||
if (typeof name === 'object') {
|
||||
for (o_name in name) {
|
||||
o = name[o_name];
|
||||
this.val(o_name, o, content);
|
||||
}
|
||||
return this;
|
||||
} else if ((name != null) && (content != null)) {
|
||||
if (mutable != null) {
|
||||
if (mutable === true || mutable === 'mutable') {
|
||||
mutable = true;
|
||||
} else {
|
||||
mutable = false;
|
||||
}
|
||||
} else {
|
||||
mutable = this.mutable_default;
|
||||
}
|
||||
if (typeof content === 'function') {
|
||||
return this;
|
||||
} else if (((!mutable) || typeof content === 'number') && content.constructor !== Object) {
|
||||
obj = HB.addOperation(new types.ImmutableObject(void 0, content)).execute();
|
||||
return JsonType.__super__.val.call(this, name, obj);
|
||||
} else {
|
||||
if (typeof content === 'string') {
|
||||
word = HB.addOperation(new types.Word(void 0)).execute();
|
||||
word.insertText(0, content);
|
||||
return JsonType.__super__.val.call(this, name, word);
|
||||
} else if (content.constructor === Object) {
|
||||
json = HB.addOperation(new JsonType(void 0, content, mutable)).execute();
|
||||
return JsonType.__super__.val.call(this, name, json);
|
||||
} else {
|
||||
throw new Error("You must not set " + (typeof content) + "-types in collaborative Json-objects!");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return JsonType.__super__.val.call(this, name, content);
|
||||
}
|
||||
};
|
||||
|
||||
Object.defineProperty(JsonType.prototype, 'value', {
|
||||
get: function() {
|
||||
return createJsonWrapper(this);
|
||||
},
|
||||
set: function(o) {
|
||||
var o_name, o_obj, _results;
|
||||
if (o.constructor === {}.constructor) {
|
||||
_results = [];
|
||||
for (o_name in o) {
|
||||
o_obj = o[o_name];
|
||||
_results.push(this.val(o_name, o_obj, 'immutable'));
|
||||
}
|
||||
return _results;
|
||||
} else {
|
||||
throw new Error("You must only set Object values!");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
JsonType.prototype._encode = function() {
|
||||
return {
|
||||
'type': "JsonType",
|
||||
'uid': this.getUid()
|
||||
};
|
||||
};
|
||||
|
||||
return JsonType;
|
||||
|
||||
})(types.MapManager);
|
||||
parser['JsonType'] = function(json) {
|
||||
var uid;
|
||||
uid = json['uid'];
|
||||
return new JsonType(uid);
|
||||
};
|
||||
types['JsonType'] = JsonType;
|
||||
return text_types;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=JsonTypes.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "JsonTypes.js",
|
||||
"sourceRoot": "../../../lib/Types/",
|
||||
"sources": [
|
||||
"JsonTypes.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "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"
|
||||
}
|
||||
@@ -1,274 +0,0 @@
|
||||
var basic_types_uninitialized,
|
||||
__hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
basic_types_uninitialized = require("./BasicTypes.coffee");
|
||||
|
||||
module.exports = function(HB) {
|
||||
var AddName, ListManager, MapManager, ReplaceManager, Replaceable, basic_types, parser, types;
|
||||
basic_types = basic_types_uninitialized(HB);
|
||||
types = basic_types.types;
|
||||
parser = basic_types.parser;
|
||||
MapManager = (function(_super) {
|
||||
__extends(MapManager, _super);
|
||||
|
||||
function MapManager(uid) {
|
||||
this.map = {};
|
||||
MapManager.__super__.constructor.call(this, uid);
|
||||
}
|
||||
|
||||
MapManager.prototype.val = function(name, content) {
|
||||
var o, obj, result, _ref, _ref1;
|
||||
if (content != null) {
|
||||
if (this.map[name] == null) {
|
||||
HB.addOperation(new AddName(void 0, this, name)).execute();
|
||||
}
|
||||
this.map[name].replace(content);
|
||||
return this;
|
||||
} else if (name != null) {
|
||||
obj = (_ref = this.map[name]) != null ? _ref.val() : void 0;
|
||||
if (obj instanceof types.ImmutableObject) {
|
||||
return obj.val();
|
||||
} else {
|
||||
return obj;
|
||||
}
|
||||
} else {
|
||||
result = {};
|
||||
_ref1 = this.map;
|
||||
for (name in _ref1) {
|
||||
o = _ref1[name];
|
||||
obj = o.val();
|
||||
if (obj instanceof types.ImmutableObject || obj instanceof MapManager) {
|
||||
obj = obj.val();
|
||||
}
|
||||
result[name] = obj;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
return MapManager;
|
||||
|
||||
})(types.Operation);
|
||||
AddName = (function(_super) {
|
||||
__extends(AddName, _super);
|
||||
|
||||
function AddName(uid, map_manager, name) {
|
||||
this.name = name;
|
||||
this.saveOperation('map_manager', map_manager);
|
||||
AddName.__super__.constructor.call(this, uid);
|
||||
}
|
||||
|
||||
AddName.prototype.execute = function() {
|
||||
var beg, end, uid_beg, uid_end, uid_r;
|
||||
if (!this.validateSavedOperations()) {
|
||||
return false;
|
||||
} else {
|
||||
uid_r = this.map_manager.getUid();
|
||||
uid_r.op_number = "_" + uid_r.op_number + "_RM_" + this.name;
|
||||
if (HB.getOperation(uid_r) == null) {
|
||||
uid_beg = this.map_manager.getUid();
|
||||
uid_beg.op_number = "_" + uid_beg.op_number + "_RM_" + this.name + "_beginning";
|
||||
uid_end = this.map_manager.getUid();
|
||||
uid_end.op_number = "_" + uid_end.op_number + "_RM_" + this.name + "_end";
|
||||
beg = HB.addOperation(new types.Delimiter(uid_beg, void 0, uid_end)).execute();
|
||||
end = HB.addOperation(new types.Delimiter(uid_end, beg, void 0)).execute();
|
||||
this.map_manager.map[this.name] = HB.addOperation(new ReplaceManager(void 0, uid_r, beg, end)).execute();
|
||||
}
|
||||
return AddName.__super__.execute.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
AddName.prototype._encode = function() {
|
||||
return {
|
||||
'type': "AddName",
|
||||
'uid': this.getUid(),
|
||||
'map_manager': this.map_manager.getUid(),
|
||||
'name': this.name
|
||||
};
|
||||
};
|
||||
|
||||
return AddName;
|
||||
|
||||
})(types.Operation);
|
||||
parser['AddName'] = function(json) {
|
||||
var map_manager, name, uid;
|
||||
map_manager = json['map_manager'], uid = json['uid'], name = json['name'];
|
||||
return new AddName(uid, map_manager, name);
|
||||
};
|
||||
ListManager = (function(_super) {
|
||||
__extends(ListManager, _super);
|
||||
|
||||
function ListManager(uid, beginning, end, prev, next, origin) {
|
||||
if ((beginning != null) && (end != null)) {
|
||||
this.saveOperation('beginning', beginning);
|
||||
this.saveOperation('end', end);
|
||||
} else {
|
||||
this.beginning = HB.addOperation(new types.Delimiter(void 0, void 0, void 0));
|
||||
this.end = HB.addOperation(new types.Delimiter(void 0, this.beginning, void 0));
|
||||
this.beginning.next_cl = this.end;
|
||||
this.beginning.execute();
|
||||
this.end.execute();
|
||||
}
|
||||
ListManager.__super__.constructor.call(this, uid, prev, next, origin);
|
||||
}
|
||||
|
||||
ListManager.prototype.getLastOperation = function() {
|
||||
return this.end.prev_cl;
|
||||
};
|
||||
|
||||
ListManager.prototype.getFirstOperation = function() {
|
||||
return this.beginning.next_cl;
|
||||
};
|
||||
|
||||
ListManager.prototype.toArray = function() {
|
||||
var o, result;
|
||||
o = this.beginning.next_cl;
|
||||
result = [];
|
||||
while (o !== this.end) {
|
||||
result.push(o);
|
||||
o = o.next_cl;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
ListManager.prototype.getOperationByPosition = function(position) {
|
||||
var o;
|
||||
o = this.beginning.next_cl;
|
||||
if (position > 0) {
|
||||
while (true) {
|
||||
o = o.next_cl;
|
||||
if (!o.isDeleted()) {
|
||||
position -= 1;
|
||||
}
|
||||
if (position === 0) {
|
||||
break;
|
||||
}
|
||||
if (o instanceof types.Delimiter) {
|
||||
throw new Error("position parameter exceeded the length of the document!");
|
||||
}
|
||||
}
|
||||
}
|
||||
return o;
|
||||
};
|
||||
|
||||
return ListManager;
|
||||
|
||||
})(types.Insert);
|
||||
ReplaceManager = (function(_super) {
|
||||
__extends(ReplaceManager, _super);
|
||||
|
||||
function ReplaceManager(initial_content, uid, beginning, end, prev, next, origin) {
|
||||
ReplaceManager.__super__.constructor.call(this, uid, beginning, end, prev, next, origin);
|
||||
if (initial_content != null) {
|
||||
this.replace(initial_content);
|
||||
}
|
||||
}
|
||||
|
||||
ReplaceManager.prototype.replace = function(content) {
|
||||
var o, op;
|
||||
o = this.getLastOperation();
|
||||
op = new Replaceable(content, this, void 0, o, o.next_cl);
|
||||
return HB.addOperation(op).execute();
|
||||
};
|
||||
|
||||
ReplaceManager.prototype.val = function() {
|
||||
var o;
|
||||
o = this.getLastOperation();
|
||||
if (o instanceof types.Delimiter) {
|
||||
throw new Error("dtrn");
|
||||
}
|
||||
return o.val();
|
||||
};
|
||||
|
||||
ReplaceManager.prototype._encode = function() {
|
||||
var json;
|
||||
json = {
|
||||
'type': "ReplaceManager",
|
||||
'uid': this.getUid(),
|
||||
'beginning': this.beginning.getUid(),
|
||||
'end': this.end.getUid()
|
||||
};
|
||||
if ((this.prev_cl != null) && (this.next_cl != null)) {
|
||||
json['prev'] = this.prev_cl.getUid();
|
||||
json['next'] = this.next_cl.getUid();
|
||||
}
|
||||
if ((this.origin != null) && this.origin !== this.prev_cl) {
|
||||
json["origin"] = this.origin.getUid();
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
return ReplaceManager;
|
||||
|
||||
})(ListManager);
|
||||
parser["ReplaceManager"] = function(json) {
|
||||
var beginning, content, end, next, origin, prev, uid;
|
||||
content = json['content'], uid = json['uid'], prev = json['prev'], next = json['next'], origin = json['origin'], beginning = json['beginning'], end = json['end'];
|
||||
return new ReplaceManager(content, uid, beginning, end, prev, next, origin);
|
||||
};
|
||||
Replaceable = (function(_super) {
|
||||
__extends(Replaceable, _super);
|
||||
|
||||
function Replaceable(content, parent, uid, prev, next, origin) {
|
||||
this.saveOperation('content', content);
|
||||
this.saveOperation('parent', parent);
|
||||
if (!((prev != null) && (next != null) && (content != null))) {
|
||||
throw new Error("You must define content, prev, and next for Replaceable-types!");
|
||||
}
|
||||
Replaceable.__super__.constructor.call(this, uid, prev, next, origin);
|
||||
}
|
||||
|
||||
Replaceable.prototype.val = function() {
|
||||
return this.content;
|
||||
};
|
||||
|
||||
Replaceable.prototype.replace = function(content) {
|
||||
return this.parent.replace(content);
|
||||
};
|
||||
|
||||
Replaceable.prototype.execute = function() {
|
||||
var _base;
|
||||
if (!this.validateSavedOperations()) {
|
||||
return false;
|
||||
} else {
|
||||
if (typeof (_base = this.content).setReplaceManager === "function") {
|
||||
_base.setReplaceManager(this.parent);
|
||||
}
|
||||
Replaceable.__super__.execute.apply(this, arguments);
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
Replaceable.prototype._encode = function() {
|
||||
var json;
|
||||
json = {
|
||||
'type': "Replaceable",
|
||||
'content': this.content.getUid(),
|
||||
'ReplaceManager': this.parent.getUid(),
|
||||
'prev': this.prev_cl.getUid(),
|
||||
'next': this.next_cl.getUid(),
|
||||
'uid': this.getUid()
|
||||
};
|
||||
if ((this.origin != null) && this.origin !== this.prev_cl) {
|
||||
json["origin"] = this.origin.getUid();
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
return Replaceable;
|
||||
|
||||
})(types.Insert);
|
||||
parser["Replaceable"] = function(json) {
|
||||
var content, next, origin, parent, prev, uid;
|
||||
content = json['content'], parent = json['ReplaceManager'], uid = json['uid'], prev = json['prev'], next = json['next'], origin = json['origin'];
|
||||
return new Replaceable(content, parent, uid, prev, next, origin);
|
||||
};
|
||||
types['ListManager'] = ListManager;
|
||||
types['MapManager'] = MapManager;
|
||||
types['ReplaceManager'] = ReplaceManager;
|
||||
types['Replaceable'] = Replaceable;
|
||||
return basic_types;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=StructuredTypes.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1,179 +0,0 @@
|
||||
var structured_types_uninitialized,
|
||||
__hasProp = {}.hasOwnProperty,
|
||||
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
||||
|
||||
structured_types_uninitialized = require("./StructuredTypes.coffee");
|
||||
|
||||
module.exports = function(HB) {
|
||||
var TextDelete, TextInsert, Word, parser, structured_types, types;
|
||||
structured_types = structured_types_uninitialized(HB);
|
||||
types = structured_types.types;
|
||||
parser = structured_types.parser;
|
||||
TextDelete = (function(_super) {
|
||||
__extends(TextDelete, _super);
|
||||
|
||||
function TextDelete() {
|
||||
return TextDelete.__super__.constructor.apply(this, arguments);
|
||||
}
|
||||
|
||||
return TextDelete;
|
||||
|
||||
})(types.Delete);
|
||||
parser["TextDelete"] = parser["Delete"];
|
||||
TextInsert = (function(_super) {
|
||||
__extends(TextInsert, _super);
|
||||
|
||||
function TextInsert(content, uid, prev, next, origin) {
|
||||
this.content = content;
|
||||
if (!((prev != null) && (next != null))) {
|
||||
throw new Error("You must define prev, and next for TextInsert-types!");
|
||||
}
|
||||
TextInsert.__super__.constructor.call(this, uid, prev, next, origin);
|
||||
}
|
||||
|
||||
TextInsert.prototype.getLength = function() {
|
||||
if (this.isDeleted()) {
|
||||
return 0;
|
||||
} else {
|
||||
return this.content.length;
|
||||
}
|
||||
};
|
||||
|
||||
TextInsert.prototype.val = function(current_position) {
|
||||
if (this.isDeleted()) {
|
||||
return "";
|
||||
} else {
|
||||
return this.content;
|
||||
}
|
||||
};
|
||||
|
||||
TextInsert.prototype._encode = function() {
|
||||
var json;
|
||||
json = {
|
||||
'type': "TextInsert",
|
||||
'content': this.content,
|
||||
'uid': this.getUid(),
|
||||
'prev': this.prev_cl.getUid(),
|
||||
'next': this.next_cl.getUid()
|
||||
};
|
||||
if ((this.origin != null) && this.origin !== this.prev_cl) {
|
||||
json["origin"] = this.origin.getUid();
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
return TextInsert;
|
||||
|
||||
})(types.Insert);
|
||||
parser["TextInsert"] = function(json) {
|
||||
var content, next, origin, prev, uid;
|
||||
content = json['content'], uid = json['uid'], prev = json['prev'], next = json['next'], origin = json['origin'];
|
||||
return new TextInsert(content, uid, prev, next, origin);
|
||||
};
|
||||
Word = (function(_super) {
|
||||
__extends(Word, _super);
|
||||
|
||||
function Word(uid, beginning, end, prev, next, origin) {
|
||||
Word.__super__.constructor.call(this, uid, beginning, end, prev, next, origin);
|
||||
}
|
||||
|
||||
Word.prototype.insertText = function(position, content) {
|
||||
var c, o, op, _i, _len, _results;
|
||||
o = this.getOperationByPosition(position);
|
||||
_results = [];
|
||||
for (_i = 0, _len = content.length; _i < _len; _i++) {
|
||||
c = content[_i];
|
||||
op = new TextInsert(c, void 0, o.prev_cl, o);
|
||||
_results.push(HB.addOperation(op).execute());
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Word.prototype.deleteText = function(position, length) {
|
||||
var d, i, o, _i, _results;
|
||||
o = this.getOperationByPosition(position);
|
||||
_results = [];
|
||||
for (i = _i = 0; 0 <= length ? _i < length : _i > length; i = 0 <= length ? ++_i : --_i) {
|
||||
d = HB.addOperation(new TextDelete(void 0, o)).execute();
|
||||
o = o.next_cl;
|
||||
while (o.isDeleted()) {
|
||||
if (o instanceof types.Delimiter) {
|
||||
throw new Error("You can't delete more than there is..");
|
||||
}
|
||||
o = o.next_cl;
|
||||
}
|
||||
_results.push(d._encode());
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Word.prototype.replaceText = function(text) {
|
||||
var word;
|
||||
if (this.replace_manager != null) {
|
||||
word = HB.addOperation(new Word(void 0)).execute();
|
||||
word.insertText(0, text);
|
||||
return this.replace_manager.replace(word);
|
||||
} else {
|
||||
throw new Error("This type is currently not maintained by a ReplaceManager!");
|
||||
}
|
||||
};
|
||||
|
||||
Word.prototype.val = function() {
|
||||
var c, o;
|
||||
c = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.toArray();
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
o = _ref[_i];
|
||||
if (o.val != null) {
|
||||
_results.push(o.val());
|
||||
} else {
|
||||
_results.push("");
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
return c.join('');
|
||||
};
|
||||
|
||||
Word.prototype.setReplaceManager = function(op) {
|
||||
this.saveOperation('replace_manager', op);
|
||||
return this.validateSavedOperations;
|
||||
};
|
||||
|
||||
Word.prototype._encode = function() {
|
||||
var json;
|
||||
json = {
|
||||
'type': "Word",
|
||||
'uid': this.getUid(),
|
||||
'beginning': this.beginning.getUid(),
|
||||
'end': this.end.getUid()
|
||||
};
|
||||
if (this.prev_cl != null) {
|
||||
json['prev'] = this.prev_cl.getUid();
|
||||
}
|
||||
if (this.next_cl != null) {
|
||||
json['next'] = this.next_cl.getUid();
|
||||
}
|
||||
if ((this.origin != null) && this.origin !== this.prev_cl) {
|
||||
json["origin"] = this.origin.getUid();
|
||||
}
|
||||
return json;
|
||||
};
|
||||
|
||||
return Word;
|
||||
|
||||
})(types.ListManager);
|
||||
parser['Word'] = function(json) {
|
||||
var beginning, end, next, origin, prev, uid;
|
||||
uid = json['uid'], beginning = json['beginning'], end = json['end'], prev = json['prev'], next = json['next'], origin = json['origin'];
|
||||
return new Word(uid, beginning, end, prev, next, origin);
|
||||
};
|
||||
types['TextInsert'] = TextInsert;
|
||||
types['TextDelete'] = TextDelete;
|
||||
types['Word'] = Word;
|
||||
return structured_types;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=TextTypes.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "TextTypes.js",
|
||||
"sourceRoot": "../../../lib/Types/",
|
||||
"sources": [
|
||||
"TextTypes.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AAAA,IAAA,8BAAA;EAAA;iSAAA;;AAAA,8BAAA,GAAiC,OAAA,CAAQ,0BAAR,CAAjC,CAAA;;AAAA,MAEM,CAAC,OAAP,GAAiB,SAAC,EAAD,GAAA;AACf,MAAA,6DAAA;AAAA,EAAA,gBAAA,GAAmB,8BAAA,CAA+B,EAA/B,CAAnB,CAAA;AAAA,EACA,KAAA,GAAQ,gBAAgB,CAAC,KADzB,CAAA;AAAA,EAEA,MAAA,GAAS,gBAAgB,CAAC,MAF1B,CAAA;AAAA,EAQM;AAAN,iCAAA,CAAA;;;;KAAA;;sBAAA;;KAAyB,KAAK,CAAC,OAR/B,CAAA;AAAA,EASA,MAAO,CAAA,YAAA,CAAP,GAAuB,MAAO,CAAA,QAAA,CAT9B,CAAA;AAAA,EAcM;AAKJ,iCAAA,CAAA;;AAAa,IAAA,oBAAE,OAAF,EAAW,GAAX,EAAgB,IAAhB,EAAsB,IAAtB,EAA4B,MAA5B,GAAA;AACX,MADY,IAAC,CAAA,UAAA,OACb,CAAA;AAAA,MAAA,IAAG,CAAA,CAAK,cAAA,IAAU,cAAX,CAAP;AACE,cAAU,IAAA,KAAA,CAAM,sDAAN,CAAV,CADF;OAAA;AAAA,MAEA,4CAAM,GAAN,EAAW,IAAX,EAAiB,IAAjB,EAAuB,MAAvB,CAFA,CADW;IAAA,CAAb;;AAAA,yBAOA,SAAA,GAAW,SAAA,GAAA;AACT,MAAA,IAAG,IAAC,CAAA,SAAD,CAAA,CAAH;eACE,EADF;OAAA,MAAA;eAGE,IAAC,CAAA,OAAO,CAAC,OAHX;OADS;IAAA,CAPX,CAAA;;AAAA,yBAkBA,GAAA,GAAK,SAAC,gBAAD,GAAA;AACH,MAAA,IAAG,IAAC,CAAA,SAAD,CAAA,CAAH;eACE,GADF;OAAA,MAAA;eAGE,IAAC,CAAA,QAHH;OADG;IAAA,CAlBL,CAAA;;AAAA,yBA4BA,OAAA,GAAS,SAAA,GAAA;AACP,UAAA,IAAA;AAAA,MAAA,IAAA,GACE;AAAA,QACE,MAAA,EAAQ,YADV;AAAA,QAEE,SAAA,EAAW,IAAC,CAAA,OAFd;AAAA,QAGE,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAHV;AAAA,QAIE,MAAA,EAAQ,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAJV;AAAA,QAKE,MAAA,EAAQ,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CALV;OADF,CAAA;AAQA,MAAA,IAAG,qBAAA,IAAa,IAAC,CAAA,MAAD,KAAa,IAAC,CAAA,OAA9B;AACE,QAAA,IAAK,CAAA,QAAA,CAAL,GAAiB,IAAC,CAAA,MAAM,CAAC,MAAR,CAAA,CAAjB,CADF;OARA;aAUA,KAXO;IAAA,CA5BT,CAAA;;sBAAA;;KALuB,KAAK,CAAC,OAd/B,CAAA;AAAA,EA4DA,MAAO,CAAA,YAAA,CAAP,GAAuB,SAAC,IAAD,GAAA;AACrB,QAAA,gCAAA;AAAA,IACc,eAAZ,UADF,EAEU,WAAR,MAFF,EAGU,YAAR,OAHF,EAIU,YAAR,OAJF,EAKa,cAAX,SALF,CAAA;WAOI,IAAA,UAAA,CAAW,OAAX,EAAoB,GAApB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,MAArC,EARiB;EAAA,CA5DvB,CAAA;AAAA,EAyEM;AAKJ,2BAAA,CAAA;;AAAa,IAAA,cAAC,GAAD,EAAM,SAAN,EAAiB,GAAjB,EAAsB,IAAtB,EAA4B,IAA5B,EAAkC,MAAlC,GAAA;AACX,MAAA,sCAAM,GAAN,EAAW,SAAX,EAAsB,GAAtB,EAA2B,IAA3B,EAAiC,IAAjC,EAAuC,MAAvC,CAAA,CADW;IAAA,CAAb;;AAAA,mBAMA,UAAA,GAAY,SAAC,QAAD,EAAW,OAAX,GAAA;AACV,UAAA,4BAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,sBAAD,CAAwB,QAAxB,CAAJ,CAAA;AACA;WAAA,8CAAA;wBAAA;AACE,QAAA,EAAA,GAAS,IAAA,UAAA,CAAW,CAAX,EAAc,MAAd,EAAyB,CAAC,CAAC,OAA3B,EAAoC,CAApC,CAAT,CAAA;AAAA,sBACA,EAAE,CAAC,YAAH,CAAgB,EAAhB,CAAmB,CAAC,OAApB,CAAA,EADA,CADF;AAAA;sBAFU;IAAA,CANZ,CAAA;;AAAA,mBAeA,UAAA,GAAY,SAAC,QAAD,EAAW,MAAX,GAAA;AACV,UAAA,qBAAA;AAAA,MAAA,CAAA,GAAI,IAAC,CAAA,sBAAD,CAAwB,QAAxB,CAAJ,CAAA;AAEA;WAAS,kFAAT,GAAA;AACE,QAAA,CAAA,GAAI,EAAE,CAAC,YAAH,CAAoB,IAAA,UAAA,CAAW,MAAX,EAAsB,CAAtB,CAApB,CAA4C,CAAC,OAA7C,CAAA,CAAJ,CAAA;AAAA,QACA,CAAA,GAAI,CAAC,CAAC,OADN,CAAA;AAEA,eAAM,CAAC,CAAC,SAAF,CAAA,CAAN,GAAA;AACE,UAAA,IAAG,CAAA,YAAa,KAAK,CAAC,SAAtB;AACE,kBAAU,IAAA,KAAA,CAAM,uCAAN,CAAV,CADF;WAAA;AAAA,UAEA,CAAA,GAAI,CAAC,CAAC,OAFN,CADF;QAAA,CAFA;AAAA,sBAMA,CAAC,CAAC,OAAF,CAAA,EANA,CADF;AAAA;sBAHU;IAAA,CAfZ,CAAA;;AAAA,mBAkCA,WAAA,GAAa,SAAC,IAAD,GAAA;AACX,UAAA,IAAA;AAAA,MAAA,IAAG,4BAAH;AACE,QAAA,IAAA,GAAO,EAAE,CAAC,YAAH,CAAoB,IAAA,IAAA,CAAK,MAAL,CAApB,CAAmC,CAAC,OAApC,CAAA,CAAP,CAAA;AAAA,QACA,IAAI,CAAC,UAAL,CAAgB,CAAhB,EAAmB,IAAnB,CADA,CAAA;eAEA,IAAC,CAAA,eAAe,CAAC,OAAjB,CAAyB,IAAzB,EAHF;OAAA,MAAA;AAKE,cAAU,IAAA,KAAA,CAAM,4DAAN,CAAV,CALF;OADW;IAAA,CAlCb,CAAA;;AAAA,mBA6CA,GAAA,GAAK,SAAA,GAAA;AACH,UAAA,IAAA;AAAA,MAAA,CAAA;;AAAI;AAAA;aAAA,2CAAA;uBAAA;AACF,UAAA,IAAG,aAAH;0BACE,CAAC,CAAC,GAAF,CAAA,GADF;WAAA,MAAA;0BAGE,IAHF;WADE;AAAA;;mBAAJ,CAAA;aAKA,CAAC,CAAC,IAAF,CAAO,EAAP,EANG;IAAA,CA7CL,CAAA;;AAAA,mBAyDA,iBAAA,GAAmB,SAAC,EAAD,GAAA;AACjB,MAAA,IAAC,CAAA,aAAD,CAAe,iBAAf,EAAkC,EAAlC,CAAA,CAAA;aACA,IAAC,CAAA,wBAFgB;IAAA,CAzDnB,CAAA;;AAAA,mBA6DA,OAAA,GAAS,SAAA,GAAA;AACP,UAAA,IAAA;AAAA,MAAA,IAAA,GAAO;AAAA,QACL,MAAA,EAAQ,MADH;AAAA,QAEL,KAAA,EAAQ,IAAC,CAAA,MAAD,CAAA,CAFH;AAAA,QAGL,WAAA,EAAc,IAAC,CAAA,SAAS,CAAC,MAAX,CAAA,CAHT;AAAA,QAIL,KAAA,EAAQ,IAAC,CAAA,GAAG,CAAC,MAAL,CAAA,CAJH;OAAP,CAAA;AAMA,MAAA,IAAG,oBAAH;AACE,QAAA,IAAK,CAAA,MAAA,CAAL,GAAe,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAAf,CADF;OANA;AAQA,MAAA,IAAG,oBAAH;AACE,QAAA,IAAK,CAAA,MAAA,CAAL,GAAe,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAAf,CADF;OARA;AAUA,MAAA,IAAG,qBAAA,IAAa,IAAC,CAAA,MAAD,KAAa,IAAC,CAAA,OAA9B;AACE,QAAA,IAAK,CAAA,QAAA,CAAL,GAAiB,IAAC,CAAA,MAAM,CAAC,MAAR,CAAA,CAAjB,CADF;OAVA;aAYA,KAbO;IAAA,CA7DT,CAAA;;gBAAA;;KALiB,KAAK,CAAC,YAzEzB,CAAA;AAAA,EA0JA,MAAO,CAAA,MAAA,CAAP,GAAiB,SAAC,IAAD,GAAA;AACf,QAAA,uCAAA;AAAA,IACU,WAAR,MADF,EAEgB,iBAAd,YAFF,EAGU,WAAR,MAHF,EAIU,YAAR,OAJF,EAKU,YAAR,OALF,EAMa,cAAX,SANF,CAAA;WAQI,IAAA,IAAA,CAAK,GAAL,EAAU,SAAV,EAAqB,GAArB,EAA0B,IAA1B,EAAgC,IAAhC,EAAsC,MAAtC,EATW;EAAA,CA1JjB,CAAA;AAAA,EAqKA,KAAM,CAAA,YAAA,CAAN,GAAsB,UArKtB,CAAA;AAAA,EAsKA,KAAM,CAAA,YAAA,CAAN,GAAsB,UAtKtB,CAAA;AAAA,EAuKA,KAAM,CAAA,MAAA,CAAN,GAAgB,IAvKhB,CAAA;SAwKA,iBAzKe;AAAA,CAFjB,CAAA"
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
|
||||
//# sourceMappingURL=XmlTypes.js.map
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"file": "XmlTypes.js",
|
||||
"sourceRoot": "../../../lib/Types/",
|
||||
"sources": [
|
||||
"XmlTypes.coffee"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AA2KkB"
|
||||
}
|
||||
@@ -1,442 +0,0 @@
|
||||
(function() {
|
||||
var Connector_uninitialized, Test, Yatta, chai, expect, should, sinon, sinonChai, _,
|
||||
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
|
||||
|
||||
chai = require('chai');
|
||||
|
||||
expect = chai.expect;
|
||||
|
||||
should = chai.should();
|
||||
|
||||
sinon = require('sinon');
|
||||
|
||||
sinonChai = require('sinon-chai');
|
||||
|
||||
_ = require("underscore");
|
||||
|
||||
chai.use(sinonChai);
|
||||
|
||||
Yatta = require("../lib/Frameworks/JsonYatta.coffee");
|
||||
|
||||
Connector_uninitialized = require("../lib/Connectors/TestConnector.coffee");
|
||||
|
||||
Test = (function() {
|
||||
function Test(name_suffix) {
|
||||
this.name_suffix = name_suffix != null ? name_suffix : "";
|
||||
this.applyRandomOp = __bind(this.applyRandomOp, this);
|
||||
this.generateRandomOp = __bind(this.generateRandomOp, this);
|
||||
this.generateDeleteOp = __bind(this.generateDeleteOp, this);
|
||||
this.generateReplaceOp = __bind(this.generateReplaceOp, this);
|
||||
this.generateInsertOp = __bind(this.generateInsertOp, this);
|
||||
this.number_of_test_cases_multiplier = 1;
|
||||
this.repeat_this = 5 * this.number_of_test_cases_multiplier;
|
||||
this.doSomething_amount = 1000 * this.number_of_test_cases_multiplier;
|
||||
this.number_of_engines = 10 + this.number_of_test_cases_multiplier - 1;
|
||||
this.time = 0;
|
||||
this.ops = 0;
|
||||
this.time_now = 0;
|
||||
this.debug = true;
|
||||
this.reinitialize();
|
||||
}
|
||||
|
||||
Test.prototype.reinitialize = function() {
|
||||
var i, _i, _ref;
|
||||
this.users = [];
|
||||
this.Connector = Connector_uninitialized(this.users);
|
||||
for (i = _i = 0, _ref = this.number_of_engines; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
|
||||
this.users.push(new Yatta(i + this.name_suffix, this.Connector));
|
||||
}
|
||||
this.users[0].val('name', "i");
|
||||
return this.flushAll();
|
||||
};
|
||||
|
||||
Test.prototype.getSomeUser = function() {
|
||||
var i;
|
||||
i = _.random(0, this.users.length - 1);
|
||||
return this.users[i];
|
||||
};
|
||||
|
||||
Test.prototype.getRandomText = function() {
|
||||
var chars, length, nextchar, text;
|
||||
chars = "abcdefghijklmnopqrstuvwxyz";
|
||||
length = _.random(0, 10);
|
||||
nextchar = chars[_.random(0, chars.length - 1)];
|
||||
text = "";
|
||||
_(length).times(function() {
|
||||
return text += nextchar;
|
||||
});
|
||||
return text;
|
||||
};
|
||||
|
||||
Test.prototype.generateInsertOp = function(user_num) {
|
||||
var pos;
|
||||
pos = _.random(0, this.users[user_num].val('name').val().length - 1);
|
||||
this.users[user_num].val('name').insertText(pos, this.getRandomText());
|
||||
return null;
|
||||
};
|
||||
|
||||
Test.prototype.generateReplaceOp = function(user_num) {
|
||||
this.users[user_num].val('name').replaceText(this.getRandomText());
|
||||
return null;
|
||||
};
|
||||
|
||||
Test.prototype.generateDeleteOp = function(user_num) {
|
||||
var length, ops1, pos;
|
||||
if (this.users[user_num].val('name').val().length > 0) {
|
||||
pos = _.random(0, this.users[user_num].val('name').val().length - 1);
|
||||
length = _.random(0, this.users[user_num].val('name').val().length - pos);
|
||||
ops1 = this.users[user_num].val('name').deleteText(pos, length);
|
||||
}
|
||||
return void 0;
|
||||
};
|
||||
|
||||
Test.prototype.generateRandomOp = function(user_num) {
|
||||
var i, op, op_gen;
|
||||
op_gen = [this.generateInsertOp, this.generateDeleteOp, this.generateReplaceOp];
|
||||
i = _.random(op_gen.length - 1);
|
||||
return op = op_gen[i](user_num);
|
||||
};
|
||||
|
||||
Test.prototype.applyRandomOp = function(user_num) {
|
||||
var user;
|
||||
user = this.users[user_num];
|
||||
return user.getConnector().flushOneRandom();
|
||||
};
|
||||
|
||||
Test.prototype.doSomething = function() {
|
||||
var choice, choices, user_num;
|
||||
user_num = _.random(this.number_of_engines - 1);
|
||||
choices = [this.applyRandomOp, this.generateRandomOp];
|
||||
choice = _.random(choices.length - 1);
|
||||
return choices[choice](user_num);
|
||||
};
|
||||
|
||||
Test.prototype.flushAll = function() {
|
||||
var user, user_number, _i, _len, _ref, _results;
|
||||
_ref = this.users;
|
||||
_results = [];
|
||||
for (user_number = _i = 0, _len = _ref.length; _i < _len; user_number = ++_i) {
|
||||
user = _ref[user_number];
|
||||
_results.push(user.getConnector().flushAll());
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Test.prototype.compareAll = function(test_number) {
|
||||
var i, j, number_of_created_operations, ops, ops_per_msek, printOpsInExecutionOrder, u, _i, _j, _k, _len, _ref, _ref1, _ref2, _results;
|
||||
this.flushAll();
|
||||
this.time += (new Date()).getTime() - this.time_now;
|
||||
number_of_created_operations = 0;
|
||||
for (i = _i = 0, _ref = this.users.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
|
||||
number_of_created_operations += this.users[i].getConnector().getOpsInExecutionOrder().length;
|
||||
}
|
||||
this.ops += number_of_created_operations * this.users.length;
|
||||
ops_per_msek = Math.floor(this.ops / this.time);
|
||||
if (test_number != null) {
|
||||
console.log(("" + test_number + "/" + this.repeat_this + ": Every collaborator (" + this.users.length + ") applied " + number_of_created_operations + " ops in a different order.") + (" Over all we consumed " + this.ops + " operations in " + (this.time / 1000) + " seconds (" + ops_per_msek + " ops/msek)."));
|
||||
}
|
||||
_results = [];
|
||||
for (i = _j = 0, _ref1 = this.users.length - 1; 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i = 0 <= _ref1 ? ++_j : --_j) {
|
||||
if (this.debug) {
|
||||
if (this.users[i].val('name').val() !== this.users[i + 1].val('name').val()) {
|
||||
printOpsInExecutionOrder = (function(_this) {
|
||||
return function(otnumber, otherotnumber) {
|
||||
var j, o, ops, s, _k, _l, _len, _len1;
|
||||
ops = _.filter(_this.users[otnumber].getConnector().getOpsInExecutionOrder(), function(o) {
|
||||
return typeof o.uid.op_name !== 'string' && o.uid.creator !== '_';
|
||||
});
|
||||
for (j = _k = 0, _len = ops.length; _k < _len; j = ++_k) {
|
||||
s = ops[j];
|
||||
console.log(("op" + j + " = ") + (JSON.stringify(s)));
|
||||
}
|
||||
console.log("");
|
||||
s = "ops = [";
|
||||
for (j = _l = 0, _len1 = ops.length; _l < _len1; j = ++_l) {
|
||||
o = ops[j];
|
||||
if (j !== 0) {
|
||||
s += ", ";
|
||||
}
|
||||
s += "op" + j;
|
||||
}
|
||||
s += "]";
|
||||
console.log(s);
|
||||
console.log("@test_user.engine.applyOps ops");
|
||||
console.log("expect(@test_user.val('name').val()).to.equal(\"" + (_this.users[otherotnumber].val('name').val()) + "\")");
|
||||
return ops;
|
||||
};
|
||||
})(this);
|
||||
console.log("");
|
||||
console.log("Found an OT Puzzle!");
|
||||
console.log("OT states:");
|
||||
_ref2 = this.users;
|
||||
for (j = _k = 0, _len = _ref2.length; _k < _len; j = ++_k) {
|
||||
u = _ref2[j];
|
||||
console.log(("OT" + j + ": ") + u.val('name').val());
|
||||
}
|
||||
console.log("\nOT execution order (" + i + "," + (i + 1) + "):");
|
||||
printOpsInExecutionOrder(i, i + 1);
|
||||
console.log("");
|
||||
ops = printOpsInExecutionOrder(i + 1, i);
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
if (this.users[i].val('name').val() !== this.users[i + 1].val('name').val()) {
|
||||
console.log("found error");
|
||||
}
|
||||
_results.push(expect(this.users[i].val('name').val()).to.equal(this.users[i + 1].val('name').val()));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Test.prototype.run = function() {
|
||||
var i, times, _i, _j, _ref, _ref1, _results;
|
||||
console.log('');
|
||||
_results = [];
|
||||
for (times = _i = 1, _ref = this.repeat_this; 1 <= _ref ? _i <= _ref : _i >= _ref; times = 1 <= _ref ? ++_i : --_i) {
|
||||
this.time_now = (new Date).getTime();
|
||||
for (i = _j = 1, _ref1 = this.doSomething_amount; 1 <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = 1 <= _ref1 ? ++_j : --_j) {
|
||||
this.doSomething();
|
||||
}
|
||||
this.compareAll(times);
|
||||
this.testHBencoding();
|
||||
if (times !== this.repeat_this) {
|
||||
_results.push(this.reinitialize());
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
Test.prototype.testHBencoding = function() {
|
||||
var user;
|
||||
user = new Yatta('testuser', Connector_uninitialized([]));
|
||||
user.engine.applyOps(this.users[0].HB._encode());
|
||||
return expect(user.value.name.val()).to.equal(this.users[0].value.name.val());
|
||||
};
|
||||
|
||||
return Test;
|
||||
|
||||
})();
|
||||
|
||||
describe("JsonYatta", function() {
|
||||
beforeEach(function(done) {
|
||||
this.timeout(50000);
|
||||
this.yTest = new Test();
|
||||
this.users = this.yTest.users;
|
||||
this.test_user = new Yatta(0, Connector_uninitialized([]));
|
||||
return done();
|
||||
});
|
||||
it("has a JsonWrapper", function() {
|
||||
var w, y;
|
||||
y = this.yTest.getSomeUser().root_element;
|
||||
y.val('x', "dtrn", 'immutable');
|
||||
y.val('set', {
|
||||
x: "x"
|
||||
}, 'immutable');
|
||||
w = y.value;
|
||||
w.x;
|
||||
w.set = {
|
||||
y: ""
|
||||
};
|
||||
w.x;
|
||||
w.set;
|
||||
w.set.x;
|
||||
expect(w.x).to.equal("dtrn");
|
||||
return expect(w.set.x).to.equal("x");
|
||||
});
|
||||
it("handles double-late-join", function() {
|
||||
var ops1, ops2, test, u1, u2;
|
||||
test = new Test("doubble");
|
||||
test.run();
|
||||
this.yTest.run();
|
||||
u1 = test.users[0];
|
||||
u2 = this.yTest.users[1];
|
||||
ops1 = u1.HB._encode();
|
||||
ops2 = u2.HB._encode();
|
||||
u1.engine.applyOps(ops2);
|
||||
u2.engine.applyOps(ops1);
|
||||
return expect(u2.value.name.val()).to.equal(u2.value.name.val());
|
||||
});
|
||||
it("can handle creaton of complex json", function() {
|
||||
this.yTest.getSomeUser().val('x', {
|
||||
'a': 'b'
|
||||
});
|
||||
this.yTest.getSomeUser().val('a', {
|
||||
'a': {
|
||||
q: "dtrndtrtdrntdrnrtdnrtdnrtdnrtdnrdnrdt"
|
||||
}
|
||||
});
|
||||
this.yTest.getSomeUser().val('b', {
|
||||
'a': {}
|
||||
});
|
||||
this.yTest.getSomeUser().val('c', {
|
||||
'a': 'c'
|
||||
});
|
||||
this.yTest.getSomeUser().val('c', {
|
||||
'a': 'b'
|
||||
});
|
||||
this.yTest.compareAll();
|
||||
this.yTest.getSomeUser().value.a.a.q.insertText(0, 'AAA');
|
||||
this.yTest.compareAll();
|
||||
return expect(this.yTest.getSomeUser().value.a.a.q.val()).to.equal("AAAdtrndtrtdrntdrnrtdnrtdnrtdnrtdnrdnrdt");
|
||||
});
|
||||
it("handles some immutable tests", function() {
|
||||
this.yTest.getSomeUser().val('string', "text", "immutable");
|
||||
this.yTest.getSomeUser().val('number', 4, "immutable");
|
||||
this.yTest.getSomeUser().val('object', {
|
||||
q: "rr"
|
||||
}, "immutable");
|
||||
this.yTest.compareAll();
|
||||
expect(this.yTest.getSomeUser().val('string')).to.equal("text");
|
||||
expect(this.yTest.getSomeUser().val('number')).to.equal(4);
|
||||
return expect(this.yTest.getSomeUser().val('object').val('q')).to.equal("rr");
|
||||
});
|
||||
it("can handle many engines, many operations, concurrently (random)", function() {
|
||||
return this.yTest.run();
|
||||
});
|
||||
return it("converges t1", function() {
|
||||
var op0, op1, op2, op3, op4, op5, op6, op7, op8, ops;
|
||||
op0 = {
|
||||
"type": "Delimiter",
|
||||
"uid": {
|
||||
"creator": 0,
|
||||
"op_number": 0
|
||||
},
|
||||
"next": {
|
||||
"creator": 0,
|
||||
"op_number": 1
|
||||
}
|
||||
};
|
||||
op1 = {
|
||||
"type": "Delimiter",
|
||||
"uid": {
|
||||
"creator": 0,
|
||||
"op_number": 1
|
||||
},
|
||||
"prev": {
|
||||
"creator": 0,
|
||||
"op_number": 0
|
||||
}
|
||||
};
|
||||
op2 = {
|
||||
"type": "Word",
|
||||
"uid": {
|
||||
"creator": 0,
|
||||
"op_number": 2
|
||||
},
|
||||
"beginning": {
|
||||
"creator": 0,
|
||||
"op_number": 0
|
||||
},
|
||||
"end": {
|
||||
"creator": 0,
|
||||
"op_number": 1
|
||||
}
|
||||
};
|
||||
op3 = {
|
||||
"type": "AddName",
|
||||
"uid": {
|
||||
"creator": 0,
|
||||
"op_number": 3
|
||||
},
|
||||
"map_manager": {
|
||||
"creator": "_",
|
||||
"op_number": "_"
|
||||
},
|
||||
"name": "name"
|
||||
};
|
||||
op4 = {
|
||||
"type": "Replaceable",
|
||||
"content": {
|
||||
"creator": 0,
|
||||
"op_number": 2
|
||||
},
|
||||
"ReplaceManager": {
|
||||
"creator": "_",
|
||||
"op_number": "___RM_name"
|
||||
},
|
||||
"prev": {
|
||||
"creator": "_",
|
||||
"op_number": "___RM_name_beginning"
|
||||
},
|
||||
"next": {
|
||||
"creator": "_",
|
||||
"op_number": "___RM_name_end"
|
||||
},
|
||||
"uid": {
|
||||
"creator": 0,
|
||||
"op_number": 4
|
||||
}
|
||||
};
|
||||
op5 = {
|
||||
"type": "TextInsert",
|
||||
"content": "u",
|
||||
"uid": {
|
||||
"creator": 1,
|
||||
"op_number": 2
|
||||
},
|
||||
"prev": {
|
||||
"creator": 1,
|
||||
"op_number": 0
|
||||
},
|
||||
"next": {
|
||||
"creator": 1,
|
||||
"op_number": 1
|
||||
}
|
||||
};
|
||||
op6 = {
|
||||
"type": "TextInsert",
|
||||
"content": "w",
|
||||
"uid": {
|
||||
"creator": 2,
|
||||
"op_number": 0
|
||||
},
|
||||
"prev": {
|
||||
"creator": 0,
|
||||
"op_number": 0
|
||||
},
|
||||
"next": {
|
||||
"creator": 0,
|
||||
"op_number": 1
|
||||
}
|
||||
};
|
||||
op7 = {
|
||||
"type": "TextInsert",
|
||||
"content": "d",
|
||||
"uid": {
|
||||
"creator": 1,
|
||||
"op_number": 0
|
||||
},
|
||||
"prev": {
|
||||
"creator": 0,
|
||||
"op_number": 0
|
||||
},
|
||||
"next": {
|
||||
"creator": 2,
|
||||
"op_number": 0
|
||||
}
|
||||
};
|
||||
op8 = {
|
||||
"type": "TextInsert",
|
||||
"content": "a",
|
||||
"uid": {
|
||||
"creator": 1,
|
||||
"op_number": 1
|
||||
},
|
||||
"prev": {
|
||||
"creator": 1,
|
||||
"op_number": 0
|
||||
},
|
||||
"next": {
|
||||
"creator": 2,
|
||||
"op_number": 0
|
||||
}
|
||||
};
|
||||
ops = [op0, op1, op2, op3, op4, op5, op6, op7, op8];
|
||||
this.test_user.engine.applyOps(ops);
|
||||
return expect(this.test_user.val('name').val()).to.equal("duaw");
|
||||
});
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
@@ -1,416 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path=''></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1 class='noborder title'></h1>
|
||||
<div id='listing'>
|
||||
<h1 class='alphaindex'>Alphabetical Index</h1>
|
||||
<h2>Extra File Listing</h2>
|
||||
<ul id='files'>
|
||||
<li>
|
||||
<a href='extra/README.md.html' title='README.md'>
|
||||
README.md
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='extra/LICENSE.txt.html' title='LICENSE.txt'>
|
||||
LICENSE.txt
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='extra/examples/README.md.html' title='examples/README.md'>
|
||||
examples/README.md
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='extra/examples/IwcJson.md.html' title='examples/IwcJson.md'>
|
||||
examples/IwcJson.md
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Class Listing A-Z</h2>
|
||||
<div class='index'>
|
||||
<ul>
|
||||
<li class='letter'>a</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/AddName.html'>
|
||||
AddName
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>d</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/Delete.html'>
|
||||
Delete
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html'>
|
||||
Delimiter
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>e</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/Engine.html'>
|
||||
Engine
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>h</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html'>
|
||||
HistoryBuffer
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>i</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html'>
|
||||
IwcConnector
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html'>
|
||||
Insert
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ImmutableObject.html'>
|
||||
ImmutableObject
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>j</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html'>
|
||||
JsonYatta
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonWrapper.html'>
|
||||
JsonWrapper
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html'>
|
||||
JsonType
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>l</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/ListManager.html'>
|
||||
ListManager
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>m</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/MapManager.html'>
|
||||
MapManager
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>o</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/Operation.html'>
|
||||
Operation
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>r</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html'>
|
||||
ReplaceManager
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html'>
|
||||
Replaceable
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>t</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/TestConnector.html'>
|
||||
TestConnector
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html'>
|
||||
TextYatta
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextDelete.html'>
|
||||
TextDelete
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html'>
|
||||
TextInsert
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>w</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/Word.html'>
|
||||
Word
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>File Listing A-Z</h2>
|
||||
<div class='index'>
|
||||
<ul>
|
||||
<li class='letter'>b</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Types/BasicTypes.coffee.html'>
|
||||
BasicTypes.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Types)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>e</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Engine.coffee.html'>
|
||||
Engine.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>h</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/HistoryBuffer.coffee.html'>
|
||||
HistoryBuffer.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>i</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Connectors/IwcConnector.coffee.html'>
|
||||
IwcConnector.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Connectors)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>j</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Frameworks/JsonYatta.coffee.html'>
|
||||
JsonYatta.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Frameworks)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/JsonTypes.coffee.html'>
|
||||
JsonTypes.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Types)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>s</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Types/StructuredTypes.coffee.html'>
|
||||
StructuredTypes.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Types)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>t</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Connectors/TestConnector.coffee.html'>
|
||||
TestConnector.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Connectors)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Frameworks/TextYatta.coffee.html'>
|
||||
TextYatta.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Frameworks)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/TextTypes.coffee.html'>
|
||||
TextTypes.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Types)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li class='letter'>x</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Types/XmlTypes.coffee.html'>
|
||||
XmlTypes.coffee
|
||||
</a>
|
||||
<small>
|
||||
(lib/Types)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,216 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>AddName</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
AddName
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/StructuredTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Operation
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>When a new property in a map manager is created, then the uids of the inserted Operations
|
||||
must be unique (think about concurrent operations). Therefore only an AddName operation is allowed to
|
||||
add a property in a MapManager. If two AddName operations on the same MapManager name happen concurrently
|
||||
only one will AddName operation will be executed.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, map_manager, name)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>map_manager</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Uid or reference to the MapManager. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>name</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Name of the property that will be added. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
196
doc/class/D.html
196
doc/class/D.html
@@ -1,196 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>D</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
D
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A simple delete-type operation.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Convert all relevant information of this operation into the json-format.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#IT-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>IT</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(creator, op_number, delete_op)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Convert all relevant information of this operation into the json-format.
|
||||
This result can be send to other clients.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='IT-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>IT</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 02:21:01 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,160 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>DUC</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
DUC
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>The Document Under Collaboration (abbrev. DUC) is an interface from the
|
||||
abstract data structure that the engine maintains to an actual data structure.
|
||||
TODO</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
get the length of the content.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>get the length of the content.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 01:28:06 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,231 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Delete</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Delete
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/BasicTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A simple Delete-type operation that deletes an Insert-type operation.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Convert all relevant information of this operation to the json-format.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Apply the deletion.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
<a href='../class/Operation.html#saveOperation-dynamic'>#saveOperation</a>
|
||||
<a href='../class/Operation.html#validateSavedOperations-dynamic'>#validateSavedOperations</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, deletes)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>deletes</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>UID or reference of the operation that this to be deleted. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Convert all relevant information of this operation to the json-format.
|
||||
This result can be sent to other clients.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Apply the deletion.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,265 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Delimiter</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Delimiter
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/BasicTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A delimiter is placed at the end and at the beginning of the associative lists.
|
||||
This is necessary in order to have a beginning and an end even if the content
|
||||
of the Engine is empty.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
If isDeleted() is true this operation won't be maintained in the sl
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
<a href='../class/Operation.html#saveOperation-dynamic'>#saveOperation</a>
|
||||
<a href='../class/Operation.html#validateSavedOperations-dynamic'>#validateSavedOperations</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, prev_cl, next_cl, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>prev_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The predecessor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>next_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The successor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.getNextOperationIdentifier'>HistoryBuffer.getNextOperationIdentifier</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>If isDeleted() is true this operation won't be maintained in the sl</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,289 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Engine</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Engine
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>The Engine handles how and in which order to execute operations and add operations to the HistoryBuffer.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#parseOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>parseOperation</b><span>(json)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Parses an operatio from the json format.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#applyOpsBundle-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOpsBundle</b><span>(ops_json)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Apply a set of operations.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#applyOpsCheckDouble-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOpsCheckDouble</b><span>(ops_json)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#applyOps-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOps</b><span>(ops_json)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Apply a set of operations.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#applyOp-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOp</b><span>(op_json)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Apply an operation that you received from another peer.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#tryUnprocessed-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>tryUnprocessed</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Call this method when you applied a new operation.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(HB, parser)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='parseOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>parseOperation</b><span>(json)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Parses an operatio from the json format. It uses the specified parser in your OperationType module.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='applyOpsBundle-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOpsBundle</b><span>(ops_json)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<div class='note'>
|
||||
<strong>Note:</strong>
|
||||
You must not use this method when you already have ops in your HB!
|
||||
</div>
|
||||
<p>Apply a set of operations. E.g. the operations you received from another users HB.toJson().</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='applyOpsCheckDouble-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOpsCheckDouble</b><span>(ops_json)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='applyOps-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOps</b><span>(ops_json)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Apply a set of operations. (Helper for using applyOp on Arrays)</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='Engine.applyOp'>Engine.applyOp</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='applyOp-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyOp</b><span>(op_json)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Apply an operation that you received from another peer.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='tryUnprocessed-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>tryUnprocessed</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Call this method when you applied a new operation.
|
||||
It checks if operations that were previously not executable are now executable.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,330 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>HistoryBuffer</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
HistoryBuffer
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/HistoryBuffer.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<div class='note'>
|
||||
<strong>Note:</strong>
|
||||
The HistoryBuffer is commonly abbreviated to HB.
|
||||
</div>
|
||||
<p>An object that holds all applied operations.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the user id with wich the History Buffer was initialized.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getReservedUniqueIdentifier-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getReservedUniqueIdentifier</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
There is only one reserved unique identifier (uid), so use it wisely.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getOperationCounter-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationCounter</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the operation counter that describes the current state of the document.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>(state_vector = {})</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getNextOperationIdentifier-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getNextOperationIdentifier</b><span>(user_id)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the number of operations that were created by a user.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperation</b><span>(uid)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Retrieve an operation from a unique id.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#addOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>addOperation</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Add an operation to the HB.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(user_id)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Creates an empty HB.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>user_id</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Creator of the HB. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the user id with wich the History Buffer was initialized.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getReservedUniqueIdentifier-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getReservedUniqueIdentifier</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>There is only one reserved unique identifier (uid), so use it wisely.
|
||||
I propose to use it in your Framework, to create something like a root element.
|
||||
An operation with this identifier is not propagated to other clients.
|
||||
This is why everybode must create the same operation with this uid.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getOperationCounter-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationCounter</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the operation counter that describes the current state of the document.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>(state_vector = {})</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getNextOperationIdentifier-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getNextOperationIdentifier</b><span>(user_id)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the number of operations that were created by a user.
|
||||
Accordingly you will get the next operation number that is expected from that user.
|
||||
This will increment the operation counter.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperation</b><span>(uid)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Retrieve an operation from a unique id.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='addOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>addOperation</b><span>(o)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Add an operation to the HB. Note that this will not link it against
|
||||
other operations (it wont executed)</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
402
doc/class/I.html
402
doc/class/I.html
@@ -1,402 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>I</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
I
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A simple insert-type operation.</p><p>An insert operation is always positioned between two other insert operations.
|
||||
Internally this is realized as associative lists, whereby each insert operation has a predecessor and a successor.
|
||||
For the sake of efficiency we maintain two lists: - The short-list (abbrev. sl) maintains only the operations that are not deleted - The complete-list (abbrev. cl) maintains all operations</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Direct Known Subclasses</h2>
|
||||
<p class='children'>
|
||||
<a href='../class/Delimiter.html'>Delimiter</a>
|
||||
</p>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Retrieve the effective length of the $content of this operation.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
If isDeleted() is true this operation won't be maintained in the sl
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getDistanceToOrigin-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getDistanceToOrigin</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
The amount of positions that this operation was moved to the right.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#update_sl-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>update_sl</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Update the short list TODO
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Convert all relevant information of this operation into the json-format.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>(current_position)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
The result will be concatenated with the results from the other insert operations in order to retrieve the content of the engine.
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#IT-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>IT</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Include this operation in the associative lists.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content, creator, op_number, prev_cl, next_cl)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Value</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The value of the insert operation. E.g. for strings content is a char. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>creator</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique user identifier </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>op_number</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Integer</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>This Number was assigned via getOperationCounter(). </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>prev_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The predecessor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>next_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The successor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.getOperationCounter'>HistoryBuffer.getOperationCounter</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Retrieve the effective length of the $content of this operation.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>If isDeleted() is true this operation won't be maintained in the sl</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getDistanceToOrigin-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getDistanceToOrigin</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>The amount of positions that this operation was moved to the right.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='update_sl-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>update_sl</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Update the short list
|
||||
TODO</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Convert all relevant information of this operation into the json-format.
|
||||
This result can be send to other clients.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>(current_position)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>The result will be concatenated with the results from the other insert operations
|
||||
in order to retrieve the content of the engine.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.toExecutedArray'>HistoryBuffer.toExecutedArray</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='IT-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>IT</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Include this operation in the associative lists. (For historical reasons IT - Inclusion Transformation)</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 02:21:01 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,230 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>ImmutableObject</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
ImmutableObject
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/BasicTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Insert.html'>Insert</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Defines an object that is cannot be changed. You can use this to set an immutable string, or a number.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(String)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Insert.html'>Insert</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Insert.html#applyDelete-dynamic'>#applyDelete</a>
|
||||
<a href='../class/Insert.html#isDeleted-dynamic'>#isDeleted</a>
|
||||
<a href='../class/Insert.html#getDistanceToOrigin-dynamic'>#getDistanceToOrigin</a>
|
||||
<a href='../class/Insert.html#update_sl-dynamic'>#update_sl</a>
|
||||
<a href='../class/Insert.html#execute-dynamic'>#execute</a>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#saveOperation-dynamic'>#saveOperation</a>
|
||||
<a href='../class/Operation.html#validateSavedOperations-dynamic'>#validateSavedOperations</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, content, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(String)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
—
|
||||
<span class='desc'>The content of this operation. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,329 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Insert</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Insert
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/BasicTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A simple insert-type operation.</p><p>An insert operation is always positioned between two other insert operations.
|
||||
Internally this is realized as associative lists, whereby each insert operation has a predecessor and a successor.
|
||||
For the sake of efficiency we maintain two lists: - The short-list (abbrev. sl) maintains only the operations that are not deleted - The complete-list (abbrev. cl) maintains all operations</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Direct Known Subclasses</h2>
|
||||
<p class='children'>
|
||||
<a href='../class/ImmutableObject.html'>ImmutableObject</a>
|
||||
</p>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#applyDelete-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyDelete</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
If isDeleted() is true this operation won't be maintained in the sl
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getDistanceToOrigin-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getDistanceToOrigin</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
The amount of positions that $this operation was moved to the right.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#update_sl-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>update_sl</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Update the short list TODO (Unused)
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Include this operation in the associative lists.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
<a href='../class/Operation.html#saveOperation-dynamic'>#saveOperation</a>
|
||||
<a href='../class/Operation.html#validateSavedOperations-dynamic'>#validateSavedOperations</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, prev_cl, next_cl, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>prev_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The predecessor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>next_cl</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The successor of this operation in the complete-list (cl) </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.getNextOperationIdentifier'>HistoryBuffer.getNextOperationIdentifier</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='applyDelete-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>applyDelete</b><span>(o)</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='isDeleted-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>isDeleted</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>If isDeleted() is true this operation won't be maintained in the sl</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getDistanceToOrigin-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getDistanceToOrigin</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>The amount of positions that $this operation was moved to the right.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='update_sl-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>update_sl</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Update the short list
|
||||
TODO (Unused)</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Include this operation in the associative lists.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,222 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>IwcConnector</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
IwcConnector
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Connectors/IwcConnector.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>The Iwc Connector adds support for the Inter-Widget-Communication protocol that is used in the Role-SDK.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='http://dbis.rwth-aachen.de/cms/projects/the-xmpp-experience#interwidget-communication'>http://dbis.rwth-aachen.de/cms/projects/the-xmpp-experience#interwidget-communication</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='http://dbis.rwth-aachen.de/cms/projects/ROLE'>http://dbis.rwth-aachen.de/cms/projects/ROLE</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#send-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>send</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#receive-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>receive</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#sendIwcIntent-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sendIwcIntent</b><span>(action_name, content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#sync-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sync</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(engine, HB, execution_listener, yatta)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='send-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>send</b><span>(o)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='receive-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>receive</b><span>(o)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='sendIwcIntent-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sendIwcIntent</b><span>(action_name, content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='sync-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sync</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,360 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>JsonType</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
JsonType
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/JsonTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.MapManager
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Manages Object-like values.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='mutable_default-variable'>
|
||||
mutable_default
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>true</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#setMutableDefault-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setMutableDefault</b><span>(mutable)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
~
|
||||
(Json)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, initial_value, mutable)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>initial_value</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Create this operation with an initial value. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>Whether</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String|Boolean</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>the initial_value should be created as mutable. (Optional - see setMutableDefault) </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='setMutableDefault-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setMutableDefault</b><span>(mutable)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
~
|
||||
(Json)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
~
|
||||
(JsonType|Word|String|Object)
|
||||
<b>val</b><span>(name)</span>
|
||||
<br>
|
||||
~
|
||||
(JsonType)
|
||||
<b>val</b><span>(name, content)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<div class='overloads'>
|
||||
<h3>Overloads:</h3>
|
||||
<div class='overload'>
|
||||
<p class='signature'>
|
||||
~
|
||||
(Json)
|
||||
<b>val</b><span>()</span>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get this as a Json object.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
<tt>Json</tt>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='overload'>
|
||||
<p class='signature'>
|
||||
~
|
||||
(JsonType|Word|String|Object)
|
||||
<b>val</b><span>(name)</span>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get value of a property.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>name</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Name of the object property. </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
(
|
||||
<tt>JsonType|Word|String|Object</tt>
|
||||
)
|
||||
—
|
||||
<span class='desc'>Depending on the value of the property. If mutable it will return a Operation-type object, if immutable it will return String/Object. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='overload'>
|
||||
<p class='signature'>
|
||||
~
|
||||
(JsonType)
|
||||
<b>val</b><span>(name, content)</span>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Set a new property.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>name</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Name of the object property. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object|String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Content of the object property. </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
(
|
||||
<tt><a href='../class/JsonType.html'>JsonType</a></tt>
|
||||
)
|
||||
—
|
||||
<span class='desc'>This object. (supports chaining) </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,195 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>JsonWrapper</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
JsonWrapper
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/JsonTypes.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<div class='note'>
|
||||
<strong>Note:</strong>
|
||||
You can only overwrite existing values! Setting a new property won't have any effect!
|
||||
</div>
|
||||
<p>A JsonWrapper was intended to be a convenient wrapper for the JsonType.
|
||||
But it can make things more difficult than they are.</p><p>It creates Javascripts -getter and -setter methods for each property that JsonType maintains.</p><p>In order to set a new property you have to overwrite an existing property.
|
||||
Therefore the JsonWrapper supports a special feature that should make things more convenient
|
||||
(we can argue about that, use the JsonType if you don't like it ;).
|
||||
If you overwrite an object property of the JsonWrapper with a new object, it will result in a merged version of the objects.
|
||||
Let w.p the property that is to be overwritten and o the new value. E.g. w.p = o</p><ul>
|
||||
<li>The result has all properties of o</li>
|
||||
<li>The result has all properties of w.p if they don't occur under the same property-name in o.</li>
|
||||
</ul>
|
||||
|
||||
<div class='examples'>
|
||||
<h3>Examples:</h3>
|
||||
<h4>
|
||||
create a JsonWrapper
|
||||
</h4>
|
||||
<pre><code class='coffeescript'># You get a JsonWrapper from a JsonType by calling
|
||||
w = yatta.value</code></pre>
|
||||
<h4>
|
||||
Getter Example
|
||||
</h4>
|
||||
<pre><code class='coffeescript'># you can access the x property of yatta by calling
|
||||
w.x
|
||||
# instead of
|
||||
yatta.val('x')</code></pre>
|
||||
<h4>
|
||||
Setter Example
|
||||
</h4>
|
||||
<pre><code class='coffeescript'># you can set an existing x property of yatta by calling
|
||||
w.x = "text"
|
||||
# instead of
|
||||
yatta.val('x', "text")</code></pre>
|
||||
<h4>
|
||||
Conflict Example
|
||||
</h4>
|
||||
<pre><code class='coffeescript'>yatta.value = {a : "string"}
|
||||
w = yatta.value
|
||||
console.log(w) # {a : "string"}
|
||||
w.a = {a : {b : "string"}}
|
||||
console.log(w) # {a : {b : "String"}}
|
||||
w.a = {a : {c : 4}}
|
||||
console.log(w) # {a : {b : "String", c : 4}}</code></pre>
|
||||
<h4>
|
||||
Common Pitfalls
|
||||
</h4>
|
||||
<pre><code class='coffeescript'>w = yatta.value
|
||||
# Setting a new property
|
||||
w.newProperty = "Awesome"
|
||||
console.log(w.newProperty == "Awesome") # false, w.newProperty is undefined
|
||||
# overwrite the w object
|
||||
w = {newProperty : "Awesome"}
|
||||
console.log(w.newProperty == "Awesome") # true!, but ..
|
||||
console.log(yatta.value.newProperty == "Awesome") # false, you are only allowed to set properties!
|
||||
# The solution
|
||||
yatta.value = {newProperty : "Awesome"}
|
||||
console.log(w.newProperty == "Awesome") # true!</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='../class/JsonType.html'>JsonType</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty'>https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(jsonType)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,324 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>JsonYatta</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
JsonYatta
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Frameworks/JsonYatta.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Framework for Json data-structures.
|
||||
Known values that are supported:</p><ul>
|
||||
<li>String</li>
|
||||
<li>Integer</li>
|
||||
<li>Array</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getRootElement-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getRootElement</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
@result JsonType
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getEngine-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getEngine</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getConnector-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getConnector</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the initialized connector.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getHistoryBuffer-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getHistoryBuffer</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#setMutableDefault-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setMutableDefault</b><span>(mutable)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the UserId from the HistoryBuffer object.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(name, content, mutable)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(user_id, Connector)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getRootElement-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getRootElement</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>@result JsonType</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getEngine-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getEngine</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='../class/Engine.html'>Engine</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getConnector-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getConnector</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the initialized connector.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getHistoryBuffer-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getHistoryBuffer</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='../class/HistoryBuffer.html'>HistoryBuffer</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='setMutableDefault-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setMutableDefault</b><span>(mutable)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='JsonType.setMutableDefault'>JsonType.setMutableDefault</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the UserId from the HistoryBuffer object.
|
||||
In most cases this will be the same as the user_id value with which
|
||||
JsonYatta was initialized (Depending on the HistoryBuffer implementation).</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(name, content, mutable)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='JsonType.val'>JsonType.val</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,282 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>ListManager</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
ListManager
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/StructuredTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Insert
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Manages a list of Insert-type operations.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Direct Known Subclasses</h2>
|
||||
<p class='children'>
|
||||
<a href='../class/ReplaceManager.html'>ReplaceManager</a>
|
||||
</p>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getLastOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLastOperation</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the element previous to the delemiter at the end
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getFirstOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getFirstOperation</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
similar to the above
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#toArray-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toArray</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Transforms the the list to an array Doesn't return left-right delimiter.
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getOperationByPosition-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationByPosition</b><span>(position)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Retrieves the x-th not deleted element.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, beginning, end, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>A ListManager maintains a non-empty list that has a beginning and an end (both Delimiters!)</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>beginning</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Delimiter.html'>Delimiter</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Reference or Object. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>end</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Delimiter.html'>Delimiter</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Reference or Object. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getLastOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLastOperation</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the element previous to the delemiter at the end</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getFirstOperation-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getFirstOperation</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>similar to the above</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='toArray-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toArray</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Transforms the the list to an array
|
||||
Doesn't return left-right delimiter.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getOperationByPosition-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationByPosition</b><span>(position)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Retrieves the x-th not deleted element.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,173 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>MapManager</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
MapManager
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/StructuredTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Operation
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Manages map like objects. E.g. Json-Type and XML attributes.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(name, content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(name, content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,359 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Operation</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Operation
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/BasicTypes.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A generic interface to operations.</p><p>An operation has the following methods:
|
||||
_encode: encodes an operation (needed only if instance of this operation is sent).
|
||||
execute: execute the effects of this operations. Good examples are Insert-type and AddName-type
|
||||
val: in the case that the operation holds a value</p><p>Furthermore an encodable operation has a parser.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Direct Known Subclasses</h2>
|
||||
<p class='children'>
|
||||
<a href='../class/Delete.html'>Delete</a>
|
||||
<a href='../class/Insert.html'>Insert</a>
|
||||
<a href='../class/Delimiter.html'>Delimiter</a>
|
||||
</p>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getUid-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUid</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Computes a unique identifier (uid) that identifies this operation.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Notify the all the listeners.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#saveOperation-dynamic'>
|
||||
~
|
||||
(void)
|
||||
<b>saveOperation</b><span>(name, op_uid)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
Operations may depend on other operations (linked lists, etc.).
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#validateSavedOperations-dynamic'>
|
||||
#
|
||||
(Boolean)
|
||||
<b>validateSavedOperations</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='note private title'>Private</span>
|
||||
<span class='desc'>
|
||||
After calling this function all not instantiated operations will be accessible.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.getNextOperationIdentifier'>HistoryBuffer.getNextOperationIdentifier</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getUid-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUid</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Computes a unique identifier (uid) that identifies this operation.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Notify the all the listeners.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='saveOperation-dynamic'>
|
||||
~
|
||||
(void)
|
||||
<b>saveOperation</b><span>(name, op_uid)</span>
|
||||
<br>
|
||||
~
|
||||
(void)
|
||||
<b>saveOperation</b><span>(name, op)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Operations may depend on other operations (linked lists, etc.).
|
||||
The saveOperation and validateSavedOperations methods provide
|
||||
an easy way to refer to these operations via an uid or object reference.</p><p>For example: We can create a new Delete operation that deletes the operation $o like this</p><pre><code>- var d = new Delete(uid, $o); or
|
||||
- var d = new Delete(uid, $o.getUid());
|
||||
</code></pre><p>Either way we want to access $o via d.deletes. In the second case validateSavedOperations must be called first.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<div class='overloads'>
|
||||
<h3>Overloads:</h3>
|
||||
<div class='overload'>
|
||||
<p class='signature'>
|
||||
~
|
||||
(void)
|
||||
<b>saveOperation</b><span>(name, op_uid)</span>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>name</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The name of the operation. After validating (with validateSavedOperations) the instantiated operation will be accessible via this[name]. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>op_uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A uid that refers to an operation </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='overload'>
|
||||
<p class='signature'>
|
||||
~
|
||||
(void)
|
||||
<b>saveOperation</b><span>(name, op)</span>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>name</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The name of the operation. After calling this function op is accessible via this[name]. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>op</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>An Operation object </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='validateSavedOperations-dynamic'>
|
||||
#
|
||||
(Boolean)
|
||||
<b>validateSavedOperations</b><span>()</span>
|
||||
<span class='note private'>Private</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>After calling this function all not instantiated operations will be accessible.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
(
|
||||
<tt>Boolean</tt>
|
||||
)
|
||||
—
|
||||
<span class='desc'>Whether it was possible to instantiate all operations. </span>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='Operation.saveOperation'>Operation.saveOperation</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,164 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Replacable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Replacable
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content, creator, op_number, previous)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 01:28:06 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,263 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>ReplaceManager</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
ReplaceManager
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/StructuredTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/ListManager.html'>ListManager</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Adds support for replace. The ReplaceManager manages Replaceable operations.
|
||||
Each Replaceable holds a value that is now replaceable.</p><p>The Word-type has implemented support for replace</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='../class/Word.html'>Word</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/ListManager.html'>ListManager</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/ListManager.html#getLastOperation-dynamic'>#getLastOperation</a>
|
||||
<a href='../class/ListManager.html#getFirstOperation-dynamic'>#getFirstOperation</a>
|
||||
<a href='../class/ListManager.html#toArray-dynamic'>#toArray</a>
|
||||
<a href='../class/ListManager.html#getOperationByPosition-dynamic'>#getOperationByPosition</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(initial_content, uid, beginning, end, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>initial_content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Initialize this with a Replaceable that holds the initial_content. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>beginning</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Delimiter.html'>Delimiter</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Reference or Object. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>end</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Delimiter.html'>Delimiter</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Reference or Object. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,204 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>ReplaceType</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
ReplaceType
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content, creator, op_number)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replaceBy-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceBy</b><span>(op)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>
|
||||
<small>Inherited Method Summary</small>
|
||||
<h3 class='inherited'>
|
||||
Methods inherited from
|
||||
<a href='../class/Operation.html'>Operation</a>
|
||||
</h3>
|
||||
<p class='inherited'>
|
||||
<a href='../class/Operation.html#getUid-dynamic'>#getUid</a>
|
||||
<a href='../class/Operation.html#execute-dynamic'>#execute</a>
|
||||
</p>
|
||||
</h2>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content, creator, op_number)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content, creator, op_number)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replaceBy-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceBy</b><span>(op)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 01:28:06 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,265 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Replaceable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Replaceable
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/StructuredTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Insert
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>The ReplaceManager manages Replaceables.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='../class/ReplaceManager.html'>ReplaceManager</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Convert all relevant information of this operation to the json-format.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content, parent, uid, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/Operation.html'>Operation</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The value that this Replaceable holds. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>parent</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt><a href='../class/ReplaceManager.html'>ReplaceManager</a></tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>Used to replace this Replaceable with another one. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replace-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replace</b><span>(content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='execute-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>execute</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Convert all relevant information of this operation to the json-format.
|
||||
This result can be send to other clients.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,273 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>TestConnector</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
TestConnector
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Connectors/TestConnector.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>A trivial Connector that simulates network delay.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getOpsInExecutionOrder-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOpsInExecutionOrder</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#send-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>send</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#receive-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>receive</b><span>(o)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#flushOne-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushOne</b><span>(user)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#flushOneRandom-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushOneRandom</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#flushAll-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushAll</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#sync-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sync</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(engine, HB, execution_listener)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getOpsInExecutionOrder-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOpsInExecutionOrder</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='send-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>send</b><span>(o)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='receive-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>receive</b><span>(o)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='flushOne-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushOne</b><span>(user)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='flushOneRandom-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushOneRandom</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='flushAll-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>flushAll</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='sync-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>sync</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,127 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>TextDelete</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
TextDelete
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/TextTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Delete
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>At the moment TextDelete type equals the Delete type in BasicTypes.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='BasicTypes.Delete'>BasicTypes.Delete</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,247 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>TextInsert</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
TextInsert
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/TextTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Insert
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Extends the basic Insert type to an operation that holds a text value</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Retrieve the effective length of the $content of this operation.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(current_position)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
The result will be concatenated with the results from the other insert operations in order to retrieve the content of the engine.
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Convert all relevant information of this operation to the json-format.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(content, uid, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>The content of this Insert-type Operation. Usually you restrict the length of content to size 1 </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getLength-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getLength</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Retrieve the effective length of the $content of this operation.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>(current_position)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>The result will be concatenated with the results from the other insert operations
|
||||
in order to retrieve the content of the engine.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='HistoryBuffer.toExecutedArray'>HistoryBuffer.toExecutedArray</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Convert all relevant information of this operation to the json-format.
|
||||
This result can be send to other clients.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,313 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>TextYatta</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
TextYatta
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Frameworks/TextYatta.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Framework for Text Datastructures.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getRootElement-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getRootElement</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getEngine-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getEngine</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getConnector-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getConnector</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getHistoryBuffer-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getHistoryBuffer</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#insertText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>insertText</b><span>(pos, content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#deleteText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>deleteText</b><span>(pos, length)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replaceText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceText</b><span>(text)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(user_id, Connector)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getRootElement-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getRootElement</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getEngine-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getEngine</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getConnector-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getConnector</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getHistoryBuffer-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getHistoryBuffer</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getUserId-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getUserId</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='insertText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>insertText</b><span>(pos, content)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='deleteText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>deleteText</b><span>(pos, length)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replaceText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceText</b><span>(text)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,307 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Word</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Word
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/TextTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.ListManager
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Overview</h2>
|
||||
<div class='docstring'>
|
||||
<p>Handles a Text-like data structures with support for insertText/deleteText at a word-position.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#insertText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>insertText</b><span>(position, content)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Inserts a string into the word
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#deleteText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>deleteText</b><span>(position, length)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Deletes a part of the word.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#replaceText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceText</b><span>(text)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Replace the content of this word with another one.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
@returns [Json] A Json object.
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#setReplaceManager-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setReplaceManager</b><span>(op)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
In most cases you would embed a Word in a Replaceable, wich is handled by the ReplaceManager in order to provide replace functionality.
|
||||
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, beginning, end, prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='insertText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>insertText</b><span>(position, content)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Inserts a string into the word</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='deleteText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>deleteText</b><span>(position, length)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Deletes a part of the word.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='replaceText-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>replaceText</b><span>(text)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Replace the content of this word with another one. Concurrent replacements are not merged!
|
||||
Only one of the replacements will be used.</p><p>Can only be used if the ReplaceManager was set!</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
<h3>See also:</h3>
|
||||
<ul class='see'>
|
||||
<li>
|
||||
<a href='Word.setReplaceManager'>Word.setReplaceManager</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>@returns [Json] A Json object.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='setReplaceManager-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>setReplaceManager</b><span>(op)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>In most cases you would embed a Word in a Replaceable, wich is handled by the ReplaceManager in order
|
||||
to provide replace functionality.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='_encode-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>_encode</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,207 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>WordImmutable</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
WordImmutable
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types/TextTypes.coffee</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Inherits:</td>
|
||||
<td>
|
||||
types.Insert
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#val-dynamic'>
|
||||
#
|
||||
(String)
|
||||
<b>val</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(uid, content = "", prev, next, origin)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Parameters:</h3>
|
||||
<ul class='param'>
|
||||
<li>
|
||||
<span class='name'>uid</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>Object</tt>
|
||||
)
|
||||
</span>
|
||||
—
|
||||
<span class='desc'>A unique identifier. If uid is undefined, a new uid will be created. </span>
|
||||
</li>
|
||||
<li>
|
||||
<span class='name'>content</span>
|
||||
<span class='type'>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='val-dynamic'>
|
||||
#
|
||||
(String)
|
||||
<b>val</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='tags'>
|
||||
<h3>Returns:</h3>
|
||||
<ul class='return'>
|
||||
<li>
|
||||
<span class='type'></span>
|
||||
(
|
||||
<tt>String</tt>
|
||||
)
|
||||
—
|
||||
<span class='desc'>The content of this operation. </span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='toJson-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>toJson</b><span>()</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 04, 14 16:39:02 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,153 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>Yatta</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
Class:
|
||||
Yatta
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Engine.coffee</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Instance Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#getOperationCounter-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationCounter</b><span>(user_id)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
Get the number of operations that were created by a user.
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Constructor Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='constructor-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>constructor</b><span>(user_id)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2>Instance Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='getOperationCounter-dynamic'>
|
||||
#
|
||||
(void)
|
||||
<b>getOperationCounter</b><span>(user_id)</span>
|
||||
<br>
|
||||
</p>
|
||||
<div class='docstring'>
|
||||
<p>Get the number of operations that were created by a user.
|
||||
Accordingly you will get the next operation number that is expected from that user.</p>
|
||||
</div>
|
||||
<div class='tags'>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 02:21:01 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,256 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body class='list'>
|
||||
<div class='list tree' id='content'>
|
||||
<h1 class='full_list_header'>Class List</h1>
|
||||
<nav>
|
||||
<a target='_self' href='class_list.html'>
|
||||
Classes
|
||||
</a>
|
||||
<a target='_self' href='file_list.html'>
|
||||
Files
|
||||
</a>
|
||||
<a target='_self' href='method_list.html'>
|
||||
Methods
|
||||
</a>
|
||||
<a target='_self' href='extra_list.html'>
|
||||
Extras
|
||||
</a>
|
||||
</nav>
|
||||
<div id='search'>
|
||||
Search:
|
||||
<input type='text'>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html' target='main'>
|
||||
IwcConnector
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html' target='main'>
|
||||
TestConnector
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html' target='main'>
|
||||
Engine
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html' target='main'>
|
||||
JsonYatta
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html' target='main'>
|
||||
TextYatta
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html' target='main'>
|
||||
HistoryBuffer
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html' target='main'>
|
||||
Operation
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delete.html' target='main'>
|
||||
Delete
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
Operation
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html' target='main'>
|
||||
Insert
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
Operation
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ImmutableObject.html' target='main'>
|
||||
ImmutableObject
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
Insert
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html' target='main'>
|
||||
Delimiter
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
Operation
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonWrapper.html' target='main'>
|
||||
JsonWrapper
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html' target='main'>
|
||||
JsonType
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.MapManager
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/MapManager.html' target='main'>
|
||||
MapManager
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Operation
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/AddName.html' target='main'>
|
||||
AddName
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Operation
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html' target='main'>
|
||||
ListManager
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Insert
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html' target='main'>
|
||||
ReplaceManager
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
ListManager
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html' target='main'>
|
||||
Replaceable
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Insert
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextDelete.html' target='main'>
|
||||
TextDelete
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Delete
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html' target='main'>
|
||||
TextInsert
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.Insert
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html' target='main'>
|
||||
Word
|
||||
</a>
|
||||
<small class='parent'>
|
||||
<
|
||||
types.ListManager
|
||||
</small>
|
||||
<small class='namespace'>
|
||||
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
@@ -1,112 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>LICENSE.txt</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<nav class='toc'>
|
||||
<p class='title'>
|
||||
<a class='hide_toc' href='#'>
|
||||
<strong>Table of Contents</strong>
|
||||
</a>
|
||||
<small>
|
||||
(<a class='float_toc' href='#'>left</a>)
|
||||
</small>
|
||||
</p>
|
||||
</nav>
|
||||
<div id='filecontents'>
|
||||
<p>The MIT License (MIT)<br/><br/>Copyright (c) 2014 Kevin Jahns.<br/><br/>Permission is hereby granted, free of charge, to any person obtaining a copy<br/>of this software and associated documentation files (the "Software"), to deal<br/>in the Software without restriction, including without limitation the rights<br/>to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br/>copies of the Software, and to permit persons to whom the Software is<br/>furnished to do so, subject to the following conditions:<br/><br/>The above copyright notice and this permission notice shall be included in all<br/>copies or substantial portions of the Software.<br/><br/>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR<br/>IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,<br/>FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE<br/>AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER<br/>LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,<br/>OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE<br/>SOFTWARE.<br/></p>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,136 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../javascript/application.js'></script>
|
||||
<script src='../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>README.md</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<nav class='toc'>
|
||||
<p class='title'>
|
||||
<a class='hide_toc' href='#'>
|
||||
<strong>Table of Contents</strong>
|
||||
</a>
|
||||
<small>
|
||||
(<a class='float_toc' href='#'>left</a>)
|
||||
</small>
|
||||
</p>
|
||||
</nav>
|
||||
<div id='filecontents'>
|
||||
<h1 id="-yatta-extras-imgs-yatta_logo-png-raw-true-"><img src="./extras/imgs/Yatta_logo.png?raw=true" alt="Yatta!"></h1><p>A real-time web framework that manages concurrency control for arbitrary data structures and is <em>not</em> based on Operational Transformation.
|
||||
Yatta! provides similar functionality as <a href="https://github.com/share/ShareJS">ShareJs</a> and <a href="https://github.com/opencoweb/coweb">OpenCoweb</a>
|
||||
but does not require you to understand how the internals work. The predefined data structures provide a simple API to access your shared data structures.</p><p>Predefined data structures:</p><ul>
|
||||
<li>Text</li>
|
||||
<li>Json - <a href="./examples/IwcJson.md">example</a></li>
|
||||
<li>XML (coming soon)</li>
|
||||
</ul><p>Unlike other frameworks, Yatta! supports P2P message propagation and is not bound to a specific communication protocol.</p><p>Currently supported communication protocols:</p><ul>
|
||||
<li><a href="http://dbis.rwth-aachen.de/gadgets/iwc/resources/iwc.manual.pdf">IWC</a> - Inter-widget Communication</li>
|
||||
</ul>
|
||||
<h1 id="about">About</h1><p>Find out more about the concurrent editing problem here
|
||||
<a href="http://opencoweb.org/ocwdocs/intro/openg.html">Cooperation, Concurrency, Conflicts, and Convergence</a> and here
|
||||
<a href="http://en.wikipedia.org/wiki/Operational_transformation">Operational Transformation (OT)</a></p><p>My Bachelor Thesis project aim was to develop a P2P OT Framework that enables collaboration on XML documents and supports
|
||||
<a href="http://www3.ntu.edu.sg/home/czsun/projects/otfaq/#intentionPreservation">Intention Preservation</a>.
|
||||
After some time I realized that OT has significant drawbacks in P2P environments.</p><p>With my gained experiences I came up with a new approach. I named it Yata - Yet Another Transformation Approach.
|
||||
It enables concurrent editing with the following space and time properties:</p><ul>
|
||||
<li>Time complexity: O(S), whereby S is the number of operations that are inserted concurrently at the same position. This means that my approach does not transform against operations that happen on other positions.</li>
|
||||
<li>Space complexity = O(|Document|), whereby |Document| is the size of the shared document. Depending on the used data structure, Yata may needs 4*|Document| of space.</li>
|
||||
</ul><p>This means that my approach beats all OT time complexities. Furthermore, it is possible to make a very strict definition of Intention Preservation, and I was able to
|
||||
show that it is never violated.</p><p>Another advantage of my approach is that propagated messages are very small.
|
||||
Background: In real-time P2P OT algorithms you have to send a state-vector with every message that defines the state of the History Buffer
|
||||
on which the operation was created. This is not necessary in Yata.</p><p>One downside is that the History Buffer holds at least as many operations as there are characters in the document.
|
||||
In contrast, an OT algorithm can have an empty History Buffer while the document size is very big.</p><p>So, how did I come up with the name for the implementation (Yatta! is not Yata)?
|
||||
<img src="./extras/imgs/YATTA.png" alt="YATTA!">
|
||||
Yatta! means "I did it!" in Japanese. You scream it when you accomplish something (for proper application I refer to the Yatta-man in <a href="http://heroeswiki.com/Yatta!">Heroes</a>).
|
||||
There is also this awesome video on the Internet that will change your life <a href="https://www.youtube.com/watch?v=kL5DDSglM_s">Yatta</a>.</p><h1 id="status">Status</h1><p>Yatta! is still in an early development phase.</p><h1 id="support">Support</h1><p>Please report any issues to the <a href="https://github.com/DadaMonad/Yatta/issues">Github issue page</a>!</p><h1 id="license">License</h1><p>Yatta! is licensed under the <a href="./LICENSE.txt">MIT License</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,177 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../javascript/application.js'></script>
|
||||
<script src='../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>examples</span>
|
||||
»
|
||||
<span class='title'>IwcJson.md</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<nav class='toc'>
|
||||
<p class='title'>
|
||||
<a class='hide_toc' href='#'>
|
||||
<strong>Table of Contents</strong>
|
||||
</a>
|
||||
<small>
|
||||
(<a class='float_toc' href='#'>left</a>)
|
||||
</small>
|
||||
</p>
|
||||
</nav>
|
||||
<div id='filecontents'>
|
||||
<h2 id="iwc-json-example">IWC + JSON Example</h2><p>Here, I will give a short overview on how to use the IwcJson Framework in Role-SDK widgets.
|
||||
First you have to include the following libraries in your widget file:</p><pre><code><script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/~jahns/role-widgets/widgetbundles/libraries/DUIClient.js"></script>
|
||||
<script src="../dest/browser/Frameworks/JsonIwcYatta.min.js"></script>
|
||||
<script src="./IwcJson.js"></script>
|
||||
</code></pre><p>A working widget implementation is maintained <a href="./IwcJson.xml">here</a> and the js-file is <a href="./IwcJson.js">here</a></p><pre><code class="lang-js">function init(){
|
||||
createConnector(function(Connector, user_id){
|
||||
</code></pre><p>yatta is the shared json object. If you change something on this object,
|
||||
it will be instantly shared with all the other collaborators.</p><pre><code class="lang-js"> yatta = new JsonYatta(user_id, Connector);
|
||||
</code></pre><p>Add a integer-property like this</p><pre><code class="lang-js"> yatta.val('x', 7);
|
||||
</code></pre><p>Get the value of property x like this</p><pre><code class="lang-js"> console.log(yatta.val('x') === 7); // true
|
||||
</code></pre><p>A string property can be either mutable or immutable.</p><pre><code class="lang-js"> yatta.val('mutable_string', "text", "mutable");
|
||||
yatta.val('immutable_string', "text", "immutable");
|
||||
|
||||
console.log(yatta.val('immutable_string') === "text"); // true
|
||||
yatta.val('mutable_string').insertText(2,"XXX"); // position, string
|
||||
yatta.val('mutable_string').deleteText(0,1); // position, deletion length
|
||||
console.log(yatta.val('mutable_string').val() === "eXXXxt"); // true
|
||||
</code></pre><p>You can omit the mutable - parameter. In that case the default will be used.
|
||||
Initially the default is 'mutable'. You can set it like this:</p><pre><code class="lang-js"> yatta.setMutableDefault('mutable');
|
||||
// or
|
||||
yatta.setMutableDefault('immutable');
|
||||
|
||||
yatta.val('new_string', "string");
|
||||
console.log(yatta.val('new_string') === "string"); // true
|
||||
</code></pre><p>yatta is chainable:</p><pre><code class="lang-js"> yatta.val('a', 4).val('b',5);
|
||||
console.log(yatta.val('a') === 4); // true
|
||||
console.log(yatta.val('b') === 5); // true
|
||||
</code></pre><p>You can alse set objects.</p><pre><code class="lang-js"> yatta.val('object', {a : {b : "b"}, c : { d : 5 }});
|
||||
console.log(yatta.val('object').val('c').val('d') === 5); // true
|
||||
</code></pre><p>Lists are always immutable.</p><pre><code class="lang-js"> yatta.val('list', [1,2,3]);
|
||||
console.log(yatta.val('list')[2] === 3); // true
|
||||
</code></pre><p>But there is a much more convenient way!</p><pre><code class="lang-js"> console.log(yatta.value.list[2] === 3) // true
|
||||
yatta.value.list = [3,4,5]
|
||||
console.log(yatta.val('list')[2] === 5) // true
|
||||
yatta.value.object = {c : 4}
|
||||
console.log(yatta.value.object.c === 4) // true
|
||||
</code></pre><p>The downside is that you are only allowed to overwrite existing properties.</p><pre><code class="lang-js"> yatta.value.newProperty = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, yatta.value.newProperty is undefined.
|
||||
</code></pre><p>So, how do we create new properties?</p><pre><code class="lang-js"> yatta.value = {newProperty : "Awesome"}
|
||||
console.log(yatta.value.newProperty === "Awesome") // true, it's awesome ;)
|
||||
</code></pre><p>This is stupid! I don't want to overwrite all my existing properties!
|
||||
Very well.. The solution is that we merge yatta.value with the new assignment.
|
||||
For example: assuming we want to overwrite yatta.value with some object o.
|
||||
Then these two rules apply:</p><ul>
|
||||
<li>The result has all properties of o</li>
|
||||
<li>The result has all properties of yatta.value if they don't occur under the same property-name in o</li>
|
||||
</ul>
|
||||
<pre><code class="lang-js"> yatta.value = {newProperty : {Awesome : true }}
|
||||
console.log(yatta.value.list[2] === 5) // true, old value list still exists.
|
||||
console.log(yatta.value.newProperty.Awesome === true) // true, newProperty is overwritten.
|
||||
</code></pre><p>Consider this case.</p><pre><code class="lang-js"> yatta.value = {newProperty : { x : 4} }
|
||||
console.log(yatta.value.newProperty.Awesome == null) // true, newProperty was replaced, therefore it is now undefined
|
||||
</code></pre><p>Did you notice that you always set immutable objects if you set properties like this?
|
||||
Even if the default is 'mutable'. If you want to work with mutable objects you have to work with .val().</p><p>One last thing. You are only allowed to set properties like this <code>yatta.value = o</code>.
|
||||
Yatta can't observe if you overwrite object references <code>yatta = "Awesome"</code>.</p><pre><code class="lang-js"> w = yatta.value.newProperty
|
||||
w = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, still not awesome..
|
||||
</code></pre><p>Please also read <a href="https://rawgit.com/DadaMonad/Yatta/master/doc/class/JsonWrapper.html">JsonWrapper</a></p><pre><code class="lang-js"> })
|
||||
}
|
||||
window.onload = init
|
||||
</code></pre>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,117 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../javascript/application.js'></script>
|
||||
<script src='../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>examples</span>
|
||||
»
|
||||
<span class='title'>README.md</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<nav class='toc'>
|
||||
<p class='title'>
|
||||
<a class='hide_toc' href='#'>
|
||||
<strong>Table of Contents</strong>
|
||||
</a>
|
||||
<small>
|
||||
(<a class='float_toc' href='#'>left</a>)
|
||||
</small>
|
||||
</p>
|
||||
</nav>
|
||||
<div id='filecontents'>
|
||||
<h1 id="examples">Examples</h1><p>Here you find some (hopefully) usefull examples on how to use Yatta!</p><ul>
|
||||
<li><a href="./IwcJson.md">IWC + Json</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,64 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body class='list'>
|
||||
<div class='list tree' id='content'>
|
||||
<h1 class='full_list_header'>File List</h1>
|
||||
<nav>
|
||||
<a target='_self' href='class_list.html'>
|
||||
Classes
|
||||
</a>
|
||||
<a target='_self' href='file_list.html'>
|
||||
Files
|
||||
</a>
|
||||
<a target='_self' href='method_list.html'>
|
||||
Methods
|
||||
</a>
|
||||
<a target='_self' href='extra_list.html'>
|
||||
Extras
|
||||
</a>
|
||||
</nav>
|
||||
<div id='search'>
|
||||
Search:
|
||||
<input type='text'>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='extra/README.md.html' target='main'>
|
||||
README.md
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='extra/LICENSE.txt.html' target='main'>
|
||||
LICENSE.txt
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<span>
|
||||
examples
|
||||
</span>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='extra/examples/README.md.html' target='main'>
|
||||
README.md
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href='extra/examples/IwcJson.md.html' target='main'>
|
||||
IwcJson.md
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,158 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Connectors</span>
|
||||
»
|
||||
<span class='title'>IwcConnector.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
IwcConnector.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Connectors</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='module.exports-variable'>
|
||||
module.exports
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>createIwcConnector</code></pre>
|
||||
|
||||
</dd>
|
||||
<dt id='window.createConnector-variable'>
|
||||
window.createConnector
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>createIwcConnector</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<h2>Method Summary</h2>
|
||||
<ul class='summary'>
|
||||
<li>
|
||||
<span class='signature'>
|
||||
<a href='#createIwcConnector-'>
|
||||
~
|
||||
(void)
|
||||
<b>createIwcConnector</b><span>(callback)</span>
|
||||
</a>
|
||||
</span>
|
||||
<span class='desc'>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<h2>Method Details</h2>
|
||||
<div class='methods'>
|
||||
<div class='method_details'>
|
||||
<p class='signature' id='createIwcConnector-'>
|
||||
~
|
||||
(void)
|
||||
<b>createIwcConnector</b><span>(callback)</span>
|
||||
<br>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Connectors</span>
|
||||
»
|
||||
<span class='title'>TestConnector.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
TestConnector.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Connectors</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,132 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../javascript/application.js'></script>
|
||||
<script src='../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Engine.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
Engine.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Classes:
|
||||
</td>
|
||||
<td>
|
||||
<a href='../../class/Engine.html'>
|
||||
Engine
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='module.exports-variable'>
|
||||
module.exports
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>Engine</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,142 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Frameworks</span>
|
||||
»
|
||||
<span class='title'>JsonYatta.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
JsonYatta.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Frameworks</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Classes:
|
||||
</td>
|
||||
<td>
|
||||
<a href='../../../class/JsonYatta.html'>
|
||||
JsonYatta
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='window.JsonYatta-variable'>
|
||||
window.JsonYatta
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>JsonYatta</code></pre>
|
||||
|
||||
</dd>
|
||||
<dt id='module.exports-variable'>
|
||||
module.exports
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>JsonYatta</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,134 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Frameworks</span>
|
||||
»
|
||||
<span class='title'>TextYatta.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
TextYatta.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Frameworks</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Classes:
|
||||
</td>
|
||||
<td>
|
||||
<a href='../../../class/TextYatta.html'>
|
||||
TextYatta
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='module.exports-variable'>
|
||||
module.exports
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>TextYatta</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,132 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../javascript/application.js'></script>
|
||||
<script src='../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>HistoryBuffer.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
HistoryBuffer.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Classes:
|
||||
</td>
|
||||
<td>
|
||||
<a href='../../class/HistoryBuffer.html'>
|
||||
HistoryBuffer
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2>Variables Summary</h2>
|
||||
<dl class='constants'>
|
||||
<dt id='module.exports-variable'>
|
||||
module.exports
|
||||
=
|
||||
</dt>
|
||||
<dd>
|
||||
<pre><code class='coffeescript'>HistoryBuffer</code></pre>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,121 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../javascript/application.js'></script>
|
||||
<script src='../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>ReplaceType.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
ReplaceType.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Classes:
|
||||
</td>
|
||||
<td>
|
||||
<a href='../../class/Replaceable.html'>
|
||||
Replaceable
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
July 18, 14 02:21:01 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Types</span>
|
||||
»
|
||||
<span class='title'>BasicTypes.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
BasicTypes.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Types</span>
|
||||
»
|
||||
<span class='title'>JsonTypes.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
JsonTypes.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Types</span>
|
||||
»
|
||||
<span class='title'>StructuredTypes.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
StructuredTypes.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Types</span>
|
||||
»
|
||||
<span class='title'>TextTypes.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
TextTypes.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='../../../javascript/application.js'></script>
|
||||
<script src='../../../javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body>
|
||||
<div id='base' data-path='../../../'></div>
|
||||
<div id='header'>
|
||||
<div id='menu'>
|
||||
<a href='../../../extra/README.md.html' title='Yatta!'>
|
||||
Yatta!
|
||||
</a>
|
||||
»
|
||||
<a href='../../../alphabetical_index.html' title='Index'>
|
||||
Index
|
||||
</a>
|
||||
»
|
||||
<span class='title'>lib</span>
|
||||
»
|
||||
<span class='title'>Types</span>
|
||||
»
|
||||
<span class='title'>XmlTypes.coffee</span>
|
||||
</div>
|
||||
</div>
|
||||
<div id='content'>
|
||||
<h1>
|
||||
File:
|
||||
XmlTypes.coffee
|
||||
</h1>
|
||||
<table class='box'>
|
||||
<tr>
|
||||
<td>Defined in:</td>
|
||||
<td>lib/Types</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id='footer'>
|
||||
August 08, 14 04:37:31 by
|
||||
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
|
||||
Codo
|
||||
</a>
|
||||
2.0.9
|
||||
✲
|
||||
Press H to see the keyboard shortcuts
|
||||
✲
|
||||
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
|
||||
✲
|
||||
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
|
||||
</div>
|
||||
<iframe id='search_frame'></iframe>
|
||||
<div id='fuzzySearch'>
|
||||
<input type='text'>
|
||||
<ol></ol>
|
||||
</div>
|
||||
<div id='help'>
|
||||
<p>
|
||||
Quickly fuzzy find classes, mixins, methods, file:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>T</span>
|
||||
Open fuzzy finder dialog
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Control the navigation frame:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>L</span>
|
||||
Toggle list view
|
||||
</li>
|
||||
<li>
|
||||
<span>C</span>
|
||||
Show class list
|
||||
</li>
|
||||
<li>
|
||||
<span>I</span>
|
||||
Show mixin list
|
||||
</li>
|
||||
<li>
|
||||
<span>F</span>
|
||||
Show file list
|
||||
</li>
|
||||
<li>
|
||||
<span>M</span>
|
||||
Show method list
|
||||
</li>
|
||||
<li>
|
||||
<span>E</span>
|
||||
Show extras list
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
You can focus and blur the search input:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<span>S</span>
|
||||
Focus search input
|
||||
</li>
|
||||
<li>
|
||||
<span>Esc</span>
|
||||
Blur search input
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,156 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body class='list'>
|
||||
<div class='list tree' id='content'>
|
||||
<h1 class='full_list_header'>File List</h1>
|
||||
<nav>
|
||||
<a target='_self' href='class_list.html'>
|
||||
Classes
|
||||
</a>
|
||||
<a target='_self' href='file_list.html'>
|
||||
Files
|
||||
</a>
|
||||
<a target='_self' href='method_list.html'>
|
||||
Methods
|
||||
</a>
|
||||
<a target='_self' href='extra_list.html'>
|
||||
Extras
|
||||
</a>
|
||||
</nav>
|
||||
<div id='search'>
|
||||
Search:
|
||||
<input type='text'>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<span>
|
||||
lib
|
||||
</span>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<span>
|
||||
Connectors
|
||||
</span>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Connectors/IwcConnector.coffee.html' target='main'>
|
||||
IwcConnector.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Connectors
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Connectors/TestConnector.coffee.html' target='main'>
|
||||
TestConnector.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Connectors
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<li>
|
||||
<a href='file/lib/Engine.coffee.html' target='main'>
|
||||
Engine.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<span>
|
||||
Frameworks
|
||||
</span>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Frameworks/JsonYatta.coffee.html' target='main'>
|
||||
JsonYatta.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Frameworks
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Frameworks/TextYatta.coffee.html' target='main'>
|
||||
TextYatta.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Frameworks
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<li>
|
||||
<a href='file/lib/HistoryBuffer.coffee.html' target='main'>
|
||||
HistoryBuffer.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<span>
|
||||
Types
|
||||
</span>
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='file/lib/Types/BasicTypes.coffee.html' target='main'>
|
||||
BasicTypes.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Types
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/JsonTypes.coffee.html' target='main'>
|
||||
JsonTypes.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Types
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/StructuredTypes.coffee.html' target='main'>
|
||||
StructuredTypes.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Types
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/TextTypes.coffee.html' target='main'>
|
||||
TextTypes.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Types
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Types/XmlTypes.coffee.html' target='main'>
|
||||
XmlTypes.coffee
|
||||
</a>
|
||||
<small class='namespace'>
|
||||
lib/Types
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,14 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<frameset cols='25%, *'>
|
||||
<frame name='list' src='class_list.html'></frame>
|
||||
<frame name='main' src='extra/README.md.html'></frame>
|
||||
</frameset>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1,859 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body class='list'>
|
||||
<div class='list' id='content'>
|
||||
<h1 class='full_list_header'>Method List</h1>
|
||||
<nav>
|
||||
<a target='_self' href='class_list.html'>
|
||||
Classes
|
||||
</a>
|
||||
<a target='_self' href='file_list.html'>
|
||||
Files
|
||||
</a>
|
||||
<a target='_self' href='method_list.html'>
|
||||
Methods
|
||||
</a>
|
||||
<a target='_self' href='extra_list.html'>
|
||||
Extras
|
||||
</a>
|
||||
</nav>
|
||||
<div id='search'>
|
||||
Search:
|
||||
<input type='text'>
|
||||
</div>
|
||||
<ul>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(ReplaceManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(Replaceable)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(Delimiter)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delete.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(Delete)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(TextInsert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/AddName.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(AddName)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ImmutableObject.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(ImmutableObject)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html#_encode-dynamic' target='main' title='_encode'>
|
||||
#_encode
|
||||
</a>
|
||||
<small>
|
||||
(JsonType)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#addOperation-dynamic' target='main' title='addOperation'>
|
||||
#addOperation
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#applyDelete-dynamic' target='main' title='applyDelete'>
|
||||
#applyDelete
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#applyOp-dynamic' target='main' title='applyOp'>
|
||||
#applyOp
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#applyOps-dynamic' target='main' title='applyOps'>
|
||||
#applyOps
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#applyOpsBundle-dynamic' target='main' title='applyOpsBundle'>
|
||||
#applyOpsBundle
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#applyOpsCheckDouble-dynamic' target='main' title='applyOpsCheckDouble'>
|
||||
#applyOpsCheckDouble
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(ListManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(JsonType)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonWrapper.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(JsonWrapper)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/AddName.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(AddName)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Delimiter)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/MapManager.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(MapManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ImmutableObject.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(ImmutableObject)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(ReplaceManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Replaceable)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delete.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Delete)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(IwcConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(Operation)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(TextInsert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#constructor-dynamic' target='main' title='constructor'>
|
||||
#constructor
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='file/lib/Connectors/IwcConnector.coffee.html#createIwcConnector-' target='main' title='createIwcConnector'>
|
||||
~createIwcConnector
|
||||
</a>
|
||||
<small>
|
||||
(lib/Connectors/IwcConnector.coffee)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#deleteText-dynamic' target='main' title='deleteText'>
|
||||
#deleteText
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#deleteText-dynamic' target='main' title='deleteText'>
|
||||
#deleteText
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(Delimiter)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delete.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(Delete)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/AddName.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(AddName)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(Replaceable)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html#execute-dynamic' target='main' title='execute'>
|
||||
#execute
|
||||
</a>
|
||||
<small>
|
||||
(Operation)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#flushAll-dynamic' target='main' title='flushAll'>
|
||||
#flushAll
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#flushOne-dynamic' target='main' title='flushOne'>
|
||||
#flushOne
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#flushOneRandom-dynamic' target='main' title='flushOneRandom'>
|
||||
#flushOneRandom
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#getConnector-dynamic' target='main' title='getConnector'>
|
||||
#getConnector
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#getConnector-dynamic' target='main' title='getConnector'>
|
||||
#getConnector
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#getDistanceToOrigin-dynamic' target='main' title='getDistanceToOrigin'>
|
||||
#getDistanceToOrigin
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#getEngine-dynamic' target='main' title='getEngine'>
|
||||
#getEngine
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#getEngine-dynamic' target='main' title='getEngine'>
|
||||
#getEngine
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html#getFirstOperation-dynamic' target='main' title='getFirstOperation'>
|
||||
#getFirstOperation
|
||||
</a>
|
||||
<small>
|
||||
(ListManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#getHistoryBuffer-dynamic' target='main' title='getHistoryBuffer'>
|
||||
#getHistoryBuffer
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#getHistoryBuffer-dynamic' target='main' title='getHistoryBuffer'>
|
||||
#getHistoryBuffer
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html#getLastOperation-dynamic' target='main' title='getLastOperation'>
|
||||
#getLastOperation
|
||||
</a>
|
||||
<small>
|
||||
(ListManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html#getLength-dynamic' target='main' title='getLength'>
|
||||
#getLength
|
||||
</a>
|
||||
<small>
|
||||
(TextInsert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#getNextOperationIdentifier-dynamic' target='main' title='getNextOperationIdentifier'>
|
||||
#getNextOperationIdentifier
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#getOperation-dynamic' target='main' title='getOperation'>
|
||||
#getOperation
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html#getOperationByPosition-dynamic' target='main' title='getOperationByPosition'>
|
||||
#getOperationByPosition
|
||||
</a>
|
||||
<small>
|
||||
(ListManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#getOperationCounter-dynamic' target='main' title='getOperationCounter'>
|
||||
#getOperationCounter
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#getOpsInExecutionOrder-dynamic' target='main' title='getOpsInExecutionOrder'>
|
||||
#getOpsInExecutionOrder
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#getReservedUniqueIdentifier-dynamic' target='main' title='getReservedUniqueIdentifier'>
|
||||
#getReservedUniqueIdentifier
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#getRootElement-dynamic' target='main' title='getRootElement'>
|
||||
#getRootElement
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#getRootElement-dynamic' target='main' title='getRootElement'>
|
||||
#getRootElement
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html#getUid-dynamic' target='main' title='getUid'>
|
||||
#getUid
|
||||
</a>
|
||||
<small>
|
||||
(Operation)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/HistoryBuffer.html#getUserId-dynamic' target='main' title='getUserId'>
|
||||
#getUserId
|
||||
</a>
|
||||
<small>
|
||||
(HistoryBuffer)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#getUserId-dynamic' target='main' title='getUserId'>
|
||||
#getUserId
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#getUserId-dynamic' target='main' title='getUserId'>
|
||||
#getUserId
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#insertText-dynamic' target='main' title='insertText'>
|
||||
#insertText
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#insertText-dynamic' target='main' title='insertText'>
|
||||
#insertText
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Delimiter.html#isDeleted-dynamic' target='main' title='isDeleted'>
|
||||
#isDeleted
|
||||
</a>
|
||||
<small>
|
||||
(Delimiter)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#isDeleted-dynamic' target='main' title='isDeleted'>
|
||||
#isDeleted
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#parseOperation-dynamic' target='main' title='parseOperation'>
|
||||
#parseOperation
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html#receive-dynamic' target='main' title='receive'>
|
||||
#receive
|
||||
</a>
|
||||
<small>
|
||||
(IwcConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#receive-dynamic' target='main' title='receive'>
|
||||
#receive
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html#replace-dynamic' target='main' title='replace'>
|
||||
#replace
|
||||
</a>
|
||||
<small>
|
||||
(Replaceable)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html#replace-dynamic' target='main' title='replace'>
|
||||
#replace
|
||||
</a>
|
||||
<small>
|
||||
(ReplaceManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#replaceText-dynamic' target='main' title='replaceText'>
|
||||
#replaceText
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#replaceText-dynamic' target='main' title='replaceText'>
|
||||
#replaceText
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html#saveOperation-dynamic' target='main' title='saveOperation'>
|
||||
#saveOperation
|
||||
</a>
|
||||
<small>
|
||||
(Operation)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html#send-dynamic' target='main' title='send'>
|
||||
#send
|
||||
</a>
|
||||
<small>
|
||||
(IwcConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#send-dynamic' target='main' title='send'>
|
||||
#send
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html#sendIwcIntent-dynamic' target='main' title='sendIwcIntent'>
|
||||
#sendIwcIntent
|
||||
</a>
|
||||
<small>
|
||||
(IwcConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#setMutableDefault-dynamic' target='main' title='setMutableDefault'>
|
||||
#setMutableDefault
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html#setMutableDefault-dynamic' target='main' title='setMutableDefault'>
|
||||
#setMutableDefault
|
||||
</a>
|
||||
<small>
|
||||
(JsonType)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#setReplaceManager-dynamic' target='main' title='setReplaceManager'>
|
||||
#setReplaceManager
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/IwcConnector.html#sync-dynamic' target='main' title='sync'>
|
||||
#sync
|
||||
</a>
|
||||
<small>
|
||||
(IwcConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TestConnector.html#sync-dynamic' target='main' title='sync'>
|
||||
#sync
|
||||
</a>
|
||||
<small>
|
||||
(TestConnector)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ListManager.html#toArray-dynamic' target='main' title='toArray'>
|
||||
#toArray
|
||||
</a>
|
||||
<small>
|
||||
(ListManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Engine.html#tryUnprocessed-dynamic' target='main' title='tryUnprocessed'>
|
||||
#tryUnprocessed
|
||||
</a>
|
||||
<small>
|
||||
(Engine)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Insert.html#update_sl-dynamic' target='main' title='update_sl'>
|
||||
#update_sl
|
||||
</a>
|
||||
<small>
|
||||
(Insert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonType.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(JsonType)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextInsert.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(TextInsert)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Replaceable.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(Replaceable)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ImmutableObject.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(ImmutableObject)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/ReplaceManager.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(ReplaceManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/JsonYatta.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(JsonYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/TextYatta.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(TextYatta)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Word.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(Word)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/MapManager.html#val-dynamic' target='main' title='val'>
|
||||
#val
|
||||
</a>
|
||||
<small>
|
||||
(MapManager)
|
||||
</small>
|
||||
</li>
|
||||
<li>
|
||||
<a href='class/Operation.html#validateSavedOperations-dynamic' target='main' title='validateSavedOperations'>
|
||||
#validateSavedOperations
|
||||
</a>
|
||||
<small>
|
||||
(Operation)
|
||||
</small>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,36 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Yatta! Documentation</title>
|
||||
<script src='javascript/application.js'></script>
|
||||
<script src='javascript/search.js'></script>
|
||||
<link rel='stylesheet' href='stylesheets/application.css' type='text/css'>
|
||||
</head>
|
||||
<body class='list'>
|
||||
<div class='list tree' id='content'>
|
||||
<h1 class='full_list_header'>Mixin List</h1>
|
||||
<nav>
|
||||
<a target='_self' href='class_list.html'>
|
||||
Classes
|
||||
</a>
|
||||
<a target='_self' href='file_list.html'>
|
||||
Files
|
||||
</a>
|
||||
<a target='_self' href='method_list.html'>
|
||||
Methods
|
||||
</a>
|
||||
<a target='_self' href='extra_list.html'>
|
||||
Extras
|
||||
</a>
|
||||
</nav>
|
||||
<div id='search'>
|
||||
Search:
|
||||
<input type='text'>
|
||||
</div>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,745 +0,0 @@
|
||||
pre code{display:block;padding:.5em;background:#f0f0f0}pre code,pre .subst,pre .tag .title,pre .lisp .title,pre .clojure .built_in,pre .nginx .title{color:black}pre .string,pre .title,pre .constant,pre .parent,pre .tag .value,pre .rules .value,pre .rules .value .number,pre .preprocessor,pre .haml .symbol,pre .ruby .symbol,pre .ruby .symbol .string,pre .aggregate,pre .template_tag,pre .django .variable,pre .smalltalk .class,pre .addition,pre .flow,pre .stream,pre .bash .variable,pre .apache .tag,pre .apache .cbracket,pre .tex .command,pre .tex .special,pre .erlang_repl .function_or_atom,pre .asciidoc .header,pre .markdown .header,pre .coffeescript .attribute{color:#800}pre .comment,pre .annotation,pre .template_comment,pre .diff .header,pre .chunk,pre .asciidoc .blockquote,pre .markdown .blockquote{color:#888}pre .number,pre .date,pre .regexp,pre .literal,pre .hexcolor,pre .smalltalk .symbol,pre .smalltalk .char,pre .go .constant,pre .change,pre .lasso .variable,pre .asciidoc .bullet,pre .markdown .bullet,pre .asciidoc .link_url,pre .markdown .link_url{color:#080}pre .label,pre .javadoc,pre .ruby .string,pre .decorator,pre .filter .argument,pre .localvars,pre .array,pre .attr_selector,pre .important,pre .pseudo,pre .pi,pre .haml .bullet,pre .doctype,pre .deletion,pre .envvar,pre .shebang,pre .apache .sqbracket,pre .nginx .built_in,pre .tex .formula,pre .erlang_repl .reserved,pre .prompt,pre .asciidoc .link_label,pre .markdown .link_label,pre .vhdl .attribute,pre .clojure .attribute,pre .asciidoc .attribute,pre .lasso .attribute,pre .coffeescript .property{color:#88F}pre .keyword,pre .id,pre .title,pre .built_in,pre .aggregate,pre .css .tag,pre .javadoctag,pre .phpdoc,pre .yardoctag,pre .smalltalk .class,pre .winutils,pre .bash .variable,pre .apache .tag,pre .go .typename,pre .tex .command,pre .asciidoc .strong,pre .markdown .strong,pre .request,pre .status{font-weight:bold}pre .asciidoc .emphasis,pre .markdown .emphasis{font-style:italic}pre .nginx .built_in{font-weight:normal}pre .coffeescript .javascript,pre .javascript .xml,pre .lasso .markup,pre .tex .formula,pre .xml .javascript,pre .xml .vbscript,pre .xml .css,pre .xml .cdata{opacity:.5}
|
||||
body {
|
||||
padding: 0 5px;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
h1 {
|
||||
font-size: 25px;
|
||||
margin: 0.8em 0 0.5em;
|
||||
padding-top: 4px;
|
||||
border-top: 1px dotted #d5d5d5;
|
||||
}
|
||||
h2 {
|
||||
padding: 0;
|
||||
padding-bottom: 3px;
|
||||
border-bottom: 1px #aaa solid;
|
||||
font-size: 1.4em;
|
||||
margin: 1.8em 0 0.5em;
|
||||
}
|
||||
#base {
|
||||
display: none;
|
||||
}
|
||||
#fuzzySearch {
|
||||
-webkit-box-shadow: rgba(0,0,0,0.5) 0px 10px 30px 10px;
|
||||
box-shadow: rgba(0,0,0,0.5) 0px 10px 30px 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
position: fixed;
|
||||
z-index: 8000;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 25px;
|
||||
width: 80%;
|
||||
height: 45px;
|
||||
margin: 0 auto;
|
||||
display: none;
|
||||
background-color: #fff;
|
||||
padding-top: 25px;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
#fuzzySearch input {
|
||||
margin-left: 10%;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
width: 80%;
|
||||
border: 2px solid #05a;
|
||||
font-size: 20px;
|
||||
padding: 5px;
|
||||
}
|
||||
#fuzzySearch ol {
|
||||
list-style-type: none;
|
||||
margin: 10px 0 0 0;
|
||||
padding: 0;
|
||||
}
|
||||
#fuzzySearch ol li {
|
||||
padding: 3px;
|
||||
}
|
||||
#fuzzySearch ol li.stripe {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
#fuzzySearch ol li.selected {
|
||||
background: #05a;
|
||||
}
|
||||
#fuzzySearch ol li.selected a {
|
||||
color: #fff;
|
||||
}
|
||||
#fuzzySearch ol li.selected a:visited {
|
||||
color: #fff;
|
||||
}
|
||||
#fuzzySearch ol li.selected a:hover {
|
||||
color: #05a;
|
||||
}
|
||||
#fuzzySearch ol li.selected a span {
|
||||
color: #05a;
|
||||
}
|
||||
#fuzzySearch ol li a {
|
||||
color: #05a;
|
||||
font-size: 18px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#fuzzySearch ol li a:visited {
|
||||
color: #05a;
|
||||
}
|
||||
#fuzzySearch ol li a:hover {
|
||||
background: #ffffa5;
|
||||
}
|
||||
#fuzzySearch ol li a span {
|
||||
background-color: #ff0;
|
||||
}
|
||||
#fuzzySearch ol li small {
|
||||
font-size: 14px;
|
||||
padding-left: 10px;
|
||||
color: #888;
|
||||
}
|
||||
#help {
|
||||
-webkit-box-shadow: rgba(0,0,0,0.5) 0px 10px 30px 10px;
|
||||
box-shadow: rgba(0,0,0,0.5) 0px 10px 30px 10px;
|
||||
-webkit-border-radius: 10px;
|
||||
border-radius: 10px;
|
||||
position: fixed;
|
||||
z-index: 8000;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
width: 500px;
|
||||
height: 460px;
|
||||
margin: 0 auto;
|
||||
margin-top: -265px;
|
||||
display: none;
|
||||
padding: 25px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#help ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#help ul li {
|
||||
height: 35px;
|
||||
font-weight: bold;
|
||||
}
|
||||
#help ul li span {
|
||||
-webkit-box-shadow: rgba(0,0,0,0.5) 1px 1px 2px;
|
||||
box-shadow: rgba(0,0,0,0.5) 1px 1px 2px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 50px;
|
||||
padding: 5px;
|
||||
margin-right: 20px;
|
||||
background: #eee;
|
||||
text-align: center;
|
||||
}
|
||||
#content a:link,
|
||||
#content a:visited {
|
||||
text-decoration: none;
|
||||
color: #05a;
|
||||
}
|
||||
#content a:hover {
|
||||
background: #ffffa5;
|
||||
}
|
||||
#content #filecontents img {
|
||||
border: 0;
|
||||
}
|
||||
#content #filecontents li {
|
||||
line-height: 25px;
|
||||
}
|
||||
#content #filecontents table {
|
||||
padding: 0;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
#content #filecontents table tr {
|
||||
border-top: 1px solid #ccc;
|
||||
background-color: #fff;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#content #filecontents table tr td {
|
||||
border: 1px solid #ccc;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
padding: 6px 13px;
|
||||
}
|
||||
#content table.box {
|
||||
font-size: 1em;
|
||||
line-height: 2;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
#content table.box tr {
|
||||
background-color: #fff;
|
||||
}
|
||||
#content table.box tr:first-child {
|
||||
background-color: #eee;
|
||||
}
|
||||
#content table.box tr td {
|
||||
border: 1px solid #aaa;
|
||||
}
|
||||
#content table.box tr td:first-child {
|
||||
width: 100px;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
}
|
||||
#content table.box tr td:last-child {
|
||||
min-width: 420px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
#content h1 .note,
|
||||
#content li .note,
|
||||
#content .properties .note,
|
||||
#content .method_details .signature .note {
|
||||
font-weight: normal;
|
||||
padding: 3px 5px;
|
||||
position: relative;
|
||||
top: -3px;
|
||||
text-transform: capitalize;
|
||||
display: inline;
|
||||
}
|
||||
#content .method_details .signature .note {
|
||||
font-size: 0.6em;
|
||||
top: -1px;
|
||||
}
|
||||
#content h1 .note {
|
||||
font-size: 0.5em;
|
||||
}
|
||||
#content li .note {
|
||||
top: 0px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#content .properties .note {
|
||||
top: 0px;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
#content ul.summary,
|
||||
#content .properties {
|
||||
list-style: none;
|
||||
font-family: monospace;
|
||||
font-size: 1em;
|
||||
line-height: 1.5em;
|
||||
}
|
||||
#content ul.summary li,
|
||||
#content .properties li {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#content ul.summary .signature,
|
||||
#content .properties .signature {
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
padding: 1px 10px;
|
||||
color: #05a;
|
||||
background: #eaeaff;
|
||||
border: 1px solid #dfdfe5;
|
||||
}
|
||||
#content ul.summary .signature a:hover,
|
||||
#content .properties .signature a:hover {
|
||||
background: transparent;
|
||||
}
|
||||
#content ul.summary li[deprecated] .signature,
|
||||
#content .properties li[deprecated] .signature {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
#content ul.summary .signature + .note.title,
|
||||
#content .properties .signature + .note.title {
|
||||
margin-left: 7px;
|
||||
}
|
||||
#content ul.summary .desc,
|
||||
#content .properties .desc {
|
||||
margin-left: 32px;
|
||||
display: block;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
#content ul.summary .desc p,
|
||||
#content .properties .desc p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
#content dl.constants dt {
|
||||
font-weight: bold;
|
||||
}
|
||||
#content dl.constants,
|
||||
#content dl.properties {
|
||||
margin-left: 40px;
|
||||
}
|
||||
#content dl.constants dt,
|
||||
#content dl.properties dt {
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#content dl.constants dt .docstring,
|
||||
#content dl.properties dt .docstring {
|
||||
margin-left: 32px;
|
||||
font-size: 0.9em;
|
||||
font-weight: normal;
|
||||
}
|
||||
#content dl.constants dd,
|
||||
#content dl.properties dd {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
#content .method_details {
|
||||
border-top: 1px dotted #aaa;
|
||||
margin-top: 15px;
|
||||
padding-top: 0;
|
||||
}
|
||||
#content .method_details:first-child {
|
||||
border: none;
|
||||
}
|
||||
#content .method_details p.signature {
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
font-size: 1.1em;
|
||||
font-weight: normal;
|
||||
font-family: Monaco, Consolas, Courier, monospace;
|
||||
padding: 6px 10px;
|
||||
margin-top: 18px;
|
||||
background: #e5e8ff;
|
||||
border: 1px solid #d8d8e5;
|
||||
}
|
||||
#content .tags {
|
||||
font-size: 13px;
|
||||
}
|
||||
#content .tags h3 {
|
||||
font-size: 1em;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
#content .tags ul {
|
||||
margin-top: 0px;
|
||||
padding-left: 30px;
|
||||
list-style: square;
|
||||
}
|
||||
#content .tags ul .name {
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
#content .tags .overloads h3 {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
#content .tags .overloads .overload {
|
||||
margin-left: 20px;
|
||||
}
|
||||
#content .tags .overloads .overload p.signature {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
#content .tags .events h3 {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
#content .tags .events .event {
|
||||
margin-left: 20px;
|
||||
}
|
||||
#content .tags .events .event p.signature {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
#content .note {
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
margin-top: 10px;
|
||||
color: #222;
|
||||
background: #e3e4e3;
|
||||
border: 1px solid #d5d5d5;
|
||||
padding: 7px 10px;
|
||||
display: block;
|
||||
}
|
||||
#content .deprecated {
|
||||
background: #ffe5e5;
|
||||
border-color: #e9dada;
|
||||
}
|
||||
#content .writeonly {
|
||||
background: #d3ff97;
|
||||
border-color: #c3eb8b;
|
||||
}
|
||||
#content .readonly {
|
||||
background: #ffe5e5;
|
||||
border-color: #e9dada;
|
||||
}
|
||||
#content .bound {
|
||||
background: #d3ff97;
|
||||
border-color: #c3eb8b;
|
||||
}
|
||||
#content .todo {
|
||||
background: #ffffc5;
|
||||
border-color: #ececaa;
|
||||
}
|
||||
#content .private {
|
||||
background: #d5d5d5;
|
||||
border-color: #c5c5c5;
|
||||
}
|
||||
#content .constructor {
|
||||
color: #fff;
|
||||
background: #6a98d6;
|
||||
border-color: #6689d6;
|
||||
}
|
||||
#content h3.inherited,
|
||||
#content h3.included,
|
||||
#content h3.extended {
|
||||
font-style: italic;
|
||||
font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
|
||||
font-weight: normal;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-top: 12px;
|
||||
margin-bottom: 3px;
|
||||
font-size: 13px;
|
||||
}
|
||||
#content p.inherited,
|
||||
#content p.included,
|
||||
#content p.extended {
|
||||
word-spacing: 5px;
|
||||
font-size: 1.2em;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
margin-left: 25px;
|
||||
}
|
||||
#content p.inherited a,
|
||||
#content p.included a,
|
||||
#content p.extended a {
|
||||
font-family: monospace;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#footer {
|
||||
margin-top: 15px;
|
||||
border-top: 1px solid #ccc;
|
||||
text-align: center;
|
||||
padding: 7px 0;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
#footer a:link,
|
||||
#footer a:visited {
|
||||
color: #999;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #bbd;
|
||||
}
|
||||
#footer a:hover {
|
||||
color: #05a;
|
||||
}
|
||||
#menu {
|
||||
font-size: 1.3em;
|
||||
color: #bbb;
|
||||
top: -5px;
|
||||
position: relative;
|
||||
}
|
||||
#menu .title,
|
||||
#menu a {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
#menu .title a {
|
||||
font-size: 1em;
|
||||
}
|
||||
#menu .title {
|
||||
color: #555;
|
||||
}
|
||||
#menu a:link,
|
||||
#menu a:visited {
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted #bbd;
|
||||
}
|
||||
#menu a:hover {
|
||||
color: #05a;
|
||||
}
|
||||
#header nav {
|
||||
float: right;
|
||||
color: #000;
|
||||
font-size: 0.7em;
|
||||
}
|
||||
#header nav ul {
|
||||
list-style-type: none;
|
||||
margin: 4px !important;
|
||||
}
|
||||
#header nav ul,
|
||||
#header nav ul li {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
display: inline;
|
||||
}
|
||||
#header nav a {
|
||||
font-size: 1em;
|
||||
}
|
||||
#header #search {
|
||||
float: right;
|
||||
margin-top: -3px;
|
||||
}
|
||||
#header #search a:link,
|
||||
#header #search a:visited {
|
||||
-webkit-box-shadow: #ddd -1px 1px 3px;
|
||||
box-shadow: #ddd -1px 1px 3px;
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 4px;
|
||||
padding: 8px 10px;
|
||||
color: #05a;
|
||||
background: #eaf0ff;
|
||||
text-decoration: none;
|
||||
border: 1px solid #d8d8e5;
|
||||
}
|
||||
#header #search a:hover {
|
||||
background: #f5faff;
|
||||
color: #06b;
|
||||
}
|
||||
#header #search a.active {
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
padding-bottom: 20px;
|
||||
color: #fff;
|
||||
background: #568;
|
||||
border: 1px solid #457;
|
||||
}
|
||||
#header #search a.inactive {
|
||||
color: #999;
|
||||
}
|
||||
#search_frame {
|
||||
-webkit-box-shadow: #aaa -7px 5px 25px;
|
||||
box-shadow: #aaa -7px 5px 25px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
overflow-y: scroll;
|
||||
z-index: 9999;
|
||||
top: 36px;
|
||||
right: 18px;
|
||||
width: 500px;
|
||||
height: 80%;
|
||||
background: #fff;
|
||||
border: 1px solid #999;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.alphaindex {
|
||||
margin-top: 0;
|
||||
font-size: 22px;
|
||||
}
|
||||
.noborder {
|
||||
border-top: 0px;
|
||||
margin-top: 0;
|
||||
padding-top: 4px;
|
||||
}
|
||||
.title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#files {
|
||||
padding: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
#files li {
|
||||
list-style: none;
|
||||
display: inline;
|
||||
padding: 7px 12px;
|
||||
line-height: 35px;
|
||||
background: #f0f0f0;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.index {
|
||||
-webkit-column-count: 3;
|
||||
-moz-column-count: 3;
|
||||
column-count: 3;
|
||||
-webkit-column-width: 33%;
|
||||
-moz-column-width: 33%;
|
||||
column-width: 33%;
|
||||
}
|
||||
.index > ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-bottom: 10px;
|
||||
font-size: 1.1em;
|
||||
list-style: none;
|
||||
}
|
||||
.index > ul > li.letter {
|
||||
-webkit-column-break-after: avoid;
|
||||
font-size: 1.4em;
|
||||
padding-bottom: 10px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.index > ul > ul {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
.index > ul > ul small {
|
||||
color: #666;
|
||||
font-size: 0.7em;
|
||||
}
|
||||
body.list {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
body #content.list #search {
|
||||
position: relative;
|
||||
margin-top: 5px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
#content.list.tree > ul {
|
||||
margin-top: 13px !important;
|
||||
}
|
||||
#content.list.tree ul {
|
||||
font-size: 16px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#content.list.tree ul li {
|
||||
margin: 0;
|
||||
padding: 5px;
|
||||
color: #000;
|
||||
font-size: 1em;
|
||||
list-style: none;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
}
|
||||
#content.list.tree ul li.namespace {
|
||||
overflow: visible;
|
||||
}
|
||||
#content.list.tree ul li > a.toggle {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC");
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0px -10px;
|
||||
}
|
||||
#content.list.tree ul li > a.toggle.collapsed {
|
||||
background-position: 0px 0px;
|
||||
}
|
||||
#content.list.tree ul li > span,
|
||||
#content.list.tree ul li a {
|
||||
margin-left: 20px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#content.list.tree ul li > a.toggle + span,
|
||||
#content.list.tree ul li a.toggle + a {
|
||||
margin-left: 5px;
|
||||
}
|
||||
#content.list.tree ul li small {
|
||||
color: #888;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#content.list.tree ul li small.namespace {
|
||||
display: none;
|
||||
}
|
||||
#content.list.tree ul li.result a.toggle {
|
||||
visibility: hidden;
|
||||
}
|
||||
#content.list.tree ul li.result small.namespace {
|
||||
display: inline;
|
||||
}
|
||||
#content.list.tree ul li.result small.parent {
|
||||
display: none;
|
||||
}
|
||||
#content.list {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
#content.list h1 {
|
||||
padding: 12px 10px;
|
||||
padding-bottom: 10px;
|
||||
margin: 0;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
#content.list a:hover {
|
||||
background: transparent;
|
||||
}
|
||||
#content.list nav {
|
||||
margin-left: 10px;
|
||||
}
|
||||
#content.list #search {
|
||||
color: #888;
|
||||
}
|
||||
#content.list #search input {
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
#content.list a {
|
||||
color: #05a;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
#content.list a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
#content.list ul {
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
}
|
||||
#content.list ul li[deprecated] {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
#content.list ul li {
|
||||
padding: 5px;
|
||||
padding-left: 12px;
|
||||
margin: 0;
|
||||
font-size: 1.1em;
|
||||
list-style: none;
|
||||
color: #888;
|
||||
cursor: pointer;
|
||||
}
|
||||
#content.list ul li.stripe {
|
||||
background: #f0f0f0;
|
||||
}
|
||||
#content.list ul li:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
nav.toc {
|
||||
-webkit-box-shadow: #bbb -2px 2px 6px;
|
||||
box-shadow: #bbb -2px 2px 6px;
|
||||
overflow: hidden;
|
||||
float: right;
|
||||
z-index: 500;
|
||||
right: 0px;
|
||||
max-width: 300px;
|
||||
padding: 20px;
|
||||
padding-right: 30px;
|
||||
margin-left: 20px;
|
||||
margin-bottom: 20px;
|
||||
background: #fff;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
nav.toc p.title {
|
||||
margin-top: 5px;
|
||||
}
|
||||
nav.toc ol {
|
||||
padding-left: 1.8em;
|
||||
}
|
||||
nav.toc li {
|
||||
font-size: 1.1em;
|
||||
line-height: 1.7em;
|
||||
}
|
||||
nav.toc > ol > li {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
}
|
||||
nav.toc ol > ol {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
nav.toc.inline {
|
||||
-webkit-box-shadow: #fff 0px 0px 0px;
|
||||
box-shadow: #fff 0px 0px 0px;
|
||||
position: relative;
|
||||
float: none;
|
||||
padding: 0;
|
||||
margin: 5px 0 0 0;
|
||||
border: 0px;
|
||||
}
|
||||
nav.toc.inline.hidden {
|
||||
background: none;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
}
|
||||
nav.toc.hidden {
|
||||
height: 26px;
|
||||
width: 140px;
|
||||
padding: 5px;
|
||||
background: #f6f6f6;
|
||||
text-align: center;
|
||||
}
|
||||
nav.toc.hidden p.title small {
|
||||
display: none;
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
|
||||
/**
|
||||
## IWC + JSON Example
|
||||
Here, I will give a short overview on how to use the IwcJson Framework in Role-SDK widgets.
|
||||
First you have to include the following libraries in your widget file:
|
||||
```
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/~jahns/role-widgets/widgetbundles/libraries/DUIClient.js"></script>
|
||||
<script src="../dest/browser/Frameworks/JsonIwcYatta.min.js"></script>
|
||||
<script src="./IwcJson.js"></script>
|
||||
```
|
||||
A working widget implementation is maintained [here](./IwcJson.xml) and the js-file is [here](./IwcJson.js)
|
||||
*/
|
||||
function init(){
|
||||
createConnector(function(Connector, user_id){
|
||||
/**
|
||||
yatta is the shared json object. If you change something on this object,
|
||||
it will be instantly shared with all the other collaborators.
|
||||
*/
|
||||
yatta = new JsonYatta(user_id, Connector);
|
||||
|
||||
/**
|
||||
Add a integer-property like this
|
||||
*/
|
||||
yatta.val('x', 7);
|
||||
|
||||
/**
|
||||
Get the value of property x like this
|
||||
*/
|
||||
console.log(yatta.val('x') === 7); // true
|
||||
|
||||
/**
|
||||
A string property can be either mutable or immutable.
|
||||
*/
|
||||
yatta.val('mutable_string', "text", "mutable");
|
||||
yatta.val('immutable_string', "text", "immutable");
|
||||
|
||||
console.log(yatta.val('immutable_string') === "text"); // true
|
||||
yatta.val('mutable_string').insertText(2,"XXX"); // position, string
|
||||
yatta.val('mutable_string').deleteText(0,1); // position, deletion length
|
||||
console.log(yatta.val('mutable_string').val() === "eXXXxt"); // true
|
||||
|
||||
/**
|
||||
You can omit the mutable - parameter. In that case the default will be used.
|
||||
Initially the default is 'mutable'. You can set it like this:
|
||||
*/
|
||||
yatta.setMutableDefault('mutable');
|
||||
// or
|
||||
yatta.setMutableDefault('immutable');
|
||||
|
||||
yatta.val('new_string', "string");
|
||||
console.log(yatta.val('new_string') === "string"); // true
|
||||
|
||||
/**
|
||||
yatta is chainable:
|
||||
*/
|
||||
yatta.val('a', 4).val('b',5);
|
||||
console.log(yatta.val('a') === 4); // true
|
||||
console.log(yatta.val('b') === 5); // true
|
||||
|
||||
/**
|
||||
You can alse set objects.
|
||||
*/
|
||||
yatta.val('object', {a : {b : "b"}, c : { d : 5 }});
|
||||
console.log(yatta.val('object').val('c').val('d') === 5); // true
|
||||
|
||||
/**
|
||||
Lists are always immutable.
|
||||
*/
|
||||
yatta.val('list', [1,2,3]);
|
||||
console.log(yatta.val('list')[2] === 3); // true
|
||||
|
||||
/**
|
||||
But there is a much more convenient way!
|
||||
*/
|
||||
console.log(yatta.value.list[2] === 3) // true
|
||||
yatta.value.list = [3,4,5]
|
||||
console.log(yatta.val('list')[2] === 5) // true
|
||||
yatta.value.object = {c : 4}
|
||||
console.log(yatta.value.object.c === 4) // true
|
||||
|
||||
/**
|
||||
The downside is that you are only allowed to overwrite existing properties.
|
||||
*/
|
||||
yatta.value.newProperty = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, yatta.value.newProperty is undefined.
|
||||
|
||||
/**
|
||||
So, how do we create new properties?
|
||||
*/
|
||||
yatta.value = {newProperty : "Awesome"}
|
||||
console.log(yatta.value.newProperty === "Awesome") // true, it's awesome ;)
|
||||
|
||||
/**
|
||||
This is stupid! I don't want to overwrite all my existing properties!
|
||||
Very well.. The solution is that we merge yatta.value with the new assignment.
|
||||
For example: assuming we want to overwrite yatta.value with some object o.
|
||||
Then these two rules apply:
|
||||
* The result has all properties of o
|
||||
* The result has all properties of yatta.value if they don't occur under the same property-name in o
|
||||
*/
|
||||
yatta.value = {newProperty : {Awesome : true }}
|
||||
console.log(yatta.value.list[2] === 5) // true, old value list still exists.
|
||||
console.log(yatta.value.newProperty.Awesome === true) // true, newProperty is overwritten.
|
||||
|
||||
/**
|
||||
Consider this case.
|
||||
*/
|
||||
yatta.value = {newProperty : { x : 4} }
|
||||
console.log(yatta.value.newProperty.Awesome == null) // true, newProperty was replaced, therefore it is now undefined
|
||||
|
||||
/**
|
||||
Did you notice that you always set immutable objects if you set properties like this?
|
||||
Even if the default is 'mutable'. If you want to work with mutable objects you have to work with .val().
|
||||
|
||||
One last thing. You are only allowed to set properties like this `yatta.value = o`.
|
||||
Yatta can't observe if you overwrite object references `yatta = "Awesome"`.
|
||||
*/
|
||||
w = yatta.value.newProperty
|
||||
w = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, still not awesome..
|
||||
|
||||
/**
|
||||
Please also read [JsonWrapper](https://rawgit.com/DadaMonad/Yatta/master/doc/class/JsonWrapper.html)
|
||||
*/
|
||||
})
|
||||
}
|
||||
window.onload = init
|
||||
@@ -1,176 +0,0 @@
|
||||
## IWC + JSON Example
|
||||
Here, I will give a short overview on how to use the IwcJson Framework in Role-SDK widgets.
|
||||
First you have to include the following libraries in your widget file:
|
||||
```
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/~jahns/role-widgets/widgetbundles/libraries/DUIClient.js"></script>
|
||||
<script src="../dest/browser/Frameworks/JsonIwcYatta.min.js"></script>
|
||||
<script src="./IwcJson.js"></script>
|
||||
```
|
||||
A working widget implementation is maintained [here](./IwcJson.xml) and the js-file is [here](./IwcJson.js)
|
||||
|
||||
|
||||
```js
|
||||
function init(){
|
||||
createConnector(function(Connector, user_id){
|
||||
```
|
||||
|
||||
|
||||
yatta is the shared json object. If you change something on this object,
|
||||
it will be instantly shared with all the other collaborators.
|
||||
|
||||
|
||||
```js
|
||||
yatta = new JsonYatta(user_id, Connector);
|
||||
```
|
||||
|
||||
|
||||
Add a integer-property like this
|
||||
|
||||
|
||||
```js
|
||||
yatta.val('x', 7);
|
||||
```
|
||||
|
||||
|
||||
Get the value of property x like this
|
||||
|
||||
|
||||
```js
|
||||
console.log(yatta.val('x') === 7); // true
|
||||
```
|
||||
|
||||
|
||||
A string property can be either mutable or immutable.
|
||||
|
||||
|
||||
```js
|
||||
yatta.val('mutable_string', "text", "mutable");
|
||||
yatta.val('immutable_string', "text", "immutable");
|
||||
|
||||
console.log(yatta.val('immutable_string') === "text"); // true
|
||||
yatta.val('mutable_string').insertText(2,"XXX"); // position, string
|
||||
yatta.val('mutable_string').deleteText(0,1); // position, deletion length
|
||||
console.log(yatta.val('mutable_string').val() === "eXXXxt"); // true
|
||||
```
|
||||
|
||||
|
||||
You can omit the mutable - parameter. In that case the default will be used.
|
||||
Initially the default is 'mutable'. You can set it like this:
|
||||
|
||||
|
||||
```js
|
||||
yatta.setMutableDefault('mutable');
|
||||
// or
|
||||
yatta.setMutableDefault('immutable');
|
||||
|
||||
yatta.val('new_string', "string");
|
||||
console.log(yatta.val('new_string') === "string"); // true
|
||||
```
|
||||
|
||||
|
||||
yatta is chainable:
|
||||
|
||||
|
||||
```js
|
||||
yatta.val('a', 4).val('b',5);
|
||||
console.log(yatta.val('a') === 4); // true
|
||||
console.log(yatta.val('b') === 5); // true
|
||||
```
|
||||
|
||||
|
||||
You can alse set objects.
|
||||
|
||||
|
||||
```js
|
||||
yatta.val('object', {a : {b : "b"}, c : { d : 5 }});
|
||||
console.log(yatta.val('object').val('c').val('d') === 5); // true
|
||||
```
|
||||
|
||||
|
||||
Lists are always immutable.
|
||||
|
||||
|
||||
```js
|
||||
yatta.val('list', [1,2,3]);
|
||||
console.log(yatta.val('list')[2] === 3); // true
|
||||
```
|
||||
|
||||
|
||||
But there is a much more convenient way!
|
||||
|
||||
|
||||
```js
|
||||
console.log(yatta.value.list[2] === 3) // true
|
||||
yatta.value.list = [3,4,5]
|
||||
console.log(yatta.val('list')[2] === 5) // true
|
||||
yatta.value.object = {c : 4}
|
||||
console.log(yatta.value.object.c === 4) // true
|
||||
```
|
||||
|
||||
|
||||
The downside is that you are only allowed to overwrite existing properties.
|
||||
|
||||
|
||||
```js
|
||||
yatta.value.newProperty = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, yatta.value.newProperty is undefined.
|
||||
```
|
||||
|
||||
|
||||
So, how do we create new properties?
|
||||
|
||||
|
||||
```js
|
||||
yatta.value = {newProperty : "Awesome"}
|
||||
console.log(yatta.value.newProperty === "Awesome") // true, it's awesome ;)
|
||||
```
|
||||
|
||||
|
||||
This is stupid! I don't want to overwrite all my existing properties!
|
||||
Very well.. The solution is that we merge yatta.value with the new assignment.
|
||||
For example: assuming we want to overwrite yatta.value with some object o.
|
||||
Then these two rules apply:
|
||||
* The result has all properties of o
|
||||
* The result has all properties of yatta.value if they don't occur under the same property-name in o
|
||||
|
||||
|
||||
```js
|
||||
yatta.value = {newProperty : {Awesome : true }}
|
||||
console.log(yatta.value.list[2] === 5) // true, old value list still exists.
|
||||
console.log(yatta.value.newProperty.Awesome === true) // true, newProperty is overwritten.
|
||||
```
|
||||
|
||||
|
||||
Consider this case.
|
||||
|
||||
|
||||
```js
|
||||
yatta.value = {newProperty : { x : 4} }
|
||||
console.log(yatta.value.newProperty.Awesome == null) // true, newProperty was replaced, therefore it is now undefined
|
||||
```
|
||||
|
||||
|
||||
Did you notice that you always set immutable objects if you set properties like this?
|
||||
Even if the default is 'mutable'. If you want to work with mutable objects you have to work with .val().
|
||||
|
||||
One last thing. You are only allowed to set properties like this `yatta.value = o`.
|
||||
Yatta can't observe if you overwrite object references `yatta = "Awesome"`.
|
||||
|
||||
|
||||
```js
|
||||
w = yatta.value.newProperty
|
||||
w = "Awesome"
|
||||
console.log(yatta.value.newProperty !== "Awesome") // true, still not awesome..
|
||||
```
|
||||
|
||||
|
||||
Please also read [JsonWrapper](https://rawgit.com/DadaMonad/Yatta/master/doc/class/JsonWrapper.html)
|
||||
|
||||
|
||||
```js
|
||||
})
|
||||
}
|
||||
window.onload = init
|
||||
```
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Module>
|
||||
<ModulePrefs title="Video upload" description="Upload videos in Sevianno" author="Kevin Jahns, Chair of Computer Science 5, RWTH Aachen University, Germany" author_email="jahns@dbis.rwth-aachen.de" scrolling="true">
|
||||
<Require feature="dynamic-height"/>
|
||||
|
||||
</ModulePrefs>
|
||||
|
||||
<Content type="html"><![CDATA[
|
||||
<script src="http://open-app.googlecode.com/files/openapp.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/gadgets/iwc/lib/iwc.js"></script>
|
||||
<script src="http://dbis.rwth-aachen.de/~jahns/role-widgets/widgetbundles/libraries/DUIClient.js"></script>
|
||||
<script src="../dest/browser/Frameworks/JsonIwcYatta.js"></script>
|
||||
<script src="./IwcJson.js"></script>
|
||||
<h1> Collaborative Json Widget </h1>
|
||||
]]></Content>
|
||||
</Module>
|
||||
@@ -1,6 +0,0 @@
|
||||
# Examples
|
||||
|
||||
Here you find some (hopefully) usefull examples on how to use Yatta!
|
||||
|
||||
|
||||
* [IWC + Json](./IwcJson.md)
|
||||
32
examples/ace/index.html
Normal file
32
examples/ace/index.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css" media="screen">
|
||||
#aceContainer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
.inserted {
|
||||
position:absolute;
|
||||
z-index:20;
|
||||
background-color: #FFC107;
|
||||
}
|
||||
.deleted {
|
||||
position:absolute;
|
||||
z-index:20;
|
||||
background-color: #FFC107;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="aceContainer"></div>
|
||||
<script src="../bower_components/yjs/y.js"></script>
|
||||
<script src="../bower_components/ace-builds/src/ace.js"></script>
|
||||
|
||||
<script src="./index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
24
examples/ace/index.js
Normal file
24
examples/ace/index.js
Normal file
@@ -0,0 +1,24 @@
|
||||
/* global Y, ace */
|
||||
|
||||
Y({
|
||||
db: {
|
||||
name: 'memory'
|
||||
},
|
||||
connector: {
|
||||
name: 'websockets-client',
|
||||
room: 'ace-example'
|
||||
},
|
||||
sourceDir: '/bower_components',
|
||||
share: {
|
||||
ace: 'Text' // y.share.textarea is of type Y.Text
|
||||
}
|
||||
}).then(function (y) {
|
||||
window.yAce = y
|
||||
|
||||
// bind the textarea to a shared text element
|
||||
var editor = ace.edit('aceContainer')
|
||||
editor.setTheme('ace/theme/chrome')
|
||||
editor.getSession().setMode('ace/mode/javascript')
|
||||
|
||||
y.share.ace.bindAce(editor)
|
||||
})
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user