poly-cms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (460) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/Gemfile +27 -0
  4. data/Gemfile.lock +95 -0
  5. data/README.md +3 -0
  6. data/Rakefile +45 -0
  7. data/bin/poly +88 -0
  8. data/config.ru +3 -0
  9. data/core/admin/assets/images/icons/cache-clear.svg +11 -0
  10. data/core/admin/assets/images/icons/delete-dark.svg +10 -0
  11. data/core/admin/assets/images/icons/delete.svg +10 -0
  12. data/core/admin/assets/images/icons/handle.svg +12 -0
  13. data/core/admin/assets/images/icons/logout.svg +13 -0
  14. data/core/admin/assets/images/icons/move.svg +10 -0
  15. data/core/admin/assets/images/icons/new.svg +9 -0
  16. data/core/admin/assets/images/icons/prompt.svg +11 -0
  17. data/core/admin/assets/images/icons/refresh.svg +40 -0
  18. data/core/admin/assets/images/icons/save.svg +7 -0
  19. data/core/admin/assets/images/poly-small-boxed.svg +51 -0
  20. data/core/admin/assets/images/poly-small.svg +52 -0
  21. data/core/admin/assets/images/poly.svg +36 -0
  22. data/core/admin/assets/js/app/file-ext.js +15 -0
  23. data/core/admin/assets/js/app/views/editor.js +300 -0
  24. data/core/admin/assets/js/app/views/git.js +65 -0
  25. data/core/admin/assets/js/app/views/main.js +59 -0
  26. data/core/admin/assets/js/main.js +44 -0
  27. data/core/admin/assets/js/routes.js +25 -0
  28. data/core/admin/assets/js/vendor/backbone.js +4 -0
  29. data/core/admin/assets/js/vendor/codemirror/.gitattributes +8 -0
  30. data/core/admin/assets/js/vendor/codemirror/.gitignore +6 -0
  31. data/core/admin/assets/js/vendor/codemirror/.travis.yml +3 -0
  32. data/core/admin/assets/js/vendor/codemirror/addon/comment/comment.js +145 -0
  33. data/core/admin/assets/js/vendor/codemirror/addon/comment/continuecomment.js +54 -0
  34. data/core/admin/assets/js/vendor/codemirror/addon/dialog/dialog.css +32 -0
  35. data/core/admin/assets/js/vendor/codemirror/addon/dialog/dialog.js +80 -0
  36. data/core/admin/assets/js/vendor/codemirror/addon/display/fullscreen.css +6 -0
  37. data/core/admin/assets/js/vendor/codemirror/addon/display/fullscreen.js +30 -0
  38. data/core/admin/assets/js/vendor/codemirror/addon/display/placeholder.js +54 -0
  39. data/core/admin/assets/js/vendor/codemirror/addon/edit/closebrackets.js +82 -0
  40. data/core/admin/assets/js/vendor/codemirror/addon/edit/closetag.js +87 -0
  41. data/core/admin/assets/js/vendor/codemirror/addon/edit/continuelist.js +25 -0
  42. data/core/admin/assets/js/vendor/codemirror/addon/edit/matchbrackets.js +86 -0
  43. data/core/admin/assets/js/vendor/codemirror/addon/edit/matchtags.js +56 -0
  44. data/core/admin/assets/js/vendor/codemirror/addon/edit/trailingspace.js +15 -0
  45. data/core/admin/assets/js/vendor/codemirror/addon/fold/brace-fold.js +93 -0
  46. data/core/admin/assets/js/vendor/codemirror/addon/fold/comment-fold.js +40 -0
  47. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldcode.js +75 -0
  48. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldgutter.css +21 -0
  49. data/core/admin/assets/js/vendor/codemirror/addon/fold/foldgutter.js +124 -0
  50. data/core/admin/assets/js/vendor/codemirror/addon/fold/indent-fold.js +26 -0
  51. data/core/admin/assets/js/vendor/codemirror/addon/fold/xml-fold.js +167 -0
  52. data/core/admin/assets/js/vendor/codemirror/addon/hint/anyword-hint.js +34 -0
  53. data/core/admin/assets/js/vendor/codemirror/addon/hint/css-hint.js +50 -0
  54. data/core/admin/assets/js/vendor/codemirror/addon/hint/html-hint.js +337 -0
  55. data/core/admin/assets/js/vendor/codemirror/addon/hint/javascript-hint.js +130 -0
  56. data/core/admin/assets/js/vendor/codemirror/addon/hint/pig-hint.js +121 -0
  57. data/core/admin/assets/js/vendor/codemirror/addon/hint/python-hint.js +95 -0
  58. data/core/admin/assets/js/vendor/codemirror/addon/hint/show-hint.css +38 -0
  59. data/core/admin/assets/js/vendor/codemirror/addon/hint/show-hint.js +274 -0
  60. data/core/admin/assets/js/vendor/codemirror/addon/hint/sql-hint.js +105 -0
  61. data/core/admin/assets/js/vendor/codemirror/addon/hint/xml-hint.js +69 -0
  62. data/core/admin/assets/js/vendor/codemirror/addon/lint/coffeescript-lint.js +27 -0
  63. data/core/admin/assets/js/vendor/codemirror/addon/lint/css-lint.js +19 -0
  64. data/core/admin/assets/js/vendor/codemirror/addon/lint/javascript-lint.js +126 -0
  65. data/core/admin/assets/js/vendor/codemirror/addon/lint/json-lint.js +17 -0
  66. data/core/admin/assets/js/vendor/codemirror/addon/lint/lint.css +73 -0
  67. data/core/admin/assets/js/vendor/codemirror/addon/lint/lint.js +203 -0
  68. data/core/admin/assets/js/vendor/codemirror/addon/merge/dep/diff_match_patch.js +50 -0
  69. data/core/admin/assets/js/vendor/codemirror/addon/merge/merge.css +92 -0
  70. data/core/admin/assets/js/vendor/codemirror/addon/merge/merge.js +474 -0
  71. data/core/admin/assets/js/vendor/codemirror/addon/mode/loadmode.js +51 -0
  72. data/core/admin/assets/js/vendor/codemirror/addon/mode/multiplex.js +101 -0
  73. data/core/admin/assets/js/vendor/codemirror/addon/mode/multiplex_test.js +30 -0
  74. data/core/admin/assets/js/vendor/codemirror/addon/mode/overlay.js +59 -0
  75. data/core/admin/assets/js/vendor/codemirror/addon/runmode/colorize.js +29 -0
  76. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode-standalone.js +136 -0
  77. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode.js +56 -0
  78. data/core/admin/assets/js/vendor/codemirror/addon/runmode/runmode.node.js +103 -0
  79. data/core/admin/assets/js/vendor/codemirror/addon/scroll/scrollpastend.js +34 -0
  80. data/core/admin/assets/js/vendor/codemirror/addon/search/match-highlighter.js +91 -0
  81. data/core/admin/assets/js/vendor/codemirror/addon/search/search.js +133 -0
  82. data/core/admin/assets/js/vendor/codemirror/addon/search/searchcursor.js +143 -0
  83. data/core/admin/assets/js/vendor/codemirror/addon/selection/active-line.js +39 -0
  84. data/core/admin/assets/js/vendor/codemirror/addon/selection/mark-selection.js +108 -0
  85. data/core/admin/assets/js/vendor/codemirror/addon/tern/tern.css +85 -0
  86. data/core/admin/assets/js/vendor/codemirror/addon/tern/tern.js +632 -0
  87. data/core/admin/assets/js/vendor/codemirror/addon/tern/worker.js +41 -0
  88. data/core/admin/assets/js/vendor/codemirror/addon/wrap/hardwrap.js +99 -0
  89. data/core/admin/assets/js/vendor/codemirror/bin/authors.sh +6 -0
  90. data/core/admin/assets/js/vendor/codemirror/bin/compress +92 -0
  91. data/core/admin/assets/js/vendor/codemirror/bin/lint +16 -0
  92. data/core/admin/assets/js/vendor/codemirror/bin/source-highlight +61 -0
  93. data/core/admin/assets/js/vendor/codemirror/bower.json +15 -0
  94. data/core/admin/assets/js/vendor/codemirror/demo/activeline.html +78 -0
  95. data/core/admin/assets/js/vendor/codemirror/demo/anywordhint.html +79 -0
  96. data/core/admin/assets/js/vendor/codemirror/demo/bidi.html +74 -0
  97. data/core/admin/assets/js/vendor/codemirror/demo/btree.html +86 -0
  98. data/core/admin/assets/js/vendor/codemirror/demo/buffers.html +109 -0
  99. data/core/admin/assets/js/vendor/codemirror/demo/changemode.html +59 -0
  100. data/core/admin/assets/js/vendor/codemirror/demo/closebrackets.html +63 -0
  101. data/core/admin/assets/js/vendor/codemirror/demo/closetag.html +40 -0
  102. data/core/admin/assets/js/vendor/codemirror/demo/complete.html +80 -0
  103. data/core/admin/assets/js/vendor/codemirror/demo/emacs.html +75 -0
  104. data/core/admin/assets/js/vendor/codemirror/demo/folding.html +75 -0
  105. data/core/admin/assets/js/vendor/codemirror/demo/fullscreen.html +130 -0
  106. data/core/admin/assets/js/vendor/codemirror/demo/hardwrap.html +69 -0
  107. data/core/admin/assets/js/vendor/codemirror/demo/html5complete.html +54 -0
  108. data/core/admin/assets/js/vendor/codemirror/demo/indentwrap.html +58 -0
  109. data/core/admin/assets/js/vendor/codemirror/demo/lint.html +171 -0
  110. data/core/admin/assets/js/vendor/codemirror/demo/loadmode.html +49 -0
  111. data/core/admin/assets/js/vendor/codemirror/demo/marker.html +52 -0
  112. data/core/admin/assets/js/vendor/codemirror/demo/markselection.html +45 -0
  113. data/core/admin/assets/js/vendor/codemirror/demo/matchhighlighter.html +47 -0
  114. data/core/admin/assets/js/vendor/codemirror/demo/matchtags.html +49 -0
  115. data/core/admin/assets/js/vendor/codemirror/demo/merge.html +82 -0
  116. data/core/admin/assets/js/vendor/codemirror/demo/multiplex.html +75 -0
  117. data/core/admin/assets/js/vendor/codemirror/demo/mustache.html +68 -0
  118. data/core/admin/assets/js/vendor/codemirror/demo/placeholder.html +45 -0
  119. data/core/admin/assets/js/vendor/codemirror/demo/preview.html +88 -0
  120. data/core/admin/assets/js/vendor/codemirror/demo/resize.html +58 -0
  121. data/core/admin/assets/js/vendor/codemirror/demo/runmode.html +62 -0
  122. data/core/admin/assets/js/vendor/codemirror/demo/search.html +94 -0
  123. data/core/admin/assets/js/vendor/codemirror/demo/spanaffectswrapping_shim.html +85 -0
  124. data/core/admin/assets/js/vendor/codemirror/demo/tern.html +128 -0
  125. data/core/admin/assets/js/vendor/codemirror/demo/theme.html +121 -0
  126. data/core/admin/assets/js/vendor/codemirror/demo/trailingspace.html +48 -0
  127. data/core/admin/assets/js/vendor/codemirror/demo/variableheight.html +61 -0
  128. data/core/admin/assets/js/vendor/codemirror/demo/vim.html +74 -0
  129. data/core/admin/assets/js/vendor/codemirror/demo/visibletabs.html +62 -0
  130. data/core/admin/assets/js/vendor/codemirror/demo/widget.html +85 -0
  131. data/core/admin/assets/js/vendor/codemirror/demo/xmlcomplete.html +116 -0
  132. data/core/admin/assets/js/vendor/codemirror/doc/activebookmark.js +42 -0
  133. data/core/admin/assets/js/vendor/codemirror/doc/compress.html +231 -0
  134. data/core/admin/assets/js/vendor/codemirror/doc/docs.css +226 -0
  135. data/core/admin/assets/js/vendor/codemirror/doc/internals.html +503 -0
  136. data/core/admin/assets/js/vendor/codemirror/doc/logo.png +0 -0
  137. data/core/admin/assets/js/vendor/codemirror/doc/logo.svg +147 -0
  138. data/core/admin/assets/js/vendor/codemirror/doc/manual.html +2512 -0
  139. data/core/admin/assets/js/vendor/codemirror/doc/realworld.html +134 -0
  140. data/core/admin/assets/js/vendor/codemirror/doc/releases.html +779 -0
  141. data/core/admin/assets/js/vendor/codemirror/doc/reporting.html +61 -0
  142. data/core/admin/assets/js/vendor/codemirror/doc/upgrade_v2.2.html +96 -0
  143. data/core/admin/assets/js/vendor/codemirror/doc/upgrade_v3.html +230 -0
  144. data/core/admin/assets/js/vendor/codemirror/index.html +192 -0
  145. data/core/admin/assets/js/vendor/codemirror/keymap/emacs.js +387 -0
  146. data/core/admin/assets/js/vendor/codemirror/keymap/extra.js +43 -0
  147. data/core/admin/assets/js/vendor/codemirror/keymap/vim.js +3704 -0
  148. data/core/admin/assets/js/vendor/codemirror/lib/codemirror.css +263 -0
  149. data/core/admin/assets/js/vendor/codemirror/lib/codemirror.js +5910 -0
  150. data/core/admin/assets/js/vendor/codemirror/mode/apl/apl.js +160 -0
  151. data/core/admin/assets/js/vendor/codemirror/mode/apl/index.html +72 -0
  152. data/core/admin/assets/js/vendor/codemirror/mode/asterisk/asterisk.js +183 -0
  153. data/core/admin/assets/js/vendor/codemirror/mode/asterisk/index.html +154 -0
  154. data/core/admin/assets/js/vendor/codemirror/mode/clike/clike.js +362 -0
  155. data/core/admin/assets/js/vendor/codemirror/mode/clike/index.html +195 -0
  156. data/core/admin/assets/js/vendor/codemirror/mode/clike/scala.html +767 -0
  157. data/core/admin/assets/js/vendor/codemirror/mode/clojure/clojure.js +224 -0
  158. data/core/admin/assets/js/vendor/codemirror/mode/clojure/index.html +88 -0
  159. data/core/admin/assets/js/vendor/codemirror/mode/cobol/cobol.js +240 -0
  160. data/core/admin/assets/js/vendor/codemirror/mode/cobol/index.html +210 -0
  161. data/core/admin/assets/js/vendor/codemirror/mode/coffeescript/coffeescript.js +349 -0
  162. data/core/admin/assets/js/vendor/codemirror/mode/coffeescript/index.html +740 -0
  163. data/core/admin/assets/js/vendor/codemirror/mode/commonlisp/commonlisp.js +105 -0
  164. data/core/admin/assets/js/vendor/codemirror/mode/commonlisp/index.html +177 -0
  165. data/core/admin/assets/js/vendor/codemirror/mode/css/css.js +639 -0
  166. data/core/admin/assets/js/vendor/codemirror/mode/css/index.html +70 -0
  167. data/core/admin/assets/js/vendor/codemirror/mode/css/scss.html +157 -0
  168. data/core/admin/assets/js/vendor/codemirror/mode/css/scss_test.js +84 -0
  169. data/core/admin/assets/js/vendor/codemirror/mode/css/test.js +130 -0
  170. data/core/admin/assets/js/vendor/codemirror/mode/d/d.js +205 -0
  171. data/core/admin/assets/js/vendor/codemirror/mode/d/index.html +273 -0
  172. data/core/admin/assets/js/vendor/codemirror/mode/diff/diff.js +32 -0
  173. data/core/admin/assets/js/vendor/codemirror/mode/diff/index.html +117 -0
  174. data/core/admin/assets/js/vendor/codemirror/mode/dtd/dtd.js +127 -0
  175. data/core/admin/assets/js/vendor/codemirror/mode/dtd/index.html +89 -0
  176. data/core/admin/assets/js/vendor/codemirror/mode/ecl/ecl.js +192 -0
  177. data/core/admin/assets/js/vendor/codemirror/mode/ecl/index.html +52 -0
  178. data/core/admin/assets/js/vendor/codemirror/mode/eiffel/eiffel.js +147 -0
  179. data/core/admin/assets/js/vendor/codemirror/mode/eiffel/index.html +430 -0
  180. data/core/admin/assets/js/vendor/codemirror/mode/erlang/erlang.js +484 -0
  181. data/core/admin/assets/js/vendor/codemirror/mode/erlang/index.html +75 -0
  182. data/core/admin/assets/js/vendor/codemirror/mode/fortran/fortran.js +173 -0
  183. data/core/admin/assets/js/vendor/codemirror/mode/fortran/index.html +81 -0
  184. data/core/admin/assets/js/vendor/codemirror/mode/gas/gas.js +330 -0
  185. data/core/admin/assets/js/vendor/codemirror/mode/gas/index.html +68 -0
  186. data/core/admin/assets/js/vendor/codemirror/mode/gfm/gfm.js +97 -0
  187. data/core/admin/assets/js/vendor/codemirror/mode/gfm/index.html +82 -0
  188. data/core/admin/assets/js/vendor/codemirror/mode/gfm/test.js +112 -0
  189. data/core/admin/assets/js/vendor/codemirror/mode/gherkin/gherkin.js +168 -0
  190. data/core/admin/assets/js/vendor/codemirror/mode/gherkin/index.html +48 -0
  191. data/core/admin/assets/js/vendor/codemirror/mode/go/go.js +168 -0
  192. data/core/admin/assets/js/vendor/codemirror/mode/go/index.html +85 -0
  193. data/core/admin/assets/js/vendor/codemirror/mode/groovy/groovy.js +211 -0
  194. data/core/admin/assets/js/vendor/codemirror/mode/groovy/index.html +84 -0
  195. data/core/admin/assets/js/vendor/codemirror/mode/haml/haml.js +153 -0
  196. data/core/admin/assets/js/vendor/codemirror/mode/haml/index.html +79 -0
  197. data/core/admin/assets/js/vendor/codemirror/mode/haml/test.js +94 -0
  198. data/core/admin/assets/js/vendor/codemirror/mode/haskell/haskell.js +250 -0
  199. data/core/admin/assets/js/vendor/codemirror/mode/haskell/index.html +73 -0
  200. data/core/admin/assets/js/vendor/codemirror/mode/haxe/haxe.js +429 -0
  201. data/core/admin/assets/js/vendor/codemirror/mode/haxe/index.html +103 -0
  202. data/core/admin/assets/js/vendor/codemirror/mode/htmlembedded/htmlembedded.js +73 -0
  203. data/core/admin/assets/js/vendor/codemirror/mode/htmlembedded/index.html +60 -0
  204. data/core/admin/assets/js/vendor/codemirror/mode/htmlmixed/htmlmixed.js +104 -0
  205. data/core/admin/assets/js/vendor/codemirror/mode/htmlmixed/index.html +85 -0
  206. data/core/admin/assets/js/vendor/codemirror/mode/http/http.js +98 -0
  207. data/core/admin/assets/js/vendor/codemirror/mode/http/index.html +45 -0
  208. data/core/admin/assets/js/vendor/codemirror/mode/index.html +112 -0
  209. data/core/admin/assets/js/vendor/codemirror/mode/jade/index.html +66 -0
  210. data/core/admin/assets/js/vendor/codemirror/mode/jade/jade.js +90 -0
  211. data/core/admin/assets/js/vendor/codemirror/mode/javascript/index.html +107 -0
  212. data/core/admin/assets/js/vendor/codemirror/mode/javascript/javascript.js +480 -0
  213. data/core/admin/assets/js/vendor/codemirror/mode/javascript/test.js +10 -0
  214. data/core/admin/assets/js/vendor/codemirror/mode/javascript/typescript.html +61 -0
  215. data/core/admin/assets/js/vendor/codemirror/mode/jinja2/index.html +50 -0
  216. data/core/admin/assets/js/vendor/codemirror/mode/jinja2/jinja2.js +42 -0
  217. data/core/admin/assets/js/vendor/codemirror/mode/less/index.html +753 -0
  218. data/core/admin/assets/js/vendor/codemirror/mode/less/less.js +344 -0
  219. data/core/admin/assets/js/vendor/codemirror/mode/livescript/index.html +459 -0
  220. data/core/admin/assets/js/vendor/codemirror/mode/livescript/livescript.js +267 -0
  221. data/core/admin/assets/js/vendor/codemirror/mode/livescript/livescript.ls +266 -0
  222. data/core/admin/assets/js/vendor/codemirror/mode/lua/index.html +86 -0
  223. data/core/admin/assets/js/vendor/codemirror/mode/lua/lua.js +144 -0
  224. data/core/admin/assets/js/vendor/codemirror/mode/markdown/index.html +359 -0
  225. data/core/admin/assets/js/vendor/codemirror/mode/markdown/markdown.js +551 -0
  226. data/core/admin/assets/js/vendor/codemirror/mode/markdown/test.js +656 -0
  227. data/core/admin/assets/js/vendor/codemirror/mode/meta.js +89 -0
  228. data/core/admin/assets/js/vendor/codemirror/mode/mirc/index.html +161 -0
  229. data/core/admin/assets/js/vendor/codemirror/mode/mirc/mirc.js +177 -0
  230. data/core/admin/assets/js/vendor/codemirror/mode/nginx/index.html +181 -0
  231. data/core/admin/assets/js/vendor/codemirror/mode/nginx/nginx.js +163 -0
  232. data/core/admin/assets/js/vendor/codemirror/mode/ntriples/index.html +45 -0
  233. data/core/admin/assets/js/vendor/codemirror/mode/ntriples/ntriples.js +170 -0
  234. data/core/admin/assets/js/vendor/codemirror/mode/ocaml/index.html +146 -0
  235. data/core/admin/assets/js/vendor/codemirror/mode/ocaml/ocaml.js +116 -0
  236. data/core/admin/assets/js/vendor/codemirror/mode/octave/index.html +95 -0
  237. data/core/admin/assets/js/vendor/codemirror/mode/octave/octave.js +118 -0
  238. data/core/admin/assets/js/vendor/codemirror/mode/pascal/index.html +61 -0
  239. data/core/admin/assets/js/vendor/codemirror/mode/pascal/pascal.js +94 -0
  240. data/core/admin/assets/js/vendor/codemirror/mode/perl/index.html +75 -0
  241. data/core/admin/assets/js/vendor/codemirror/mode/perl/perl.js +816 -0
  242. data/core/admin/assets/js/vendor/codemirror/mode/php/index.html +62 -0
  243. data/core/admin/assets/js/vendor/codemirror/mode/php/php.js +132 -0
  244. data/core/admin/assets/js/vendor/codemirror/mode/pig/index.html +55 -0
  245. data/core/admin/assets/js/vendor/codemirror/mode/pig/pig.js +171 -0
  246. data/core/admin/assets/js/vendor/codemirror/mode/properties/index.html +53 -0
  247. data/core/admin/assets/js/vendor/codemirror/mode/properties/properties.js +63 -0
  248. data/core/admin/assets/js/vendor/codemirror/mode/python/index.html +187 -0
  249. data/core/admin/assets/js/vendor/codemirror/mode/python/python.js +368 -0
  250. data/core/admin/assets/js/vendor/codemirror/mode/q/index.html +144 -0
  251. data/core/admin/assets/js/vendor/codemirror/mode/q/q.js +124 -0
  252. data/core/admin/assets/js/vendor/codemirror/mode/r/index.html +86 -0
  253. data/core/admin/assets/js/vendor/codemirror/mode/r/r.js +141 -0
  254. data/core/admin/assets/js/vendor/codemirror/mode/rpm/changes/changes.js +19 -0
  255. data/core/admin/assets/js/vendor/codemirror/mode/rpm/changes/index.html +67 -0
  256. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/index.html +114 -0
  257. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/spec.css +5 -0
  258. data/core/admin/assets/js/vendor/codemirror/mode/rpm/spec/spec.js +66 -0
  259. data/core/admin/assets/js/vendor/codemirror/mode/rst/index.html +534 -0
  260. data/core/admin/assets/js/vendor/codemirror/mode/rst/rst.js +560 -0
  261. data/core/admin/assets/js/vendor/codemirror/mode/ruby/index.html +185 -0
  262. data/core/admin/assets/js/vendor/codemirror/mode/ruby/ruby.js +247 -0
  263. data/core/admin/assets/js/vendor/codemirror/mode/rust/index.html +61 -0
  264. data/core/admin/assets/js/vendor/codemirror/mode/rust/rust.js +436 -0
  265. data/core/admin/assets/js/vendor/codemirror/mode/sass/index.html +66 -0
  266. data/core/admin/assets/js/vendor/codemirror/mode/sass/sass.js +330 -0
  267. data/core/admin/assets/js/vendor/codemirror/mode/scheme/index.html +77 -0
  268. data/core/admin/assets/js/vendor/codemirror/mode/scheme/scheme.js +232 -0
  269. data/core/admin/assets/js/vendor/codemirror/mode/shell/index.html +66 -0
  270. data/core/admin/assets/js/vendor/codemirror/mode/shell/shell.js +118 -0
  271. data/core/admin/assets/js/vendor/codemirror/mode/sieve/index.html +93 -0
  272. data/core/admin/assets/js/vendor/codemirror/mode/sieve/sieve.js +183 -0
  273. data/core/admin/assets/js/vendor/codemirror/mode/smalltalk/index.html +68 -0
  274. data/core/admin/assets/js/vendor/codemirror/mode/smalltalk/smalltalk.js +151 -0
  275. data/core/admin/assets/js/vendor/codemirror/mode/smarty/index.html +136 -0
  276. data/core/admin/assets/js/vendor/codemirror/mode/smarty/smarty.js +205 -0
  277. data/core/admin/assets/js/vendor/codemirror/mode/smartymixed/index.html +114 -0
  278. data/core/admin/assets/js/vendor/codemirror/mode/smartymixed/smartymixed.js +175 -0
  279. data/core/admin/assets/js/vendor/codemirror/mode/sparql/index.html +54 -0
  280. data/core/admin/assets/js/vendor/codemirror/mode/sparql/sparql.js +145 -0
  281. data/core/admin/assets/js/vendor/codemirror/mode/sql/index.html +75 -0
  282. data/core/admin/assets/js/vendor/codemirror/mode/sql/sql.js +365 -0
  283. data/core/admin/assets/js/vendor/codemirror/mode/stex/index.html +110 -0
  284. data/core/admin/assets/js/vendor/codemirror/mode/stex/stex.js +246 -0
  285. data/core/admin/assets/js/vendor/codemirror/mode/stex/test.js +120 -0
  286. data/core/admin/assets/js/vendor/codemirror/mode/tcl/index.html +143 -0
  287. data/core/admin/assets/js/vendor/codemirror/mode/tcl/tcl.js +131 -0
  288. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/index.html +155 -0
  289. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  290. data/core/admin/assets/js/vendor/codemirror/mode/tiddlywiki/tiddlywiki.js +353 -0
  291. data/core/admin/assets/js/vendor/codemirror/mode/tiki/index.html +95 -0
  292. data/core/admin/assets/js/vendor/codemirror/mode/tiki/tiki.css +26 -0
  293. data/core/admin/assets/js/vendor/codemirror/mode/tiki/tiki.js +308 -0
  294. data/core/admin/assets/js/vendor/codemirror/mode/toml/index.html +73 -0
  295. data/core/admin/assets/js/vendor/codemirror/mode/toml/toml.js +71 -0
  296. data/core/admin/assets/js/vendor/codemirror/mode/turtle/index.html +51 -0
  297. data/core/admin/assets/js/vendor/codemirror/mode/turtle/turtle.js +145 -0
  298. data/core/admin/assets/js/vendor/codemirror/mode/vb/index.html +103 -0
  299. data/core/admin/assets/js/vendor/codemirror/mode/vb/vb.js +259 -0
  300. data/core/admin/assets/js/vendor/codemirror/mode/vbscript/index.html +55 -0
  301. data/core/admin/assets/js/vendor/codemirror/mode/vbscript/vbscript.js +334 -0
  302. data/core/admin/assets/js/vendor/codemirror/mode/velocity/index.html +119 -0
  303. data/core/admin/assets/js/vendor/codemirror/mode/velocity/velocity.js +186 -0
  304. data/core/admin/assets/js/vendor/codemirror/mode/verilog/index.html +132 -0
  305. data/core/admin/assets/js/vendor/codemirror/mode/verilog/verilog.js +182 -0
  306. data/core/admin/assets/js/vendor/codemirror/mode/xml/index.html +57 -0
  307. data/core/admin/assets/js/vendor/codemirror/mode/xml/xml.js +345 -0
  308. data/core/admin/assets/js/vendor/codemirror/mode/xquery/index.html +210 -0
  309. data/core/admin/assets/js/vendor/codemirror/mode/xquery/test.js +64 -0
  310. data/core/admin/assets/js/vendor/codemirror/mode/xquery/xquery.js +432 -0
  311. data/core/admin/assets/js/vendor/codemirror/mode/yaml/index.html +80 -0
  312. data/core/admin/assets/js/vendor/codemirror/mode/yaml/yaml.js +97 -0
  313. data/core/admin/assets/js/vendor/codemirror/mode/z80/index.html +52 -0
  314. data/core/admin/assets/js/vendor/codemirror/mode/z80/z80.js +85 -0
  315. data/core/admin/assets/js/vendor/codemirror/package.json +19 -0
  316. data/core/admin/assets/js/vendor/codemirror/test/comment_test.js +51 -0
  317. data/core/admin/assets/js/vendor/codemirror/test/doc_test.js +329 -0
  318. data/core/admin/assets/js/vendor/codemirror/test/driver.js +139 -0
  319. data/core/admin/assets/js/vendor/codemirror/test/emacs_test.js +135 -0
  320. data/core/admin/assets/js/vendor/codemirror/test/index.html +209 -0
  321. data/core/admin/assets/js/vendor/codemirror/test/lint/acorn.js +1593 -0
  322. data/core/admin/assets/js/vendor/codemirror/test/lint/lint.js +139 -0
  323. data/core/admin/assets/js/vendor/codemirror/test/lint/walk.js +216 -0
  324. data/core/admin/assets/js/vendor/codemirror/test/mode_test.css +10 -0
  325. data/core/admin/assets/js/vendor/codemirror/test/mode_test.js +200 -0
  326. data/core/admin/assets/js/vendor/codemirror/test/phantom_driver.js +31 -0
  327. data/core/admin/assets/js/vendor/codemirror/test/run.js +34 -0
  328. data/core/admin/assets/js/vendor/codemirror/test/test.js +1562 -0
  329. data/core/admin/assets/js/vendor/codemirror/test/vim_test.js +2391 -0
  330. data/core/admin/assets/js/vendor/codemirror/theme/3024-day.css +34 -0
  331. data/core/admin/assets/js/vendor/codemirror/theme/3024-night.css +34 -0
  332. data/core/admin/assets/js/vendor/codemirror/theme/ambiance-mobile.css +5 -0
  333. data/core/admin/assets/js/vendor/codemirror/theme/ambiance.css +75 -0
  334. data/core/admin/assets/js/vendor/codemirror/theme/base16-dark.css +34 -0
  335. data/core/admin/assets/js/vendor/codemirror/theme/base16-light.css +34 -0
  336. data/core/admin/assets/js/vendor/codemirror/theme/blackboard.css +28 -0
  337. data/core/admin/assets/js/vendor/codemirror/theme/cobalt.css +21 -0
  338. data/core/admin/assets/js/vendor/codemirror/theme/eclipse.css +23 -0
  339. data/core/admin/assets/js/vendor/codemirror/theme/elegant.css +13 -0
  340. data/core/admin/assets/js/vendor/codemirror/theme/erlang-dark.css +30 -0
  341. data/core/admin/assets/js/vendor/codemirror/theme/lesser-dark.css +47 -0
  342. data/core/admin/assets/js/vendor/codemirror/theme/mbo.css +35 -0
  343. data/core/admin/assets/js/vendor/codemirror/theme/midnight.css +43 -0
  344. data/core/admin/assets/js/vendor/codemirror/theme/monokai.css +29 -0
  345. data/core/admin/assets/js/vendor/codemirror/theme/neat.css +12 -0
  346. data/core/admin/assets/js/vendor/codemirror/theme/night.css +24 -0
  347. data/core/admin/assets/js/vendor/codemirror/theme/paraiso-dark.css +34 -0
  348. data/core/admin/assets/js/vendor/codemirror/theme/paraiso-light.css +34 -0
  349. data/core/admin/assets/js/vendor/codemirror/theme/rubyblue.css +23 -0
  350. data/core/admin/assets/js/vendor/codemirror/theme/solarized-mod.css +181 -0
  351. data/core/admin/assets/js/vendor/codemirror/theme/solarized.css +180 -0
  352. data/core/admin/assets/js/vendor/codemirror/theme/the-matrix.css +26 -0
  353. data/core/admin/assets/js/vendor/codemirror/theme/tomorrow-night-eighties.css +34 -0
  354. data/core/admin/assets/js/vendor/codemirror/theme/twilight.css +28 -0
  355. data/core/admin/assets/js/vendor/codemirror/theme/vibrant-ink.css +30 -0
  356. data/core/admin/assets/js/vendor/codemirror/theme/xq-dark.css +49 -0
  357. data/core/admin/assets/js/vendor/codemirror/theme/xq-light.css +43 -0
  358. data/core/admin/assets/js/vendor/fastclick.js +777 -0
  359. data/core/admin/assets/js/vendor/jquery.js +6 -0
  360. data/core/admin/assets/js/vendor/lodash.underscore.js +38 -0
  361. data/core/admin/assets/js/vendor/require.js +36 -0
  362. data/core/admin/assets/scss/bootstrap.scss +18 -0
  363. data/core/admin/assets/scss/modules/_all.scss +7 -0
  364. data/core/admin/assets/scss/modules/_colors.scss +7 -0
  365. data/core/admin/assets/scss/modules/_extensions.scss +24 -0
  366. data/core/admin/assets/scss/modules/_mixins.scss +18 -0
  367. data/core/admin/assets/scss/modules/_susy.scss +7 -0
  368. data/core/admin/assets/scss/partials/_base.scss +33 -0
  369. data/core/admin/assets/scss/partials/_buttons.scss +9 -0
  370. data/core/admin/assets/scss/partials/_links.scss +15 -0
  371. data/core/admin/assets/scss/partials/_main.scss +14 -0
  372. data/core/admin/assets/scss/partials/_typography.scss +15 -0
  373. data/core/admin/assets/scss/sections/_editor.scss +274 -0
  374. data/core/admin/assets/scss/sections/_login.scss +34 -0
  375. data/core/admin/assets/scss/vendor/_normalize.scss +406 -0
  376. data/core/admin/layouts/admin.haml +67 -0
  377. data/core/admin/partials/_head.haml +23 -0
  378. data/core/admin/partials/_tree.haml +3 -0
  379. data/core/admin/partials/_treeitem.haml +4 -0
  380. data/core/admin/settings.yml +4 -0
  381. data/core/app.rb +21 -0
  382. data/core/classes/cached.rb +35 -0
  383. data/core/classes/checker.rb +37 -0
  384. data/core/classes/commit.rb +62 -0
  385. data/core/classes/error.rb +9 -0
  386. data/core/classes/page.rb +165 -0
  387. data/core/classes/partial.rb +13 -0
  388. data/core/classes/path.rb +30 -0
  389. data/core/classes/persona.rb +55 -0
  390. data/core/classes/sassfile.rb +95 -0
  391. data/core/classes/settings.rb +19 -0
  392. data/core/classes/theme.rb +55 -0
  393. data/core/helpers/base.rb +46 -0
  394. data/core/helpers/render.rb +26 -0
  395. data/core/helpers/truncate.rb +17 -0
  396. data/core/routes/admin.rb +139 -0
  397. data/core/routes/assetcompiler.rb +23 -0
  398. data/core/routes/base.rb +22 -0
  399. data/core/routes/bootstrap.rb +35 -0
  400. data/core/routes/cache.rb +52 -0
  401. data/core/routes/deploy.rb +16 -0
  402. data/core/routes/git.rb +23 -0
  403. data/poly.gemspec +29 -0
  404. data/sample/.cabi-data +0 -0
  405. data/sample/data/home/index.haml +22 -0
  406. data/sample/data/other/nav/links.yml +4 -0
  407. data/sample/data/page/about/index.haml +12 -0
  408. data/sample/data/page/contact-us/index.haml +11 -0
  409. data/sample/data/page/dynamic-page/index.haml +14 -0
  410. data/sample/data/page/error/index.haml +8 -0
  411. data/sample/data/page/html/index.html +4 -0
  412. data/sample/data/page/no-front-matter/index.haml +7 -0
  413. data/sample/data/page/not-found/index.haml +8 -0
  414. data/sample/data/page/static-page/index.haml +14 -0
  415. data/sample/data/post/about-life/index.md +12 -0
  416. data/sample/data/post/sample-post/index.haml +12 -0
  417. data/sample/data/post/technology/index.haml +12 -0
  418. data/sample/data/post/the-40-hour-workweek/index.haml +9 -0
  419. data/sample/data/post/things-are-changing/index.haml +9 -0
  420. data/sample/data/post/yet-another-post/index.haml +11 -0
  421. data/sample/plugins/my-plugin/plugin.rb +15 -0
  422. data/sample/settings.yml +21 -0
  423. data/sample/themes/base/assets/css/readme.txt +6 -0
  424. data/sample/themes/base/assets/images/poly.svg +36 -0
  425. data/sample/themes/base/assets/js/app/views/main.js +13 -0
  426. data/sample/themes/base/assets/js/main.js +31 -0
  427. data/sample/themes/base/assets/js/vendor/backbone.js +4 -0
  428. data/sample/themes/base/assets/js/vendor/jquery.js +6 -0
  429. data/sample/themes/base/assets/js/vendor/lodash.underscore.js +38 -0
  430. data/sample/themes/base/assets/js/vendor/require.js +36 -0
  431. data/sample/themes/base/assets/scss/bootstrap.scss +20 -0
  432. data/sample/themes/base/assets/scss/modules/_all.scss +7 -0
  433. data/sample/themes/base/assets/scss/modules/_colors.scss +7 -0
  434. data/sample/themes/base/assets/scss/modules/_extensions.scss +13 -0
  435. data/sample/themes/base/assets/scss/modules/_mixins.scss +11 -0
  436. data/sample/themes/base/assets/scss/modules/_susy.scss +7 -0
  437. data/sample/themes/base/assets/scss/partials/_base.scss +33 -0
  438. data/sample/themes/base/assets/scss/partials/_buttons.scss +0 -0
  439. data/sample/themes/base/assets/scss/partials/_links.scss +15 -0
  440. data/sample/themes/base/assets/scss/partials/_main.scss +39 -0
  441. data/sample/themes/base/assets/scss/partials/_typography.scss +15 -0
  442. data/sample/themes/base/assets/scss/sections/_footer.scss +22 -0
  443. data/sample/themes/base/assets/scss/sections/_header.scss +23 -0
  444. data/sample/themes/base/assets/scss/sections/_home.scss +13 -0
  445. data/sample/themes/base/assets/scss/sections/_pages.scss +11 -0
  446. data/sample/themes/base/assets/scss/vendor/_normalize.scss +406 -0
  447. data/sample/themes/base/layouts/default.haml +14 -0
  448. data/sample/themes/base/layouts/post.haml +15 -0
  449. data/sample/themes/base/partials/_footer.haml +9 -0
  450. data/sample/themes/base/partials/_ga.haml +10 -0
  451. data/sample/themes/base/partials/_head.haml +20 -0
  452. data/sample/themes/base/partials/_header.haml +5 -0
  453. data/sample/themes/base/settings.yml +4 -0
  454. data/test/data/post-receive-hook.json +146 -0
  455. data/test/test_basics.rb +50 -0
  456. data/test/test_data.rb +14 -0
  457. data/test/test_deploy.rb +23 -0
  458. data/test/test_includes.rb +43 -0
  459. data/test/test_page.rb +47 -0
  460. metadata +1049 -0
