seapig-server 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/bin/seapig-server +643 -263
  3. data/lib/seapig-server.rb +1 -2
  4. data/lib/seapig-server/version.rb +3 -0
  5. metadata +19 -109
  6. data/README.rdoc +0 -31
  7. data/bin/seapig-server-intro +0 -757
  8. data/lib/seapig/version.rb +0 -3
  9. data/test/dummy/log/development.log +0 -1665
  10. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-o-ZYYvENmbyGnbDFt6qAW7obI2QzsO9rM9EA7XlUHg.cache +0 -0
  11. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1PVg-zJVu7--eXgp92_OEGf9YMjumXrwhnEbNQdV4h8.cache +0 -1
  12. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/2R9FCEwuVplMI7I5GoTBtw2Er_ap6H5s2otDK-m5XCk.cache +0 -0
  13. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3eEw6ayC9zVKEVm7sgtqdiFFsi-0w4VyeWxR-hk72xg.cache +0 -0
  14. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
  15. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/66l7LMqenzmlIoboeeCMFEZ6J_6zFdXmqNs-gu79P94.cache +0 -1
  16. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6vXjezhMg67rV3BDCPOxLeOVbgCHn0aDwBXCA-N7_To.cache +0 -2
  17. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/7SWrjVR_xhTD9BCS4ifXzZIDn6dp3guSJjF8v5pYDRc.cache +0 -1
  18. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/98GLSy3KoIvHccw_zbxLg3FpmPEUKmGUr5oL7YZmvOU.cache +0 -127
  19. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9Kel6H2jL5qJlsGHIcYRbxGaV-rMj_teA3CD1eaUVmk.cache +0 -2
  20. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9T1WawqT-S8RLLgLI4J-o5mcGyy-wwU2mYMBwTuTl4o.cache +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BXgyeZH3I-u535wy4F0jP3wmfV8m8WIWtXqHJKdBC2Q.cache +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BsW5E247kS632hUZ5-NHcjkfprM3AwsB8dksndomUAY.cache +0 -1
  23. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CW1ly2CbYhIQ3PoOCrGTUOxS8a03kI-4spp4REHx6mc.cache +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Duqe6Cf2ThStcjIWL29RZnPilo1v6Vi7p86VOEBKqCs.cache +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ETKdv5blZ86XWjAQcmxAQq2wK6RT9QvGqd7uV7DK1Iw.cache +0 -2
  26. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HCc1doOYzZaBpAX7ozNMpo1ErZFli_aaKFQ73oRipH0.cache +0 -2
  27. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KS-8mb2c29Zj9YWoyTAojF-sqg-aKMYQr6FkxGuoBWQ.cache +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Lgka3bEq-I8Y6xz-LVIYNVeNIWkmW1NKDnOHOkYcxtE.cache +0 -1
  29. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PgVoTat4a0VNolKPJS5RtDX7XcbAGbsqhquIWgWBBWE.cache +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Tq5PhgpHymowY-e-a3airP7Q2OwxNuNC0792hdlAJRc.cache +0 -1
  32. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VegRto_fFjOSBWQRgNRnnOiV3yByrpUI9b5IEhRvrDI.cache +0 -1
  33. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VqL7bJxBiq13xYePLO71Spa6RfD5dFCeRRLGYb5jEqw.cache +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/X5QxTUYFP4VOH_7p2Qh34msJtFA6fOnJ0mM7Zip7dRU.cache +0 -1
  35. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_2P0GKBCbJ61e8RdTBx4rJr8TsUYKFJYd7N0ZhA7o6k.cache +0 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_mxi_K1gl7n32DYq8bFfbWrIRQrU3QQiuukc63_UBb4.cache +0 -1
  37. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/a1-5JrPXbtVr0ytoeAR0GzDsG_rlYUHm_sKEC1VHrrM.cache +0 -1
  38. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/aShHx921rUO4rZzH4135LWkt4TSWfqhpQMN8JsV2OqE.cache +0 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/b9Ac87wpHRTGZL-mBacNdb343KQ1426WdjSu03OVlz8.cache +0 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/beCZt_nFEyk5iX6v4bgC3qrdFMgSM0IgrwxaBTFEFA0.cache +0 -1
  41. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bkclf1HVUxdntd8cKLvWGX5Pq-E12kwCwakqLo8RoN4.cache +0 -1
  42. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/csrXH9BNqM8JCRjroMFCt2hluEvIvM0neY_ZQySl58A.cache +0 -1
  43. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fsxRcZUqoELh6-D0RWowwDKHYmUkGzh5HMFuwMMWk1g.cache +0 -1
  44. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/h2XCtwcdt21JcAtjhfoOuIjifaMeMaYwPcFGnmNc2ng.cache +0 -1
  45. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -3
  46. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/j3q-1jQzykD1sMeX9INl7jygCKtC0XJ8JkWkFQkL6qg.cache +0 -2
  47. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/j4VcbkSejSElTiJk3ehlEcJE9HRTG7T14-wVhUDocaA.cache +0 -1
  48. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jU_8gMY9eZiN785s1lakKFjnK5ox1EA-Na1fKxuYcjs.cache +0 -1
  49. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -2
  50. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/q3UrpsuPTq0hMrkTWoYoYEZL4u05PdVc4L5NXKuFDgQ.cache +0 -0
  51. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sX4-Kn9knBu7plHg7gUT-ryVktGvmZfacNm1cUysjWs.cache +0 -1
  52. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/umxcUEQeoCOqF0ZwXlNqJEOyT_vhMK8iGO4--jduIDU.cache +0 -1
  53. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/urzLHu3R3qKeFqygSDL0NVDcyw8BFEA6i9jFeweVZQ4.cache +0 -1
  54. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vCljKmhe1Sy9j9TDIB9DrQRa8dYlkPg8nyvsZfqfCmw.cache +0 -0
  55. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vn6FA8BrDkisPSH4VFlc7tgmkzpx1DsOtDp5C3cdaRU.cache +0 -1
  56. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wtuO4JuGsyO8emVQL7t1bm1fvl6YzGfBHc3tJJ49uvs.cache +0 -2
  57. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z9KVC85iQuroh2hLYTGZhgZHDlh7183qTlfed3Uhtnw.cache +0 -0
  58. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/znvRewDLwMSRAUjlQozzMBQ_IGWvw9fVVOh9aeaXxTA.cache +0 -0
  59. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zxZcbwt4p6Q1Z7yZfuWYKTXjetmNZI8MgkKazd4PjoA.cache +0 -0
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=7ad904e243da0274b31227cdb4d9e32f71d868e35a39b26c811bdfaa26625d8f:ET
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=ca8167268eeda42781607229e74944b5e170ddc5b6c8bb5652ce9ae4172cc130:ET
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TTI"7file-digest://app/assets/javascripts/json-patch.js;TTI"+file-digest://app/assets/images/seapig;TTI"2file-digest://app/assets/images/seapig/seapig;TTI"0file-digest://app/assets/javascripts/seapig;TTI"7file-digest://app/assets/javascripts/seapig/seapig;TTI"0file-digest://app/assets/stylesheets/seapig;TTI"7file-digest://app/assets/stylesheets/seapig/seapig;TTI"yfile-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig;TTI"{file-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig/seapig;TTI"Cfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig;TTI"Jfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig/seapig;TTI"Hfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig;TTI"Ofile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig;TTI"Yfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig.js.coffee;TTI"$file-digest://app/assets/images;TTI"/file-digest://app/assets/images/json-patch;TTI"4file-digest://app/assets/javascripts/json-patch;TT
@@ -1 +0,0 @@
1
- "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -1,127 +0,0 @@
1
- I"�
2
- var SeaPigObject;
3
-
4
- this.SeaPigServer = (function() {
5
- function SeaPigServer(url) {
6
- this.url = url;
7
- this.objects = {};
8
- this.connect();
9
- }
10
-
11
- SeaPigServer.prototype.connect = function() {
12
- this.connected = false;
13
- this.socket = new WebSocket(this.url, 'SeaPig-0.0');
14
- this.socket.onerror = (function(_this) {
15
- return function(error) {
16
- console.log('Seapig socket error', error);
17
- return _this.socket.close();
18
- };
19
- })(this);
20
- this.socket.onclose = (function(_this) {
21
- return function() {
22
- var object, object_id, ref;
23
- console.log('Seapig connection closed');
24
- ref = _this.objects;
25
- for (object_id in ref) {
26
- object = ref[object_id];
27
- object.valid = false;
28
- }
29
- return setTimeout((function() {
30
- return _this.connect();
31
- }), 2000);
32
- };
33
- })(this);
34
- this.socket.onopen = (function(_this) {
35
- return function() {
36
- var object, object_id, ref, results;
37
- console.log('Seapig connection opened');
38
- _this.connected = true;
39
- ref = _this.objects;
40
- results = [];
41
- for (object_id in ref) {
42
- object = ref[object_id];
43
- results.push(_this.socket.send(JSON.stringify({
44
- action: 'link',
45
- id: object_id,
46
- latest_known_version: object.version
47
- })));
48
- }
49
- return results;
50
- };
51
- })(this);
52
- return this.socket.onmessage = (function(_this) {
53
- return function(event) {
54
- var data;
55
- data = JSON.parse(event.data);
56
- switch (data.action) {
57
- case 'patch':
58
- if (_this.objects[data.id]) {
59
- return _this.objects[data.id].patch(data);
60
- }
61
- break;
62
- default:
63
- return console.log('Seapig received a stupid message', data);
64
- }
65
- };
66
- })(this);
67
- };
68
-
69
- SeaPigServer.prototype.link = function(object_id) {
70
- if (this.connected) {
71
- this.socket.send(JSON.stringify({
72
- action: 'link',
73
- id: object_id,
74
- latest_known_version: object.version
75
- }));
76
- }
77
- return this.objects[object_id] = new SeaPigObject(object_id);
78
- };
79
-
80
- SeaPigServer.prototype.unlink = function(object_id) {
81
- delete this.objects[object_id];
82
- if (this.connected) {
83
- return this.socket.send(JSON.stringify({
84
- action: 'unlink',
85
- id: object_id
86
- }));
87
- }
88
- };
89
-
90
- return SeaPigServer;
91
-
92
- })();
93
-
94
- SeaPigObject = (function() {
95
- function SeaPigObject(id) {
96
- this.id = id;
97
- this.valid = false;
98
- this.version = null;
99
- this.object = {};
100
- this.onchange = null;
101
- }
102
-
103
- SeaPigObject.prototype.patch = function(data) {
104
- var key, ref, value;
105
- if (data.old_version == null) {
106
- ref = this.object;
107
- for (key in ref) {
108
- value = ref[key];
109
- delete this.object[key];
110
- }
111
- } else if (!_.isEqual(this.version, data.old_version)) {
112
- console.log("Seapig lost some updates, this shouldn't ever happen");
113
- }
114
- jsonpatch.apply(this.object, data.patch);
115
- this.version = data.new_version;
116
- this.valid = true;
117
- if (this.onchange != null) {
118
- return this.onchange();
119
- }
120
- };
121
-
122
- return SeaPigObject;
123
-
124
- })();
125
-
126
- }).call(this);
127
- :ET
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"7file-digest://app/assets/javascripts/json-patch.js;TTI"jprocessors:type=application/javascript&file_type=application/javascript&engines=.coffee&pipeline=self;TTI"Yfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig.js.coffee;TTI")file-digest://app/assets/javascripts;TTI"+file-digest://app/assets/images/seapig;TTI"2file-digest://app/assets/images/seapig/seapig;TTI"0file-digest://app/assets/javascripts/seapig;TTI"7file-digest://app/assets/javascripts/seapig/seapig;TTI"0file-digest://app/assets/stylesheets/seapig;TTI"7file-digest://app/assets/stylesheets/seapig/seapig;TTI"yfile-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig;TTI"{file-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig/seapig;TTI"Cfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig;TTI"Jfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig/seapig;TTI"Hfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig;TTI"Ofile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig;TTI"$file-digest://app/assets/images;TTI"/file-digest://app/assets/images/json-patch;TTI"4file-digest://app/assets/javascripts/json-patch;TT
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&id=3da6e6b537834894cff9eb8f02556b0594db66ea4d9f23f1b9477e6b0d139d06:ET
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{ I"environment-version:ETTI"environment-paths;TTI"jprocessors:type=application/javascript&file_type=application/javascript&engines=.coffee&pipeline=self;TTI"Yfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig.js.coffee;TT
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"7file-digest://app/assets/javascripts/json-patch.js;TT
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&id=212a48e67a2ee2fa0ae23bbef08257950e53b87130c362e82a706bc2db88112d:ET
@@ -1 +0,0 @@
1
- I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=d5527e4486c4e83bf7b12de7f74b834aadcf2a846b2310e693eabf810ee857c7:ET
@@ -1 +0,0 @@
1
- "%��B�����șo�$'�A�d��L���xR�U
@@ -1 +0,0 @@
1
- "%Ѱč@�����6H�uZoX�Z�gbh0W��V
@@ -1 +0,0 @@
1
- I"�/home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig.js.coffee?type=application/javascript&pipeline=self&id=e0081e4731f5051a91d61c0025225b33126aada17b0d8c93d031e1f20a117776:ET
@@ -1 +0,0 @@
1
- I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=f168208af4491e752a900c68d92de6444094247b8298cfab37e20fac9ed58fb3:ET
@@ -1 +0,0 @@
1
- "%�I��m��s���T@�D�$'����9�RaN�
@@ -1 +0,0 @@
1
- I"}app/assets/stylesheets/application.css?type=text/css&id=4f20e49df0ac39a6feb92732e0a9bf6134768dcdd4b68dfbc04edc7e96f16798:ET
@@ -1 +0,0 @@
1
- "%��B�����șo�$'�A�d��L���xR�U
@@ -1 +0,0 @@
1
- I"}app/assets/stylesheets/application.css?type=text/css&id=c4b24fb20b54c4ee64fb7aef10c0f7f60a895cca17cbe4e22b04ab227f6c863f:ET
@@ -1,3 +0,0 @@
1
- [o:Set:
2
- @hash{
3
- I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"8file-digest://app/assets/javascripts/application.js;TTI")file-digest://app/assets/javascripts;TT
@@ -1,2 +0,0 @@
1
- "%柅�V_��n���
2
- )�������n�G%�d��a1
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&id=2045999b373b0a20bb3e961f8bc749e10150dee55e9efd2febb1da3ac80ed490:ET
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=f92902c16da0af50ef42810b546d68e8effabd59d069ae2643fe5696d6a74472:ET
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{ I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI")file-digest://app/assets/javascripts;TT
@@ -1 +0,0 @@
1
- "%�&Q|N [�F9C�{��Y�E ��#3o���5�R
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/json-patch.js?type=application/javascript&pipeline=self&id=cf958cb733a210a71490039932e209623457f31368722a4a2334640a0f5609b4:ET
@@ -1 +0,0 @@
1
- "%�W\�yho9S���ƫ˥��)|�~���(���
@@ -1 +0,0 @@
1
- I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=88e4472cbb225ff7e35936c9173e6d10bb880d7b86ab7263943a99fbad91be02:ET
@@ -1,2 +0,0 @@
1
- [o:Set:
2
- @hash{I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"8file-digest://app/assets/javascripts/application.js;TTI"jprocessors:type=application/javascript&file_type=application/javascript&engines=.coffee&pipeline=self;TTI"Yfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig.js.coffee;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI")file-digest://app/assets/javascripts;TTI"+file-digest://app/assets/images/seapig;TTI"2file-digest://app/assets/images/seapig/seapig;TTI"0file-digest://app/assets/javascripts/seapig;TTI"7file-digest://app/assets/javascripts/seapig/seapig;TTI"0file-digest://app/assets/stylesheets/seapig;TTI"7file-digest://app/assets/stylesheets/seapig/seapig;TTI"yfile-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig;TTI"{file-digest:///home/yunta/Code/Seapig/vendor/bundle/ruby/2.2.0/gems/coffee-rails-4.1.0/lib/assets/javascripts/seapig/seapig;TTI"Cfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig;TTI"Jfile-digest:///home/yunta/Code/Seapig/app/assets/images/seapig/seapig;TTI"Hfile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig;TTI"Ofile-digest:///home/yunta/Code/Seapig/app/assets/javascripts/seapig/seapig;TT