@@ -0,0 +1,430 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Eiffel mode</title>
4
+ <meta charset="utf-8"/>
5
+ <link rel=stylesheet href="../../doc/docs.css">
6
+
7
+ <link rel="stylesheet" href="../../lib/codemirror.css">
8
+ <link rel="stylesheet" href="../../theme/neat.css">
9
+ <script src="../../lib/codemirror.js"></script>
10
+ <script src="eiffel.js"></script>
11
+ <style>
12
+ .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}
13
+ .cm-s-default span.cm-arrow { color: red; }
14
+ </style>
15
+ <div id=nav>
16
+ <a href="http://codemirror.net"><img id=logo src="../../doc/logo.png"></a>
17
+
18
+ <ul>
19
+ <li><a href="../../index.html">Home</a>
20
+ <li><a href="../../doc/manual.html">Manual</a>
21
+ <li><a href="https://github.com/marijnh/codemirror">Code</a>
22
+ </ul>
23
+ <ul>
24
+ <li><a href="../index.html">Language modes</a>
25
+ <li><a class=active href="#">Eiffel</a>
26
+ </ul>
27
+ </div>
28
+
29
+ <article>
30
+ <h2>Eiffel mode</h2>
31
+ <form><textarea id="code" name="code">
32
+ note
33
+ description: "[
34
+ Project-wide universal properties.
35
+ This class is an ancestor to all developer-written classes.
36
+ ANY may be customized for individual projects or teams.
37
+ ]"
38
+
39
+ library: "Free implementation of ELKS library"
40
+ status: "See notice at end of class."
41
+ legal: "See notice at end of class."
42
+ date: "$Date: 2013-01-25 11:49:00 -0800 (Fri, 25 Jan 2013) $"
43
+ revision: "$Revision: 712 $"
44
+
45
+ class
46
+ ANY
47
+
48
+ feature -- Customization
49
+
50
+ feature -- Access
51
+
52
+ generator: STRING
53
+ -- Name of current object's generating class
54
+ -- (base class of the type of which it is a direct instance)
55
+ external
56
+ "built_in"
57
+ ensure
58
+ generator_not_void: Result /= Void
59
+ generator_not_empty: not Result.is_empty
60
+ end
61
+
62
+ generating_type: TYPE [detachable like Current]
63
+ -- Type of current object
64
+ -- (type of which it is a direct instance)
65
+ do
66
+ Result := {detachable like Current}
67
+ ensure
68
+ generating_type_not_void: Result /= Void
69
+ end
70
+
71
+ feature -- Status report
72
+
73
+ conforms_to (other: ANY): BOOLEAN
74
+ -- Does type of current object conform to type
75
+ -- of `other' (as per Eiffel: The Language, chapter 13)?
76
+ require
77
+ other_not_void: other /= Void
78
+ external
79
+ "built_in"
80
+ end
81
+
82
+ same_type (other: ANY): BOOLEAN
83
+ -- Is type of current object identical to type of `other'?
84
+ require
85
+ other_not_void: other /= Void
86
+ external
87
+ "built_in"
88
+ ensure
89
+ definition: Result = (conforms_to (other) and
90
+ other.conforms_to (Current))
91
+ end
92
+
93
+ feature -- Comparison
94
+
95
+ is_equal (other: like Current): BOOLEAN
96
+ -- Is `other' attached to an object considered
97
+ -- equal to current object?
98
+ require
99
+ other_not_void: other /= Void
100
+ external
101
+ "built_in"
102
+ ensure
103
+ symmetric: Result implies other ~ Current
104
+ consistent: standard_is_equal (other) implies Result
105
+ end
106
+
107
+ frozen standard_is_equal (other: like Current): BOOLEAN
108
+ -- Is `other' attached to an object of the same type
109
+ -- as current object, and field-by-field identical to it?
110
+ require
111
+ other_not_void: other /= Void
112
+ external
113
+ "built_in"
114
+ ensure
115
+ same_type: Result implies same_type (other)
116
+ symmetric: Result implies other.standard_is_equal (Current)
117
+ end
118
+
119
+ frozen equal (a: detachable ANY; b: like a): BOOLEAN
120
+ -- Are `a' and `b' either both void or attached
121
+ -- to objects considered equal?
122
+ do
123
+ if a = Void then
124
+ Result := b = Void
125
+ else
126
+ Result := b /= Void and then
127
+ a.is_equal (b)
128
+ end
129
+ ensure
130
+ definition: Result = (a = Void and b = Void) or else
131
+ ((a /= Void and b /= Void) and then
132
+ a.is_equal (b))
133
+ end
134
+
135
+ frozen standard_equal (a: detachable ANY; b: like a): BOOLEAN
136
+ -- Are `a' and `b' either both void or attached to
137
+ -- field-by-field identical objects of the same type?
138
+ -- Always uses default object comparison criterion.
139
+ do
140
+ if a = Void then
141
+ Result := b = Void
142
+ else
143
+ Result := b /= Void and then
144
+ a.standard_is_equal (b)
145
+ end
146
+ ensure
147
+ definition: Result = (a = Void and b = Void) or else
148
+ ((a /= Void and b /= Void) and then
149
+ a.standard_is_equal (b))
150
+ end
151
+
152
+ frozen is_deep_equal (other: like Current): BOOLEAN
153
+ -- Are `Current' and `other' attached to isomorphic object structures?
154
+ require
155
+ other_not_void: other /= Void
156
+ external
157
+ "built_in"
158
+ ensure
159
+ shallow_implies_deep: standard_is_equal (other) implies Result
160
+ same_type: Result implies same_type (other)
161
+ symmetric: Result implies other.is_deep_equal (Current)
162
+ end
163
+
164
+ frozen deep_equal (a: detachable ANY; b: like a): BOOLEAN
165
+ -- Are `a' and `b' either both void
166
+ -- or attached to isomorphic object structures?
167
+ do
168
+ if a = Void then
169
+ Result := b = Void
170
+ else
171
+ Result := b /= Void and then a.is_deep_equal (b)
172
+ end
173
+ ensure
174
+ shallow_implies_deep: standard_equal (a, b) implies Result
175
+ both_or_none_void: (a = Void) implies (Result = (b = Void))
176
+ same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))
177
+ symmetric: Result implies deep_equal (b, a)
178
+ end
179
+
180
+ feature -- Duplication
181
+
182
+ frozen twin: like Current
183
+ -- New object equal to `Current'
184
+ -- `twin' calls `copy'; to change copying/twinning semantics, redefine `copy'.
185
+ external
186
+ "built_in"
187
+ ensure
188
+ twin_not_void: Result /= Void
189
+ is_equal: Result ~ Current
190
+ end
191
+
192
+ copy (other: like Current)
193
+ -- Update current object using fields of object attached
194
+ -- to `other', so as to yield equal objects.
195
+ require
196
+ other_not_void: other /= Void
197
+ type_identity: same_type (other)
198
+ external
199
+ "built_in"
200
+ ensure
201
+ is_equal: Current ~ other
202
+ end
203
+
204
+ frozen standard_copy (other: like Current)
205
+ -- Copy every field of `other' onto corresponding field
206
+ -- of current object.
207
+ require
208
+ other_not_void: other /= Void
209
+ type_identity: same_type (other)
210
+ external
211
+ "built_in"
212
+ ensure
213
+ is_standard_equal: standard_is_equal (other)
214
+ end
215
+
216
+ frozen clone (other: detachable ANY): like other
217
+ -- Void if `other' is void; otherwise new object
218
+ -- equal to `other'
219
+ --
220
+ -- For non-void `other', `clone' calls `copy';
221
+ -- to change copying/cloning semantics, redefine `copy'.
222
+ obsolete
223
+ "Use `twin' instead."
224
+ do
225
+ if other /= Void then
226
+ Result := other.twin
227
+ end
228
+ ensure
229
+ equal: Result ~ other
230
+ end
231
+
232
+ frozen standard_clone (other: detachable ANY): like other
233
+ -- Void if `other' is void; otherwise new object
234
+ -- field-by-field identical to `other'.
235
+ -- Always uses default copying semantics.
236
+ obsolete
237
+ "Use `standard_twin' instead."
238
+ do
239
+ if other /= Void then
240
+ Result := other.standard_twin
241
+ end
242
+ ensure
243
+ equal: standard_equal (Result, other)
244
+ end
245
+
246
+ frozen standard_twin: like Current
247
+ -- New object field-by-field identical to `other'.
248
+ -- Always uses default copying semantics.
249
+ external
250
+ "built_in"
251
+ ensure
252
+ standard_twin_not_void: Result /= Void
253
+ equal: standard_equal (Result, Current)
254
+ end
255
+
256
+ frozen deep_twin: like Current
257
+ -- New object structure recursively duplicated from Current.
258
+ external
259
+ "built_in"
260
+ ensure
261
+ deep_twin_not_void: Result /= Void
262
+ deep_equal: deep_equal (Current, Result)
263
+ end
264
+
265
+ frozen deep_clone (other: detachable ANY): like other
266
+ -- Void if `other' is void: otherwise, new object structure
267
+ -- recursively duplicated from the one attached to `other'
268
+ obsolete
269
+ "Use `deep_twin' instead."
270
+ do
271
+ if other /= Void then
272
+ Result := other.deep_twin
273
+ end
274
+ ensure
275
+ deep_equal: deep_equal (other, Result)
276
+ end
277
+
278
+ frozen deep_copy (other: like Current)
279
+ -- Effect equivalent to that of:
280
+ -- `copy' (`other' . `deep_twin')
281
+ require
282
+ other_not_void: other /= Void
283
+ do
284
+ copy (other.deep_twin)
285
+ ensure
286
+ deep_equal: deep_equal (Current, other)
287
+ end
288
+
289
+ feature {NONE} -- Retrieval
290
+
291
+ frozen internal_correct_mismatch
292
+ -- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch'
293
+ -- from MISMATCH_CORRECTOR.
294
+ local
295
+ l_msg: STRING
296
+ l_exc: EXCEPTIONS
297
+ do
298
+ if attached {MISMATCH_CORRECTOR} Current as l_corrector then
299
+ l_corrector.correct_mismatch
300
+ else
301
+ create l_msg.make_from_string ("Mismatch: ")
302
+ create l_exc
303
+ l_msg.append (generating_type.name)
304
+ l_exc.raise_retrieval_exception (l_msg)
305
+ end
306
+ end
307
+
308
+ feature -- Output
309
+
310
+ io: STD_FILES
311
+ -- Handle to standard file setup
312
+ once
313
+ create Result
314
+ Result.set_output_default
315
+ ensure
316
+ io_not_void: Result /= Void
317
+ end
318
+
319
+ out: STRING
320
+ -- New string containing terse printable representation
321
+ -- of current object
322
+ do
323
+ Result := tagged_out
324
+ ensure
325
+ out_not_void: Result /= Void
326
+ end
327
+
328
+ frozen tagged_out: STRING
329
+ -- New string containing terse printable representation
330
+ -- of current object
331
+ external
332
+ "built_in"
333
+ ensure
334
+ tagged_out_not_void: Result /= Void
335
+ end
336
+
337
+ print (o: detachable ANY)
338
+ -- Write terse external representation of `o'
339
+ -- on standard output.
340
+ do
341
+ if o /= Void then
342
+ io.put_string (o.out)
343
+ end
344
+ end
345
+
346
+ feature -- Platform
347
+
348
+ Operating_environment: OPERATING_ENVIRONMENT
349
+ -- Objects available from the operating system
350
+ once
351
+ create Result
352
+ ensure
353
+ operating_environment_not_void: Result /= Void
354
+ end
355
+
356
+ feature {NONE} -- Initialization
357
+
358
+ default_create
359
+ -- Process instances of classes with no creation clause.
360
+ -- (Default: do nothing.)
361
+ do
362
+ end
363
+
364
+ feature -- Basic operations
365
+
366
+ default_rescue
367
+ -- Process exception for routines with no Rescue clause.
368
+ -- (Default: do nothing.)
369
+ do
370
+ end
371
+
372
+ frozen do_nothing
373
+ -- Execute a null action.
374
+ do
375
+ end
376
+
377
+ frozen default: detachable like Current
378
+ -- Default value of object's type
379
+ do
380
+ end
381
+
382
+ frozen default_pointer: POINTER
383
+ -- Default value of type `POINTER'
384
+ -- (Avoid the need to write `p'.`default' for
385
+ -- some `p' of type `POINTER'.)
386
+ do
387
+ ensure
388
+ -- Result = Result.default
389
+ end
390
+
391
+ frozen as_attached: attached like Current
392
+ -- Attached version of Current
393
+ -- (Can be used during transitional period to convert
394
+ -- non-void-safe classes to void-safe ones.)
395
+ do
396
+ Result := Current
397
+ end
398
+
399
+ invariant
400
+ reflexive_equality: standard_is_equal (Current)
401
+ reflexive_conformance: conforms_to (Current)
402
+
403
+ note
404
+ copyright: "Copyright (c) 1984-2012, Eiffel Software and others"
405
+ license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
406
+ source: "[
407
+ Eiffel Software
408
+ 5949 Hollister Ave., Goleta, CA 93117 USA
409
+ Telephone 805-685-1006, Fax 805-685-6869
410
+ Website http://www.eiffel.com
411
+ Customer support http://support.eiffel.com
412
+ ]"
413
+
414
+ end
415
+
416
+ </textarea></form>
417
+ <script>
418
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
419
+ mode: "text/x-eiffel",
420
+ tabMode: "indent",
421
+ indentUnit: 4,
422
+ lineNumbers: true,
423
+ theme: "neat"
424
+ });
425
+ </script>
426
+
427
+ <p><strong>MIME types defined:</strong> <code>text/x-eiffel</code>.</p>
428
+
429
+ <p> Created by <a href="https://github.com/ynh">YNH</a>.</p>
430
+ </article>
@@ -0,0 +1,484 @@
1
+ // block; "begin", "case", "fun", "if", "receive", "try": closed by "end"
2
+ // block internal; "after", "catch", "of"
3
+ // guard; "when", closed by "->"
4
+ // "->" opens a clause, closed by ";" or "."
5
+ // "<<" opens a binary, closed by ">>"
6
+ // "," appears in arglists, lists, tuples and terminates lines of code
7
+ // "." resets indentation to 0
8
+ // obsolete; "cond", "let", "query"
9
+
10
+ CodeMirror.defineMIME("text/x-erlang", "erlang");
11
+
12
+ CodeMirror.defineMode("erlang", function(cmCfg) {
13
+
14
+ function rval(state,_stream,type) {
15
+ // distinguish between "." as terminator and record field operator
16
+ state.in_record = (type == "record");
17
+
18
+ // erlang -> CodeMirror tag
19
+ switch (type) {
20
+ case "atom": return "atom";
21
+ case "attribute": return "attribute";
22
+ case "boolean": return "special";
23
+ case "builtin": return "builtin";
24
+ case "comment": return "comment";
25
+ case "fun": return "meta";
26
+ case "function": return "tag";
27
+ case "guard": return "property";
28
+ case "keyword": return "keyword";
29
+ case "macro": return "variable-2";
30
+ case "number": return "number";
31
+ case "operator": return "operator";
32
+ case "record": return "bracket";
33
+ case "string": return "string";
34
+ case "type": return "def";
35
+ case "variable": return "variable";
36
+ case "error": return "error";
37
+ case "separator": return null;
38
+ case "open_paren": return null;
39
+ case "close_paren": return null;
40
+ default: return null;
41
+ }
42
+ }
43
+
44
+ var typeWords = [
45
+ "-type", "-spec", "-export_type", "-opaque"];
46
+
47
+ var keywordWords = [
48
+ "after","begin","catch","case","cond","end","fun","if",
49
+ "let","of","query","receive","try","when"];
50
+
51
+ var separatorRE = /[\->\.,:;]/;
52
+ var separatorWords = [
53
+ "->",";",":",".",","];
54
+
55
+ var operatorWords = [
56
+ "and","andalso","band","bnot","bor","bsl","bsr","bxor",
57
+ "div","not","or","orelse","rem","xor"];
58
+
59
+ var symbolRE = /[\+\-\*\/<>=\|:!]/;
60
+ var symbolWords = [
61
+ "+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"];
62
+
63
+ var openParenRE = /[<\(\[\{]/;
64
+ var openParenWords = [
65
+ "<<","(","[","{"];
66
+
67
+ var closeParenRE = /[>\)\]\}]/;
68
+ var closeParenWords = [
69
+ "}","]",")",">>"];
70
+
71
+ var guardWords = [
72
+ "is_atom","is_binary","is_bitstring","is_boolean","is_float",
73
+ "is_function","is_integer","is_list","is_number","is_pid",
74
+ "is_port","is_record","is_reference","is_tuple",
75
+ "atom","binary","bitstring","boolean","function","integer","list",
76
+ "number","pid","port","record","reference","tuple"];
77
+
78
+ var bifWords = [
79
+ "abs","adler32","adler32_combine","alive","apply","atom_to_binary",
80
+ "atom_to_list","binary_to_atom","binary_to_existing_atom",
81
+ "binary_to_list","binary_to_term","bit_size","bitstring_to_list",
82
+ "byte_size","check_process_code","contact_binary","crc32",
83
+ "crc32_combine","date","decode_packet","delete_module",
84
+ "disconnect_node","element","erase","exit","float","float_to_list",
85
+ "garbage_collect","get","get_keys","group_leader","halt","hd",
86
+ "integer_to_list","internal_bif","iolist_size","iolist_to_binary",
87
+ "is_alive","is_atom","is_binary","is_bitstring","is_boolean",
88
+ "is_float","is_function","is_integer","is_list","is_number","is_pid",
89
+ "is_port","is_process_alive","is_record","is_reference","is_tuple",
90
+ "length","link","list_to_atom","list_to_binary","list_to_bitstring",
91
+ "list_to_existing_atom","list_to_float","list_to_integer",
92
+ "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded",
93
+ "monitor_node","node","node_link","node_unlink","nodes","notalive",
94
+ "now","open_port","pid_to_list","port_close","port_command",
95
+ "port_connect","port_control","pre_loaded","process_flag",
96
+ "process_info","processes","purge_module","put","register",
97
+ "registered","round","self","setelement","size","spawn","spawn_link",
98
+ "spawn_monitor","spawn_opt","split_binary","statistics",
99
+ "term_to_binary","time","throw","tl","trunc","tuple_size",
100
+ "tuple_to_list","unlink","unregister","whereis"];
101
+
102
+ // [Ø-Þ] [À-Ö]
103
+ // [ß-ö] [ø-ÿ]
104
+ var anumRE = /[\w@Ø-ÞÀ-Öß-öø-ÿ]/;
105
+ var escapesRE =
106
+ /[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;
107
+
108
+ function tokenize(stream, state) {
109
+
110
+ // in multi-line string
111
+ if (state.in_string) {
112
+ state.in_string = (!doubleQuote(stream));
113
+ return rval(state,stream,"string");
114
+ }
115
+
116
+ // in multi-line atom
117
+ if (state.in_atom) {
118
+ state.in_atom = (!singleQuote(stream));
119
+ return rval(state,stream,"atom");
120
+ }
121
+
122
+ // whitespace
123
+ if (stream.eatSpace()) {
124
+ return rval(state,stream,"whitespace");
125
+ }
126
+
127
+ // attributes and type specs
128
+ if ((peekToken(state).token == "") &&
129
+ stream.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/)) {
130
+ if (isMember(stream.current(),typeWords)) {
131
+ return rval(state,stream,"type");
132
+ }else{
133
+ return rval(state,stream,"attribute");
134
+ }
135
+ }
136
+
137
+ var ch = stream.next();
138
+
139
+ // comment
140
+ if (ch == '%') {
141
+ stream.skipToEnd();
142
+ return rval(state,stream,"comment");
143
+ }
144
+
145
+ // macro
146
+ if (ch == '?') {
147
+ stream.eatWhile(anumRE);
148
+ return rval(state,stream,"macro");
149
+ }
150
+
151
+ // record
152
+ if (ch == "#") {
153
+ stream.eatWhile(anumRE);
154
+ return rval(state,stream,"record");
155
+ }
156
+
157
+ // dollar escape
158
+ if ( ch == "$" ) {
159
+ if (stream.next() == "\\" && !stream.match(escapesRE)) {
160
+ return rval(state,stream,"error");
161
+ }
162
+ return rval(state,stream,"number");
163
+ }
164
+
165
+ // quoted atom
166
+ if (ch == '\'') {
167
+ if (!(state.in_atom = (!singleQuote(stream)))) {
168
+ if (stream.match(/\s*\/\s*[0-9]/,false)) {
169
+ stream.match(/\s*\/\s*[0-9]/,true);
170
+ popToken(state);
171
+ return rval(state,stream,"fun"); // 'f'/0 style fun
172
+ }
173
+ if (stream.match(/\s*\(/,false) || stream.match(/\s*:/,false)) {
174
+ return rval(state,stream,"function");
175
+ }
176
+ }
177
+ return rval(state,stream,"atom");
178
+ }
179
+
180
+ // string
181
+ if (ch == '"') {
182
+ state.in_string = (!doubleQuote(stream));
183
+ return rval(state,stream,"string");
184
+ }
185
+
186
+ // variable
187
+ if (/[A-Z_Ø-ÞÀ-Ö]/.test(ch)) {
188
+ stream.eatWhile(anumRE);
189
+ return rval(state,stream,"variable");
190
+ }
191
+
192
+ // atom/keyword/BIF/function
193
+ if (/[a-z_ß-öø-ÿ]/.test(ch)) {
194
+ stream.eatWhile(anumRE);
195
+
196
+ if (stream.match(/\s*\/\s*[0-9]/,false)) {
197
+ stream.match(/\s*\/\s*[0-9]/,true);
198
+ popToken(state);
199
+ return rval(state,stream,"fun"); // f/0 style fun
200
+ }
201
+
202
+ var w = stream.current();
203
+
204
+ if (isMember(w,keywordWords)) {
205
+ pushToken(state,stream);
206
+ return rval(state,stream,"keyword");
207
+ }else if (stream.match(/\s*\(/,false)) {
208
+ // 'put' and 'erlang:put' are bifs, 'foo:put' is not
209
+ if (isMember(w,bifWords) &&
210
+ (!isPrev(stream,":") || isPrev(stream,"erlang:"))) {
211
+ return rval(state,stream,"builtin");
212
+ }else if (isMember(w,guardWords)) {
213
+ return rval(state,stream,"guard");
214
+ }else{
215
+ return rval(state,stream,"function");
216
+ }
217
+ }else if (isMember(w,operatorWords)) {
218
+ return rval(state,stream,"operator");
219
+ }else if (stream.match(/\s*:/,false)) {
220
+ if (w == "erlang") {
221
+ return rval(state,stream,"builtin");
222
+ } else {
223
+ return rval(state,stream,"function");
224
+ }
225
+ }else if (isMember(w,["true","false"])) {
226
+ return rval(state,stream,"boolean");
227
+ }else{
228
+ return rval(state,stream,"atom");
229
+ }
230
+ }
231
+
232
+ // number
233
+ var digitRE = /[0-9]/;
234
+ var radixRE = /[0-9a-zA-Z]/; // 36#zZ style int
235
+ if (digitRE.test(ch)) {
236
+ stream.eatWhile(digitRE);
237
+ if (stream.eat('#')) {
238
+ stream.eatWhile(radixRE); // 36#aZ style integer
239
+ } else {
240
+ if (stream.eat('.')) { // float
241
+ stream.eatWhile(digitRE);
242
+ }
243
+ if (stream.eat(/[eE]/)) {
244
+ stream.eat(/[-+]/); // float with exponent
245
+ stream.eatWhile(digitRE);
246
+ }
247
+ }
248
+ return rval(state,stream,"number"); // normal integer
249
+ }
250
+
251
+ // open parens
252
+ if (nongreedy(stream,openParenRE,openParenWords)) {
253
+ pushToken(state,stream);
254
+ return rval(state,stream,"open_paren");
255
+ }
256
+
257
+ // close parens
258
+ if (nongreedy(stream,closeParenRE,closeParenWords)) {
259
+ pushToken(state,stream);
260
+ return rval(state,stream,"close_paren");
261
+ }
262
+
263
+ // separators
264
+ if (greedy(stream,separatorRE,separatorWords)) {
265
+ // distinguish between "." as terminator and record field operator
266
+ if (!state.in_record) {
267
+ pushToken(state,stream);
268
+ }
269
+ return rval(state,stream,"separator");
270
+ }
271
+
272
+ // operators
273
+ if (greedy(stream,symbolRE,symbolWords)) {
274
+ return rval(state,stream,"operator");
275
+ }
276
+
277
+ return rval(state,stream,null);
278
+ }
279
+
280
+ function isPrev(stream,string) {
281
+ var start = stream.start;
282
+ var len = string.length;
283
+ if (len <= start) {
284
+ var word = stream.string.slice(start-len,start);
285
+ return word == string;
286
+ }else{
287
+ return false;
288
+ }
289
+ }
290
+
291
+ function nongreedy(stream,re,words) {
292
+ if (stream.current().length == 1 && re.test(stream.current())) {
293
+ stream.backUp(1);
294
+ while (re.test(stream.peek())) {
295
+ stream.next();
296
+ if (isMember(stream.current(),words)) {
297
+ return true;
298
+ }
299
+ }
300
+ stream.backUp(stream.current().length-1);
301
+ }
302
+ return false;
303
+ }
304
+
305
+ function greedy(stream,re,words) {
306
+ if (stream.current().length == 1 && re.test(stream.current())) {
307
+ while (re.test(stream.peek())) {
308
+ stream.next();
309
+ }
310
+ while (0 < stream.current().length) {
311
+ if (isMember(stream.current(),words)) {
312
+ return true;
313
+ }else{
314
+ stream.backUp(1);
315
+ }
316
+ }
317
+ stream.next();
318
+ }
319
+ return false;
320
+ }
321
+
322
+ function doubleQuote(stream) {
323
+ return quote(stream, '"', '\\');
324
+ }
325
+
326
+ function singleQuote(stream) {
327
+ return quote(stream,'\'','\\');
328
+ }
329
+
330
+ function quote(stream,quoteChar,escapeChar) {
331
+ while (!stream.eol()) {
332
+ var ch = stream.next();
333
+ if (ch == quoteChar) {
334
+ return true;
335
+ }else if (ch == escapeChar) {
336
+ stream.next();
337
+ }
338
+ }
339
+ return false;
340
+ }
341
+
342
+ function isMember(element,list) {
343
+ return (-1 < list.indexOf(element));
344
+ }
345
+
346
+ /////////////////////////////////////////////////////////////////////////////
347
+ function myIndent(state,textAfter) {
348
+ var indent = cmCfg.indentUnit;
349
+ var token = (peekToken(state)).token;
350
+ var wordAfter = takewhile(textAfter,/[^a-z]/);
351
+
352
+ if (state.in_string || state.in_atom) {
353
+ return CodeMirror.Pass;
354
+ }else if (token == "") {
355
+ return 0;
356
+ }else if (isMember(token,openParenWords)) {
357
+ return (peekToken(state)).column+token.length;
358
+ }else if (token == "when") {
359
+ return (peekToken(state)).column+token.length+1;
360
+ }else if (token == "fun" && wordAfter == "") {
361
+ return (peekToken(state)).column+token.length;
362
+ }else if (token == "->") {
363
+ if (isMember(wordAfter,["end","after","catch"])) {
364
+ return peekToken(state,2).column;
365
+ }else if (peekToken(state,2).token == "fun") {
366
+ return peekToken(state,2).column+indent;
367
+ }else if (peekToken(state,2).token == "") {
368
+ return indent;
369
+ }else{
370
+ return (peekToken(state)).indent+indent;
371
+ }
372
+ }else if (isMember(wordAfter,["after","catch","of"])) {
373
+ return (peekToken(state)).indent;
374
+ }else{
375
+ return (peekToken(state)).column+indent;
376
+ }
377
+ }
378
+
379
+ function takewhile(str,re) {
380
+ var m = str.match(re);
381
+ return m ? str.slice(0,m.index) : str;
382
+ }
383
+
384
+ function Token(stream) {
385
+ this.token = stream ? stream.current() : "";
386
+ this.column = stream ? stream.column() : 0;
387
+ this.indent = stream ? stream.indentation() : 0;
388
+ }
389
+
390
+ function popToken(state) {
391
+ return state.tokenStack.pop();
392
+ }
393
+
394
+ function peekToken(state,depth) {
395
+ var len = state.tokenStack.length;
396
+ var dep = (depth ? depth : 1);
397
+ if (len < dep) {
398
+ return new Token;
399
+ }else{
400
+ return state.tokenStack[len-dep];
401
+ }
402
+ }
403
+
404
+ function pushToken(state,stream) {
405
+ var token = stream.current();
406
+ var prev_token = peekToken(state).token;
407
+
408
+ if (token == ".") {
409
+ state.tokenStack = [];
410
+ return false;
411
+ }else if(isMember(token,[",", ":", "of", "cond", "let", "query"])) {
412
+ return false;
413
+ }else if (drop_last(prev_token,token)) {
414
+ return false;
415
+ }else if (drop_both(prev_token,token)) {
416
+ popToken(state);
417
+ return false;
418
+ }else if (drop_first(prev_token,token)) {
419
+ popToken(state);
420
+ return pushToken(state,stream);
421
+ }else if (isMember(token,["after","catch"])) {
422
+ return false;
423
+ }else{
424
+ state.tokenStack.push(new Token(stream));
425
+ return true;
426
+ }
427
+ }
428
+
429
+ function drop_last(open, close) {
430
+ switch(open+" "+close) {
431
+ case "when ;": return true;
432
+ default: return false;
433
+ }
434
+ }
435
+
436
+ function drop_first(open, close) {
437
+ switch (open+" "+close) {
438
+ case "when ->": return true;
439
+ case "-> end": return true;
440
+ default: return false;
441
+ }
442
+ }
443
+
444
+ function drop_both(open, close) {
445
+ switch (open+" "+close) {
446
+ case "( )": return true;
447
+ case "[ ]": return true;
448
+ case "{ }": return true;
449
+ case "<< >>": return true;
450
+ case "begin end": return true;
451
+ case "case end": return true;
452
+ case "fun end": return true;
453
+ case "if end": return true;
454
+ case "receive end": return true;
455
+ case "try end": return true;
456
+ case "-> catch": return true;
457
+ case "-> after": return true;
458
+ case "-> ;": return true;
459
+ default: return false;
460
+ }
461
+ }
462
+
463
+ return {
464
+ startState:
465
+ function() {
466
+ return {tokenStack: [],
467
+ in_record: false,
468
+ in_string: false,
469
+ in_atom: false};
470
+ },
471
+
472
+ token:
473
+ function(stream, state) {
474
+ return tokenize(stream, state);
475
+ },
476
+
477
+ indent:
478
+ function(state, textAfter) {
479
+ return myIndent(state,textAfter);
480
+ },
481
+
482
+ lineComment: "%"
483
+ };
484
+ });