chaskiq 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -0
  3. data/lib/chaskiq/version.rb +1 -1
  4. data/vendor/assets/images/animated-overlay.gif +0 -0
  5. data/vendor/assets/images/blueimp/img/error.png +0 -0
  6. data/vendor/assets/images/blueimp/img/error.svg +5 -0
  7. data/vendor/assets/images/blueimp/img/loading.gif +0 -0
  8. data/vendor/assets/images/blueimp/img/play-pause.png +0 -0
  9. data/vendor/assets/images/blueimp/img/play-pause.svg +6 -0
  10. data/vendor/assets/images/blueimp/img/video-play.png +0 -0
  11. data/vendor/assets/images/blueimp/img/video-play.svg +5 -0
  12. data/vendor/assets/images/bootstrap-colorpicker/alpha-horizontal.png +0 -0
  13. data/vendor/assets/images/bootstrap-colorpicker/alpha.png +0 -0
  14. data/vendor/assets/images/bootstrap-colorpicker/hue-horizontal.png +0 -0
  15. data/vendor/assets/images/bootstrap-colorpicker/hue.png +0 -0
  16. data/vendor/assets/images/bootstrap-colorpicker/saturation.png +0 -0
  17. data/vendor/assets/images/chosen-sprite.png +0 -0
  18. data/vendor/assets/images/chosen-sprite@2x.png +0 -0
  19. data/vendor/assets/images/green.png +0 -0
  20. data/vendor/assets/images/green@2x.png +0 -0
  21. data/vendor/assets/images/images/animated-overlay.gif +0 -0
  22. data/vendor/assets/images/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  23. data/vendor/assets/images/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  24. data/vendor/assets/images/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  25. data/vendor/assets/images/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  26. data/vendor/assets/images/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  27. data/vendor/assets/images/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  28. data/vendor/assets/images/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  29. data/vendor/assets/images/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  30. data/vendor/assets/images/images/ui-icons_222222_256x240.png +0 -0
  31. data/vendor/assets/images/images/ui-icons_2e83ff_256x240.png +0 -0
  32. data/vendor/assets/images/images/ui-icons_454545_256x240.png +0 -0
  33. data/vendor/assets/images/images/ui-icons_888888_256x240.png +0 -0
  34. data/vendor/assets/images/images/ui-icons_cd0a0a_256x240.png +0 -0
  35. data/vendor/assets/images/sort.png +0 -0
  36. data/vendor/assets/images/sort_asc.png +0 -0
  37. data/vendor/assets/images/sort_desc.png +0 -0
  38. data/vendor/assets/images/sprite-skin-flat.png +0 -0
  39. data/vendor/assets/images/sprite-skin-flat2.png +0 -0
  40. data/vendor/assets/images/sprite-skin-nice.png +0 -0
  41. data/vendor/assets/images/sprite-skin-simple.png +0 -0
  42. data/vendor/assets/images/spritemap.png +0 -0
  43. data/vendor/assets/images/spritemap@2x.png +0 -0
  44. data/vendor/assets/javascripts/backbone/backbone.min.js +2 -0
  45. data/vendor/assets/javascripts/backbone/underscore.min.js +6 -0
  46. data/vendor/assets/javascripts/chartjs/Chart.min.js +11 -0
  47. data/vendor/assets/javascripts/codemirror/codemirror.js +7830 -0
  48. data/vendor/assets/javascripts/codemirror/mode/apl/apl.js +175 -0
  49. data/vendor/assets/javascripts/codemirror/mode/apl/index.html +72 -0
  50. data/vendor/assets/javascripts/codemirror/mode/asterisk/asterisk.js +198 -0
  51. data/vendor/assets/javascripts/codemirror/mode/asterisk/index.html +154 -0
  52. data/vendor/assets/javascripts/codemirror/mode/clike/clike.js +474 -0
  53. data/vendor/assets/javascripts/codemirror/mode/clike/index.html +225 -0
  54. data/vendor/assets/javascripts/codemirror/mode/clike/scala.html +767 -0
  55. data/vendor/assets/javascripts/codemirror/mode/clojure/clojure.js +243 -0
  56. data/vendor/assets/javascripts/codemirror/mode/clojure/index.html +88 -0
  57. data/vendor/assets/javascripts/codemirror/mode/cobol/cobol.js +255 -0
  58. data/vendor/assets/javascripts/codemirror/mode/cobol/index.html +210 -0
  59. data/vendor/assets/javascripts/codemirror/mode/coffeescript/coffeescript.js +369 -0
  60. data/vendor/assets/javascripts/codemirror/mode/coffeescript/index.html +740 -0
  61. data/vendor/assets/javascripts/codemirror/mode/commonlisp/commonlisp.js +120 -0
  62. data/vendor/assets/javascripts/codemirror/mode/commonlisp/index.html +177 -0
  63. data/vendor/assets/javascripts/codemirror/mode/css/css.js +717 -0
  64. data/vendor/assets/javascripts/codemirror/mode/css/index.html +70 -0
  65. data/vendor/assets/javascripts/codemirror/mode/css/less.html +152 -0
  66. data/vendor/assets/javascripts/codemirror/mode/css/less_test.js +51 -0
  67. data/vendor/assets/javascripts/codemirror/mode/css/scss.html +157 -0
  68. data/vendor/assets/javascripts/codemirror/mode/css/scss_test.js +110 -0
  69. data/vendor/assets/javascripts/codemirror/mode/css/test.js +135 -0
  70. data/vendor/assets/javascripts/codemirror/mode/cypher/cypher.js +146 -0
  71. data/vendor/assets/javascripts/codemirror/mode/cypher/index.html +63 -0
  72. data/vendor/assets/javascripts/codemirror/mode/d/d.js +218 -0
  73. data/vendor/assets/javascripts/codemirror/mode/d/index.html +273 -0
  74. data/vendor/assets/javascripts/codemirror/mode/diff/diff.js +47 -0
  75. data/vendor/assets/javascripts/codemirror/mode/diff/index.html +117 -0
  76. data/vendor/assets/javascripts/codemirror/mode/django/django.js +67 -0
  77. data/vendor/assets/javascripts/codemirror/mode/django/index.html +63 -0
  78. data/vendor/assets/javascripts/codemirror/mode/dtd/dtd.js +142 -0
  79. data/vendor/assets/javascripts/codemirror/mode/dtd/index.html +89 -0
  80. data/vendor/assets/javascripts/codemirror/mode/dylan/dylan.js +299 -0
  81. data/vendor/assets/javascripts/codemirror/mode/dylan/index.html +407 -0
  82. data/vendor/assets/javascripts/codemirror/mode/ecl/ecl.js +207 -0
  83. data/vendor/assets/javascripts/codemirror/mode/ecl/index.html +52 -0
  84. data/vendor/assets/javascripts/codemirror/mode/eiffel/eiffel.js +162 -0
  85. data/vendor/assets/javascripts/codemirror/mode/eiffel/index.html +429 -0
  86. data/vendor/assets/javascripts/codemirror/mode/erlang/erlang.js +622 -0
  87. data/vendor/assets/javascripts/codemirror/mode/erlang/index.html +76 -0
  88. data/vendor/assets/javascripts/codemirror/mode/fortran/fortran.js +188 -0
  89. data/vendor/assets/javascripts/codemirror/mode/fortran/index.html +81 -0
  90. data/vendor/assets/javascripts/codemirror/mode/gas/gas.js +345 -0
  91. data/vendor/assets/javascripts/codemirror/mode/gas/index.html +68 -0
  92. data/vendor/assets/javascripts/codemirror/mode/gfm/gfm.js +122 -0
  93. data/vendor/assets/javascripts/codemirror/mode/gfm/index.html +82 -0
  94. data/vendor/assets/javascripts/codemirror/mode/gfm/test.js +164 -0
  95. data/vendor/assets/javascripts/codemirror/mode/gherkin/gherkin.js +178 -0
  96. data/vendor/assets/javascripts/codemirror/mode/gherkin/index.html +48 -0
  97. data/vendor/assets/javascripts/codemirror/mode/go/go.js +184 -0
  98. data/vendor/assets/javascripts/codemirror/mode/go/index.html +85 -0
  99. data/vendor/assets/javascripts/codemirror/mode/groovy/groovy.js +226 -0
  100. data/vendor/assets/javascripts/codemirror/mode/groovy/index.html +84 -0
  101. data/vendor/assets/javascripts/codemirror/mode/haml/haml.js +159 -0
  102. data/vendor/assets/javascripts/codemirror/mode/haml/index.html +79 -0
  103. data/vendor/assets/javascripts/codemirror/mode/haml/test.js +97 -0
  104. data/vendor/assets/javascripts/codemirror/mode/haskell/haskell.js +267 -0
  105. data/vendor/assets/javascripts/codemirror/mode/haskell/index.html +73 -0
  106. data/vendor/assets/javascripts/codemirror/mode/haxe/haxe.js +518 -0
  107. data/vendor/assets/javascripts/codemirror/mode/haxe/index.html +124 -0
  108. data/vendor/assets/javascripts/codemirror/mode/htmlembedded/htmlembedded.js +86 -0
  109. data/vendor/assets/javascripts/codemirror/mode/htmlembedded/index.html +58 -0
  110. data/vendor/assets/javascripts/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  111. data/vendor/assets/javascripts/codemirror/mode/htmlmixed/index.html +85 -0
  112. data/vendor/assets/javascripts/codemirror/mode/http/http.js +113 -0
  113. data/vendor/assets/javascripts/codemirror/mode/http/index.html +45 -0
  114. data/vendor/assets/javascripts/codemirror/mode/index.html +125 -0
  115. data/vendor/assets/javascripts/codemirror/mode/jade/index.html +70 -0
  116. data/vendor/assets/javascripts/codemirror/mode/jade/jade.js +590 -0
  117. data/vendor/assets/javascripts/codemirror/mode/javascript/index.html +114 -0
  118. data/vendor/assets/javascripts/codemirror/mode/javascript/javascript.js +684 -0
  119. data/vendor/assets/javascripts/codemirror/mode/javascript/json-ld.html +72 -0
  120. data/vendor/assets/javascripts/codemirror/mode/javascript/test.js +194 -0
  121. data/vendor/assets/javascripts/codemirror/mode/javascript/typescript.html +61 -0
  122. data/vendor/assets/javascripts/codemirror/mode/jinja2/index.html +54 -0
  123. data/vendor/assets/javascripts/codemirror/mode/jinja2/jinja2.js +142 -0
  124. data/vendor/assets/javascripts/codemirror/mode/julia/index.html +195 -0
  125. data/vendor/assets/javascripts/codemirror/mode/julia/julia.js +301 -0
  126. data/vendor/assets/javascripts/codemirror/mode/kotlin/index.html +89 -0
  127. data/vendor/assets/javascripts/codemirror/mode/kotlin/kotlin.js +280 -0
  128. data/vendor/assets/javascripts/codemirror/mode/livescript/index.html +459 -0
  129. data/vendor/assets/javascripts/codemirror/mode/livescript/livescript.js +280 -0
  130. data/vendor/assets/javascripts/codemirror/mode/lua/index.html +85 -0
  131. data/vendor/assets/javascripts/codemirror/mode/lua/lua.js +159 -0
  132. data/vendor/assets/javascripts/codemirror/mode/markdown/index.html +359 -0
  133. data/vendor/assets/javascripts/codemirror/mode/markdown/markdown.js +758 -0
  134. data/vendor/assets/javascripts/codemirror/mode/markdown/test.js +754 -0
  135. data/vendor/assets/javascripts/codemirror/mode/meta.js +144 -0
  136. data/vendor/assets/javascripts/codemirror/mode/mirc/index.html +160 -0
  137. data/vendor/assets/javascripts/codemirror/mode/mirc/mirc.js +193 -0
  138. data/vendor/assets/javascripts/codemirror/mode/mllike/index.html +179 -0
  139. data/vendor/assets/javascripts/codemirror/mode/mllike/mllike.js +205 -0
  140. data/vendor/assets/javascripts/codemirror/mode/modelica/index.html +67 -0
  141. data/vendor/assets/javascripts/codemirror/mode/modelica/modelica.js +245 -0
  142. data/vendor/assets/javascripts/codemirror/mode/nginx/index.html +181 -0
  143. data/vendor/assets/javascripts/codemirror/mode/nginx/nginx.js +178 -0
  144. data/vendor/assets/javascripts/codemirror/mode/ntriples/index.html +45 -0
  145. data/vendor/assets/javascripts/codemirror/mode/ntriples/ntriples.js +186 -0
  146. data/vendor/assets/javascripts/codemirror/mode/octave/index.html +83 -0
  147. data/vendor/assets/javascripts/codemirror/mode/octave/octave.js +135 -0
  148. data/vendor/assets/javascripts/codemirror/mode/pascal/index.html +61 -0
  149. data/vendor/assets/javascripts/codemirror/mode/pascal/pascal.js +109 -0
  150. data/vendor/assets/javascripts/codemirror/mode/pegjs/index.html +66 -0
  151. data/vendor/assets/javascripts/codemirror/mode/pegjs/pegjs.js +114 -0
  152. data/vendor/assets/javascripts/codemirror/mode/perl/index.html +75 -0
  153. data/vendor/assets/javascripts/codemirror/mode/perl/perl.js +832 -0
  154. data/vendor/assets/javascripts/codemirror/mode/php/index.html +64 -0
  155. data/vendor/assets/javascripts/codemirror/mode/php/php.js +226 -0
  156. data/vendor/assets/javascripts/codemirror/mode/php/test.js +154 -0
  157. data/vendor/assets/javascripts/codemirror/mode/pig/index.html +55 -0
  158. data/vendor/assets/javascripts/codemirror/mode/pig/pig.js +188 -0
  159. data/vendor/assets/javascripts/codemirror/mode/properties/index.html +53 -0
  160. data/vendor/assets/javascripts/codemirror/mode/properties/properties.js +78 -0
  161. data/vendor/assets/javascripts/codemirror/mode/puppet/index.html +121 -0
  162. data/vendor/assets/javascripts/codemirror/mode/puppet/puppet.js +220 -0
  163. data/vendor/assets/javascripts/codemirror/mode/python/index.html +198 -0
  164. data/vendor/assets/javascripts/codemirror/mode/python/python.js +359 -0
  165. data/vendor/assets/javascripts/codemirror/mode/q/index.html +144 -0
  166. data/vendor/assets/javascripts/codemirror/mode/q/q.js +139 -0
  167. data/vendor/assets/javascripts/codemirror/mode/r/index.html +85 -0
  168. data/vendor/assets/javascripts/codemirror/mode/r/r.js +162 -0
  169. data/vendor/assets/javascripts/codemirror/mode/rpm/changes/index.html +66 -0
  170. data/vendor/assets/javascripts/codemirror/mode/rpm/index.html +149 -0
  171. data/vendor/assets/javascripts/codemirror/mode/rpm/rpm.js +101 -0
  172. data/vendor/assets/javascripts/codemirror/mode/rst/index.html +535 -0
  173. data/vendor/assets/javascripts/codemirror/mode/rst/rst.js +557 -0
  174. data/vendor/assets/javascripts/codemirror/mode/ruby/index.html +184 -0
  175. data/vendor/assets/javascripts/codemirror/mode/ruby/ruby.js +285 -0
  176. data/vendor/assets/javascripts/codemirror/mode/ruby/test.js +14 -0
  177. data/vendor/assets/javascripts/codemirror/mode/rust/index.html +60 -0
  178. data/vendor/assets/javascripts/codemirror/mode/rust/rust.js +451 -0
  179. data/vendor/assets/javascripts/codemirror/mode/sass/index.html +66 -0
  180. data/vendor/assets/javascripts/codemirror/mode/sass/sass.js +327 -0
  181. data/vendor/assets/javascripts/codemirror/mode/scheme/index.html +77 -0
  182. data/vendor/assets/javascripts/codemirror/mode/scheme/scheme.js +248 -0
  183. data/vendor/assets/javascripts/codemirror/mode/shell/index.html +66 -0
  184. data/vendor/assets/javascripts/codemirror/mode/shell/shell.js +138 -0
  185. data/vendor/assets/javascripts/codemirror/mode/shell/test.js +58 -0
  186. data/vendor/assets/javascripts/codemirror/mode/sieve/index.html +93 -0
  187. data/vendor/assets/javascripts/codemirror/mode/sieve/sieve.js +193 -0
  188. data/vendor/assets/javascripts/codemirror/mode/slim/index.html +96 -0
  189. data/vendor/assets/javascripts/codemirror/mode/slim/slim.js +575 -0
  190. data/vendor/assets/javascripts/codemirror/mode/slim/test.js +96 -0
  191. data/vendor/assets/javascripts/codemirror/mode/smalltalk/index.html +68 -0
  192. data/vendor/assets/javascripts/codemirror/mode/smalltalk/smalltalk.js +168 -0
  193. data/vendor/assets/javascripts/codemirror/mode/smarty/index.html +136 -0
  194. data/vendor/assets/javascripts/codemirror/mode/smarty/smarty.js +221 -0
  195. data/vendor/assets/javascripts/codemirror/mode/smartymixed/index.html +114 -0
  196. data/vendor/assets/javascripts/codemirror/mode/smartymixed/smartymixed.js +197 -0
  197. data/vendor/assets/javascripts/codemirror/mode/solr/index.html +57 -0
  198. data/vendor/assets/javascripts/codemirror/mode/solr/solr.js +104 -0
  199. data/vendor/assets/javascripts/codemirror/mode/sparql/index.html +53 -0
  200. data/vendor/assets/javascripts/codemirror/mode/sparql/sparql.js +160 -0
  201. data/vendor/assets/javascripts/codemirror/mode/sql/index.html +84 -0
  202. data/vendor/assets/javascripts/codemirror/mode/sql/sql.js +393 -0
  203. data/vendor/assets/javascripts/codemirror/mode/stex/index.html +110 -0
  204. data/vendor/assets/javascripts/codemirror/mode/stex/stex.js +262 -0
  205. data/vendor/assets/javascripts/codemirror/mode/stex/test.js +123 -0
  206. data/vendor/assets/javascripts/codemirror/mode/tcl/index.html +142 -0
  207. data/vendor/assets/javascripts/codemirror/mode/tcl/tcl.js +147 -0
  208. data/vendor/assets/javascripts/codemirror/mode/textile/index.html +191 -0
  209. data/vendor/assets/javascripts/codemirror/mode/textile/test.js +406 -0
  210. data/vendor/assets/javascripts/codemirror/mode/textile/textile.js +553 -0
  211. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/index.html +154 -0
  212. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  213. data/vendor/assets/javascripts/codemirror/mode/tiddlywiki/tiddlywiki.js +369 -0
  214. data/vendor/assets/javascripts/codemirror/mode/tiki/index.html +95 -0
  215. data/vendor/assets/javascripts/codemirror/mode/tiki/tiki.css +26 -0
  216. data/vendor/assets/javascripts/codemirror/mode/tiki/tiki.js +323 -0
  217. data/vendor/assets/javascripts/codemirror/mode/toml/index.html +73 -0
  218. data/vendor/assets/javascripts/codemirror/mode/toml/toml.js +88 -0
  219. data/vendor/assets/javascripts/codemirror/mode/tornado/index.html +63 -0
  220. data/vendor/assets/javascripts/codemirror/mode/tornado/tornado.js +68 -0
  221. data/vendor/assets/javascripts/codemirror/mode/turtle/index.html +50 -0
  222. data/vendor/assets/javascripts/codemirror/mode/turtle/turtle.js +160 -0
  223. data/vendor/assets/javascripts/codemirror/mode/vb/index.html +102 -0
  224. data/vendor/assets/javascripts/codemirror/mode/vb/vb.js +274 -0
  225. data/vendor/assets/javascripts/codemirror/mode/vbscript/index.html +55 -0
  226. data/vendor/assets/javascripts/codemirror/mode/vbscript/vbscript.js +350 -0
  227. data/vendor/assets/javascripts/codemirror/mode/velocity/index.html +118 -0
  228. data/vendor/assets/javascripts/codemirror/mode/velocity/velocity.js +201 -0
  229. data/vendor/assets/javascripts/codemirror/mode/verilog/index.html +120 -0
  230. data/vendor/assets/javascripts/codemirror/mode/verilog/test.js +273 -0
  231. data/vendor/assets/javascripts/codemirror/mode/verilog/verilog.js +364 -0
  232. data/vendor/assets/javascripts/codemirror/mode/xml/index.html +57 -0
  233. data/vendor/assets/javascripts/codemirror/mode/xml/test.js +51 -0
  234. data/vendor/assets/javascripts/codemirror/mode/xml/xml.js +384 -0
  235. data/vendor/assets/javascripts/codemirror/mode/xquery/index.html +210 -0
  236. data/vendor/assets/javascripts/codemirror/mode/xquery/test.js +67 -0
  237. data/vendor/assets/javascripts/codemirror/mode/xquery/xquery.js +447 -0
  238. data/vendor/assets/javascripts/codemirror/mode/yaml/index.html +80 -0
  239. data/vendor/assets/javascripts/codemirror/mode/yaml/yaml.js +112 -0
  240. data/vendor/assets/javascripts/codemirror/mode/z80/index.html +52 -0
  241. data/vendor/assets/javascripts/codemirror/mode/z80/z80.js +100 -0
  242. data/vendor/assets/javascripts/datapicker/bootstrap-datepicker.js +1671 -0
  243. data/vendor/assets/javascripts/flot/curvedLines.js +315 -0
  244. data/vendor/assets/javascripts/flot/excanvas.min.js +1 -0
  245. data/vendor/assets/javascripts/flot/jquery.flot.js +3168 -0
  246. data/vendor/assets/javascripts/flot/jquery.flot.pie.js +820 -0
  247. data/vendor/assets/javascripts/flot/jquery.flot.resize.js +59 -0
  248. data/vendor/assets/javascripts/flot/jquery.flot.spline.js +212 -0
  249. data/vendor/assets/javascripts/flot/jquery.flot.symbol.js +71 -0
  250. data/vendor/assets/javascripts/flot/jquery.flot.time.js +432 -0
  251. data/vendor/assets/javascripts/flot/jquery.flot.tooltip.min.js +12 -0
  252. data/vendor/assets/javascripts/jquery/jquery-2.1.1.js +4 -0
  253. data/vendor/assets/javascripts/jquery-ui/i18n/jquery-ui-i18n.min.js +6 -0
  254. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-af.min.js +4 -0
  255. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ar-DZ.min.js +4 -0
  256. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ar.min.js +4 -0
  257. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-az.min.js +4 -0
  258. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-be.min.js +4 -0
  259. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-bg.min.js +4 -0
  260. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-bs.min.js +4 -0
  261. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ca.min.js +4 -0
  262. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-cs.min.js +4 -0
  263. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-cy-GB.min.js +4 -0
  264. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-da.min.js +4 -0
  265. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-de.min.js +4 -0
  266. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-el.min.js +4 -0
  267. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-AU.min.js +4 -0
  268. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-GB.min.js +4 -0
  269. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-en-NZ.min.js +4 -0
  270. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-eo.min.js +4 -0
  271. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-es.min.js +4 -0
  272. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-et.min.js +4 -0
  273. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-eu.min.js +4 -0
  274. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fa.min.js +4 -0
  275. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fi.min.js +4 -0
  276. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fo.min.js +4 -0
  277. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr-CA.min.js +4 -0
  278. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr-CH.min.js +4 -0
  279. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-fr.min.js +4 -0
  280. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-gl.min.js +4 -0
  281. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-he.min.js +4 -0
  282. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hi.min.js +4 -0
  283. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hr.min.js +4 -0
  284. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hu.min.js +4 -0
  285. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-hy.min.js +4 -0
  286. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-id.min.js +4 -0
  287. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-is.min.js +4 -0
  288. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-it.min.js +4 -0
  289. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ja.min.js +4 -0
  290. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ka.min.js +4 -0
  291. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-kk.min.js +4 -0
  292. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-km.min.js +4 -0
  293. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ko.min.js +4 -0
  294. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ky.min.js +4 -0
  295. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lb.min.js +4 -0
  296. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lt.min.js +4 -0
  297. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-lv.min.js +4 -0
  298. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-mk.min.js +4 -0
  299. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ml.min.js +4 -0
  300. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ms.min.js +4 -0
  301. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nb.min.js +4 -0
  302. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nl-BE.min.js +4 -0
  303. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nl.min.js +4 -0
  304. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-nn.min.js +4 -0
  305. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-no.min.js +4 -0
  306. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pl.min.js +4 -0
  307. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pt-BR.min.js +4 -0
  308. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-pt.min.js +4 -0
  309. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-rm.min.js +4 -0
  310. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ro.min.js +4 -0
  311. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ru.min.js +4 -0
  312. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sk.min.js +4 -0
  313. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sl.min.js +4 -0
  314. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sq.min.js +4 -0
  315. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sr-SR.min.js +4 -0
  316. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sr.min.js +4 -0
  317. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-sv.min.js +4 -0
  318. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-ta.min.js +4 -0
  319. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-th.min.js +4 -0
  320. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-tj.min.js +4 -0
  321. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-tr.min.js +4 -0
  322. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-uk.min.js +4 -0
  323. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-vi.min.js +4 -0
  324. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-CN.min.js +4 -0
  325. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-HK.min.js +4 -0
  326. data/vendor/assets/javascripts/jquery-ui/i18n/jquery.ui.datepicker-zh-TW.min.js +4 -0
  327. data/vendor/assets/javascripts/jquery-ui/images/animated-overlay.gif +0 -0
  328. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  329. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  330. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  331. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  332. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  333. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  334. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  335. data/vendor/assets/javascripts/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  336. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  337. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_2e83ff_256x240.png +0 -0
  338. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_454545_256x240.png +0 -0
  339. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_888888_256x240.png +0 -0
  340. data/vendor/assets/javascripts/jquery-ui/images/ui-icons_cd0a0a_256x240.png +0 -0
  341. data/vendor/assets/javascripts/jquery-ui/jquery-ui-1.10.4.custom.min.css +7 -0
  342. data/vendor/assets/javascripts/jquery-ui/jquery-ui-1.10.4.min.js +7 -0
  343. data/vendor/assets/javascripts/jquery-ui/jquery-ui.css +1189 -0
  344. data/vendor/assets/javascripts/jquery-ui/jquery-ui.js +15040 -0
  345. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.css +4 -0
  346. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.js +12 -0
  347. data/vendor/assets/javascripts/metisMenu/jquery.metisMenu.js +120 -0
  348. data/vendor/assets/javascripts/morris/morris.js +1888 -0
  349. data/vendor/assets/javascripts/morris/raphael-2.1.0.min.js +10 -0
  350. data/vendor/assets/javascripts/pace/pace.min.js +2 -0
  351. data/vendor/assets/javascripts/peity/jquery.peity.min.js +13 -0
  352. data/vendor/assets/javascripts/radioactive/radioactive.min.js +1 -0
  353. data/vendor/assets/javascripts/rickshaw/rickshaw.min.js +3 -0
  354. data/vendor/assets/javascripts/rickshaw/vendor/d3.v3.js +5 -0
  355. data/vendor/assets/javascripts/sparkline/jquery.sparkline.min.js +5 -0
  356. data/vendor/assets/javascripts/summernote/summernote.min.js +6331 -0
  357. data/vendor/assets/javascripts/toastr/toastr.min.js +2 -0
  358. data/vendor/assets/stylesheets/codemirror/codemirror.css +309 -0
  359. data/vendor/assets/stylesheets/codemirror/elegant.css +13 -0
  360. data/vendor/assets/stylesheets/datapicker/datepicker3.css +789 -0
  361. data/vendor/assets/stylesheets/summernote/summernote-bs3.css +5970 -0
  362. data/vendor/assets/stylesheets/summernote/summernote.css +446 -0
  363. data/vendor/assets/stylesheets/toastr/toastr.css +222 -0
  364. metadata +362 -3
  365. data/spec/dummy/tmp/pids/server.pid +0 -1
@@ -0,0 +1,299 @@
1
+ // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: http://codemirror.net/LICENSE
3
+
4
+ (function(mod) {
5
+ if (typeof exports == "object" && typeof module == "object") // CommonJS
6
+ mod(require("../../lib/codemirror"));
7
+ else if (typeof define == "function" && define.amd) // AMD
8
+ define(["../../lib/codemirror"], mod);
9
+ else // Plain browser env
10
+ mod(CodeMirror);
11
+ })(function(CodeMirror) {
12
+ "use strict";
13
+
14
+ CodeMirror.defineMode("dylan", function(_config) {
15
+ // Words
16
+ var words = {
17
+ // Words that introduce unnamed definitions like "define interface"
18
+ unnamedDefinition: ["interface"],
19
+
20
+ // Words that introduce simple named definitions like "define library"
21
+ namedDefinition: ["module", "library", "macro",
22
+ "C-struct", "C-union",
23
+ "C-function", "C-callable-wrapper"
24
+ ],
25
+
26
+ // Words that introduce type definitions like "define class".
27
+ // These are also parameterized like "define method" and are
28
+ // appended to otherParameterizedDefinitionWords
29
+ typeParameterizedDefinition: ["class", "C-subtype", "C-mapped-subtype"],
30
+
31
+ // Words that introduce trickier definitions like "define method".
32
+ // These require special definitions to be added to startExpressions
33
+ otherParameterizedDefinition: ["method", "function",
34
+ "C-variable", "C-address"
35
+ ],
36
+
37
+ // Words that introduce module constant definitions.
38
+ // These must also be simple definitions and are
39
+ // appended to otherSimpleDefinitionWords
40
+ constantSimpleDefinition: ["constant"],
41
+
42
+ // Words that introduce module variable definitions.
43
+ // These must also be simple definitions and are
44
+ // appended to otherSimpleDefinitionWords
45
+ variableSimpleDefinition: ["variable"],
46
+
47
+ // Other words that introduce simple definitions
48
+ // (without implicit bodies).
49
+ otherSimpleDefinition: ["generic", "domain",
50
+ "C-pointer-type",
51
+ "table"
52
+ ],
53
+
54
+ // Words that begin statements with implicit bodies.
55
+ statement: ["if", "block", "begin", "method", "case",
56
+ "for", "select", "when", "unless", "until",
57
+ "while", "iterate", "profiling", "dynamic-bind"
58
+ ],
59
+
60
+ // Patterns that act as separators in compound statements.
61
+ // This may include any general pattern that must be indented
62
+ // specially.
63
+ separator: ["finally", "exception", "cleanup", "else",
64
+ "elseif", "afterwards"
65
+ ],
66
+
67
+ // Keywords that do not require special indentation handling,
68
+ // but which should be highlighted
69
+ other: ["above", "below", "by", "from", "handler", "in",
70
+ "instance", "let", "local", "otherwise", "slot",
71
+ "subclass", "then", "to", "keyed-by", "virtual"
72
+ ],
73
+
74
+ // Condition signaling function calls
75
+ signalingCalls: ["signal", "error", "cerror",
76
+ "break", "check-type", "abort"
77
+ ]
78
+ };
79
+
80
+ words["otherDefinition"] =
81
+ words["unnamedDefinition"]
82
+ .concat(words["namedDefinition"])
83
+ .concat(words["otherParameterizedDefinition"]);
84
+
85
+ words["definition"] =
86
+ words["typeParameterizedDefinition"]
87
+ .concat(words["otherDefinition"]);
88
+
89
+ words["parameterizedDefinition"] =
90
+ words["typeParameterizedDefinition"]
91
+ .concat(words["otherParameterizedDefinition"]);
92
+
93
+ words["simpleDefinition"] =
94
+ words["constantSimpleDefinition"]
95
+ .concat(words["variableSimpleDefinition"])
96
+ .concat(words["otherSimpleDefinition"]);
97
+
98
+ words["keyword"] =
99
+ words["statement"]
100
+ .concat(words["separator"])
101
+ .concat(words["other"]);
102
+
103
+ // Patterns
104
+ var symbolPattern = "[-_a-zA-Z?!*@<>$%]+";
105
+ var symbol = new RegExp("^" + symbolPattern);
106
+ var patterns = {
107
+ // Symbols with special syntax
108
+ symbolKeyword: symbolPattern + ":",
109
+ symbolClass: "<" + symbolPattern + ">",
110
+ symbolGlobal: "\\*" + symbolPattern + "\\*",
111
+ symbolConstant: "\\$" + symbolPattern
112
+ };
113
+ var patternStyles = {
114
+ symbolKeyword: "atom",
115
+ symbolClass: "tag",
116
+ symbolGlobal: "variable-2",
117
+ symbolConstant: "variable-3"
118
+ };
119
+
120
+ // Compile all patterns to regular expressions
121
+ for (var patternName in patterns)
122
+ if (patterns.hasOwnProperty(patternName))
123
+ patterns[patternName] = new RegExp("^" + patterns[patternName]);
124
+
125
+ // Names beginning "with-" and "without-" are commonly
126
+ // used as statement macro
127
+ patterns["keyword"] = [/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];
128
+
129
+ var styles = {};
130
+ styles["keyword"] = "keyword";
131
+ styles["definition"] = "def";
132
+ styles["simpleDefinition"] = "def";
133
+ styles["signalingCalls"] = "builtin";
134
+
135
+ // protected words lookup table
136
+ var wordLookup = {};
137
+ var styleLookup = {};
138
+
139
+ [
140
+ "keyword",
141
+ "definition",
142
+ "simpleDefinition",
143
+ "signalingCalls"
144
+ ].forEach(function(type) {
145
+ words[type].forEach(function(word) {
146
+ wordLookup[word] = type;
147
+ styleLookup[word] = styles[type];
148
+ });
149
+ });
150
+
151
+
152
+ function chain(stream, state, f) {
153
+ state.tokenize = f;
154
+ return f(stream, state);
155
+ }
156
+
157
+ var type, content;
158
+
159
+ function ret(_type, style, _content) {
160
+ type = _type;
161
+ content = _content;
162
+ return style;
163
+ }
164
+
165
+ function tokenBase(stream, state) {
166
+ // String
167
+ var ch = stream.peek();
168
+ if (ch == "'" || ch == '"') {
169
+ stream.next();
170
+ return chain(stream, state, tokenString(ch, "string", "string"));
171
+ }
172
+ // Comment
173
+ else if (ch == "/") {
174
+ stream.next();
175
+ if (stream.eat("*")) {
176
+ return chain(stream, state, tokenComment);
177
+ } else if (stream.eat("/")) {
178
+ stream.skipToEnd();
179
+ return ret("comment", "comment");
180
+ } else {
181
+ stream.skipTo(" ");
182
+ return ret("operator", "operator");
183
+ }
184
+ }
185
+ // Decimal
186
+ else if (/\d/.test(ch)) {
187
+ stream.match(/^\d*(?:\.\d*)?(?:e[+\-]?\d+)?/);
188
+ return ret("number", "number");
189
+ }
190
+ // Hash
191
+ else if (ch == "#") {
192
+ stream.next();
193
+ // Symbol with string syntax
194
+ ch = stream.peek();
195
+ if (ch == '"') {
196
+ stream.next();
197
+ return chain(stream, state, tokenString('"', "symbol", "string-2"));
198
+ }
199
+ // Binary number
200
+ else if (ch == "b") {
201
+ stream.next();
202
+ stream.eatWhile(/[01]/);
203
+ return ret("number", "number");
204
+ }
205
+ // Hex number
206
+ else if (ch == "x") {
207
+ stream.next();
208
+ stream.eatWhile(/[\da-f]/i);
209
+ return ret("number", "number");
210
+ }
211
+ // Octal number
212
+ else if (ch == "o") {
213
+ stream.next();
214
+ stream.eatWhile(/[0-7]/);
215
+ return ret("number", "number");
216
+ }
217
+ // Hash symbol
218
+ else {
219
+ stream.eatWhile(/[-a-zA-Z]/);
220
+ return ret("hash", "keyword");
221
+ }
222
+ } else if (stream.match("end")) {
223
+ return ret("end", "keyword");
224
+ }
225
+ for (var name in patterns) {
226
+ if (patterns.hasOwnProperty(name)) {
227
+ var pattern = patterns[name];
228
+ if ((pattern instanceof Array && pattern.some(function(p) {
229
+ return stream.match(p);
230
+ })) || stream.match(pattern))
231
+ return ret(name, patternStyles[name], stream.current());
232
+ }
233
+ }
234
+ if (stream.match("define")) {
235
+ return ret("definition", "def");
236
+ } else {
237
+ stream.eatWhile(/[\w\-]/);
238
+ // Keyword
239
+ if (wordLookup[stream.current()]) {
240
+ return ret(wordLookup[stream.current()], styleLookup[stream.current()], stream.current());
241
+ } else if (stream.current().match(symbol)) {
242
+ return ret("variable", "variable");
243
+ } else {
244
+ stream.next();
245
+ return ret("other", "variable-2");
246
+ }
247
+ }
248
+ }
249
+
250
+ function tokenComment(stream, state) {
251
+ var maybeEnd = false,
252
+ ch;
253
+ while ((ch = stream.next())) {
254
+ if (ch == "/" && maybeEnd) {
255
+ state.tokenize = tokenBase;
256
+ break;
257
+ }
258
+ maybeEnd = (ch == "*");
259
+ }
260
+ return ret("comment", "comment");
261
+ }
262
+
263
+ function tokenString(quote, type, style) {
264
+ return function(stream, state) {
265
+ var next, end = false;
266
+ while ((next = stream.next()) != null) {
267
+ if (next == quote) {
268
+ end = true;
269
+ break;
270
+ }
271
+ }
272
+ if (end)
273
+ state.tokenize = tokenBase;
274
+ return ret(type, style);
275
+ };
276
+ }
277
+
278
+ // Interface
279
+ return {
280
+ startState: function() {
281
+ return {
282
+ tokenize: tokenBase,
283
+ currentIndent: 0
284
+ };
285
+ },
286
+ token: function(stream, state) {
287
+ if (stream.eatSpace())
288
+ return null;
289
+ var style = state.tokenize(stream, state);
290
+ return style;
291
+ },
292
+ blockCommentStart: "/*",
293
+ blockCommentEnd: "*/"
294
+ };
295
+ });
296
+
297
+ CodeMirror.defineMIME("text/x-dylan", "dylan");
298
+
299
+ });
@@ -0,0 +1,407 @@
1
+ <!doctype html>
2
+
3
+ <title>CodeMirror: Dylan 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
+ <script src="../../lib/codemirror.js"></script>
9
+ <script src="../../addon/edit/matchbrackets.js"></script>
10
+ <script src="../../addon/comment/continuecomment.js"></script>
11
+ <script src="../../addon/comment/comment.js"></script>
12
+ <script src="dylan.js"></script>
13
+ <style type="text/css">.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;}</style>
14
+ <div id=nav>
15
+ <a href="http://codemirror.net"><h1>CodeMirror</h1><img id=logo src="../../doc/logo.png"></a>
16
+
17
+ <ul>
18
+ <li><a href="../../index.html">Home</a>
19
+ <li><a href="../../doc/manual.html">Manual</a>
20
+ <li><a href="https://github.com/codemirror/codemirror">Code</a>
21
+ </ul>
22
+ <ul>
23
+ <li><a href="../index.html">Language modes</a>
24
+ <li><a class=active href="#">Dylan</a>
25
+ </ul>
26
+ </div>
27
+
28
+ <article>
29
+ <h2>Dylan mode</h2>
30
+
31
+
32
+ <div><textarea id="code" name="code">
33
+ Module: locators-internals
34
+ Synopsis: Abstract modeling of locations
35
+ Author: Andy Armstrong
36
+ Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
37
+ All rights reserved.
38
+ License: See License.txt in this distribution for details.
39
+ Warranty: Distributed WITHOUT WARRANTY OF ANY KIND
40
+
41
+ define open generic locator-server
42
+ (locator :: <locator>) => (server :: false-or(<server-locator>));
43
+ define open generic locator-host
44
+ (locator :: <locator>) => (host :: false-or(<string>));
45
+ define open generic locator-volume
46
+ (locator :: <locator>) => (volume :: false-or(<string>));
47
+ define open generic locator-directory
48
+ (locator :: <locator>) => (directory :: false-or(<directory-locator>));
49
+ define open generic locator-relative?
50
+ (locator :: <locator>) => (relative? :: <boolean>);
51
+ define open generic locator-path
52
+ (locator :: <locator>) => (path :: <sequence>);
53
+ define open generic locator-base
54
+ (locator :: <locator>) => (base :: false-or(<string>));
55
+ define open generic locator-extension
56
+ (locator :: <locator>) => (extension :: false-or(<string>));
57
+
58
+ /// Locator classes
59
+
60
+ define open abstract class <directory-locator> (<physical-locator>)
61
+ end class <directory-locator>;
62
+
63
+ define open abstract class <file-locator> (<physical-locator>)
64
+ end class <file-locator>;
65
+
66
+ define method as
67
+ (class == <directory-locator>, string :: <string>)
68
+ => (locator :: <directory-locator>)
69
+ as(<native-directory-locator>, string)
70
+ end method as;
71
+
72
+ define method make
73
+ (class == <directory-locator>,
74
+ #key server :: false-or(<server-locator>) = #f,
75
+ path :: <sequence> = #[],
76
+ relative? :: <boolean> = #f,
77
+ name :: false-or(<string>) = #f)
78
+ => (locator :: <directory-locator>)
79
+ make(<native-directory-locator>,
80
+ server: server,
81
+ path: path,
82
+ relative?: relative?,
83
+ name: name)
84
+ end method make;
85
+
86
+ define method as
87
+ (class == <file-locator>, string :: <string>)
88
+ => (locator :: <file-locator>)
89
+ as(<native-file-locator>, string)
90
+ end method as;
91
+
92
+ define method make
93
+ (class == <file-locator>,
94
+ #key directory :: false-or(<directory-locator>) = #f,
95
+ base :: false-or(<string>) = #f,
96
+ extension :: false-or(<string>) = #f,
97
+ name :: false-or(<string>) = #f)
98
+ => (locator :: <file-locator>)
99
+ make(<native-file-locator>,
100
+ directory: directory,
101
+ base: base,
102
+ extension: extension,
103
+ name: name)
104
+ end method make;
105
+
106
+ /// Locator coercion
107
+
108
+ //---*** andrewa: This caching scheme doesn't work yet, so disable it.
109
+ define constant $cache-locators? = #f;
110
+ define constant $cache-locator-strings? = #f;
111
+
112
+ define constant $locator-to-string-cache = make(<object-table>, weak: #"key");
113
+ define constant $string-to-locator-cache = make(<string-table>, weak: #"value");
114
+
115
+ define open generic locator-as-string
116
+ (class :: subclass(<string>), locator :: <locator>)
117
+ => (string :: <string>);
118
+
119
+ define open generic string-as-locator
120
+ (class :: subclass(<locator>), string :: <string>)
121
+ => (locator :: <locator>);
122
+
123
+ define sealed sideways method as
124
+ (class :: subclass(<string>), locator :: <locator>)
125
+ => (string :: <string>)
126
+ let string = element($locator-to-string-cache, locator, default: #f);
127
+ if (string)
128
+ as(class, string)
129
+ else
130
+ let string = locator-as-string(class, locator);
131
+ if ($cache-locator-strings?)
132
+ element($locator-to-string-cache, locator) := string;
133
+ else
134
+ string
135
+ end
136
+ end
137
+ end method as;
138
+
139
+ define sealed sideways method as
140
+ (class :: subclass(<locator>), string :: <string>)
141
+ => (locator :: <locator>)
142
+ let locator = element($string-to-locator-cache, string, default: #f);
143
+ if (instance?(locator, class))
144
+ locator
145
+ else
146
+ let locator = string-as-locator(class, string);
147
+ if ($cache-locators?)
148
+ element($string-to-locator-cache, string) := locator;
149
+ else
150
+ locator
151
+ end
152
+ end
153
+ end method as;
154
+
155
+ /// Locator conditions
156
+
157
+ define class <locator-error> (<format-string-condition>, <error>)
158
+ end class <locator-error>;
159
+
160
+ define function locator-error
161
+ (format-string :: <string>, #rest format-arguments)
162
+ error(make(<locator-error>,
163
+ format-string: format-string,
164
+ format-arguments: format-arguments))
165
+ end function locator-error;
166
+
167
+ /// Useful locator protocols
168
+
169
+ define open generic locator-test
170
+ (locator :: <directory-locator>) => (test :: <function>);
171
+
172
+ define method locator-test
173
+ (locator :: <directory-locator>) => (test :: <function>)
174
+ \=
175
+ end method locator-test;
176
+
177
+ define open generic locator-might-have-links?
178
+ (locator :: <directory-locator>) => (links? :: <boolean>);
179
+
180
+ define method locator-might-have-links?
181
+ (locator :: <directory-locator>) => (links? :: singleton(#f))
182
+ #f
183
+ end method locator-might-have-links?;
184
+
185
+ define method locator-relative?
186
+ (locator :: <file-locator>) => (relative? :: <boolean>)
187
+ let directory = locator.locator-directory;
188
+ ~directory | directory.locator-relative?
189
+ end method locator-relative?;
190
+
191
+ define method current-directory-locator?
192
+ (locator :: <directory-locator>) => (current-directory? :: <boolean>)
193
+ locator.locator-relative?
194
+ & locator.locator-path = #[#"self"]
195
+ end method current-directory-locator?;
196
+
197
+ define method locator-directory
198
+ (locator :: <directory-locator>) => (parent :: false-or(<directory-locator>))
199
+ let path = locator.locator-path;
200
+ unless (empty?(path))
201
+ make(object-class(locator),
202
+ server: locator.locator-server,
203
+ path: copy-sequence(path, end: path.size - 1),
204
+ relative?: locator.locator-relative?)
205
+ end
206
+ end method locator-directory;
207
+
208
+ /// Simplify locator
209
+
210
+ define open generic simplify-locator
211
+ (locator :: <physical-locator>)
212
+ => (simplified-locator :: <physical-locator>);
213
+
214
+ define method simplify-locator
215
+ (locator :: <directory-locator>)
216
+ => (simplified-locator :: <directory-locator>)
217
+ let path = locator.locator-path;
218
+ let relative? = locator.locator-relative?;
219
+ let resolve-parent? = ~locator.locator-might-have-links?;
220
+ let simplified-path
221
+ = simplify-path(path,
222
+ resolve-parent?: resolve-parent?,
223
+ relative?: relative?);
224
+ if (path ~= simplified-path)
225
+ make(object-class(locator),
226
+ server: locator.locator-server,
227
+ path: simplified-path,
228
+ relative?: locator.locator-relative?)
229
+ else
230
+ locator
231
+ end
232
+ end method simplify-locator;
233
+
234
+ define method simplify-locator
235
+ (locator :: <file-locator>) => (simplified-locator :: <file-locator>)
236
+ let directory = locator.locator-directory;
237
+ let simplified-directory = directory & simplify-locator(directory);
238
+ if (directory ~= simplified-directory)
239
+ make(object-class(locator),
240
+ directory: simplified-directory,
241
+ base: locator.locator-base,
242
+ extension: locator.locator-extension)
243
+ else
244
+ locator
245
+ end
246
+ end method simplify-locator;
247
+
248
+ /// Subdirectory locator
249
+
250
+ define open generic subdirectory-locator
251
+ (locator :: <directory-locator>, #rest sub-path)
252
+ => (subdirectory :: <directory-locator>);
253
+
254
+ define method subdirectory-locator
255
+ (locator :: <directory-locator>, #rest sub-path)
256
+ => (subdirectory :: <directory-locator>)
257
+ let old-path = locator.locator-path;
258
+ let new-path = concatenate-as(<simple-object-vector>, old-path, sub-path);
259
+ make(object-class(locator),
260
+ server: locator.locator-server,
261
+ path: new-path,
262
+ relative?: locator.locator-relative?)
263
+ end method subdirectory-locator;
264
+
265
+ /// Relative locator
266
+
267
+ define open generic relative-locator
268
+ (locator :: <physical-locator>, from-locator :: <physical-locator>)
269
+ => (relative-locator :: <physical-locator>);
270
+
271
+ define method relative-locator
272
+ (locator :: <directory-locator>, from-locator :: <directory-locator>)
273
+ => (relative-locator :: <directory-locator>)
274
+ let path = locator.locator-path;
275
+ let from-path = from-locator.locator-path;
276
+ case
277
+ ~locator.locator-relative? & from-locator.locator-relative? =>
278
+ locator-error
279
+ ("Cannot find relative path of absolute locator %= from relative locator %=",
280
+ locator, from-locator);
281
+ locator.locator-server ~= from-locator.locator-server =>
282
+ locator;
283
+ path = from-path =>
284
+ make(object-class(locator),
285
+ path: vector(#"self"),
286
+ relative?: #t);
287
+ otherwise =>
288
+ make(object-class(locator),
289
+ path: relative-path(path, from-path, test: locator.locator-test),
290
+ relative?: #t);
291
+ end
292
+ end method relative-locator;
293
+
294
+ define method relative-locator
295
+ (locator :: <file-locator>, from-directory :: <directory-locator>)
296
+ => (relative-locator :: <file-locator>)
297
+ let directory = locator.locator-directory;
298
+ let relative-directory = directory & relative-locator(directory, from-directory);
299
+ if (relative-directory ~= directory)
300
+ simplify-locator
301
+ (make(object-class(locator),
302
+ directory: relative-directory,
303
+ base: locator.locator-base,
304
+ extension: locator.locator-extension))
305
+ else
306
+ locator
307
+ end
308
+ end method relative-locator;
309
+
310
+ define method relative-locator
311
+ (locator :: <physical-locator>, from-locator :: <file-locator>)
312
+ => (relative-locator :: <physical-locator>)
313
+ let from-directory = from-locator.locator-directory;
314
+ case
315
+ from-directory =>
316
+ relative-locator(locator, from-directory);
317
+ ~locator.locator-relative? =>
318
+ locator-error
319
+ ("Cannot find relative path of absolute locator %= from relative locator %=",
320
+ locator, from-locator);
321
+ otherwise =>
322
+ locator;
323
+ end
324
+ end method relative-locator;
325
+
326
+ /// Merge locators
327
+
328
+ define open generic merge-locators
329
+ (locator :: <physical-locator>, from-locator :: <physical-locator>)
330
+ => (merged-locator :: <physical-locator>);
331
+
332
+ /// Merge locators
333
+
334
+ define method merge-locators
335
+ (locator :: <directory-locator>, from-locator :: <directory-locator>)
336
+ => (merged-locator :: <directory-locator>)
337
+ if (locator.locator-relative?)
338
+ let path = concatenate(from-locator.locator-path, locator.locator-path);
339
+ simplify-locator
340
+ (make(object-class(locator),
341
+ server: from-locator.locator-server,
342
+ path: path,
343
+ relative?: from-locator.locator-relative?))
344
+ else
345
+ locator
346
+ end
347
+ end method merge-locators;
348
+
349
+ define method merge-locators
350
+ (locator :: <file-locator>, from-locator :: <directory-locator>)
351
+ => (merged-locator :: <file-locator>)
352
+ let directory = locator.locator-directory;
353
+ let merged-directory
354
+ = if (directory)
355
+ merge-locators(directory, from-locator)
356
+ else
357
+ simplify-locator(from-locator)
358
+ end;
359
+ if (merged-directory ~= directory)
360
+ make(object-class(locator),
361
+ directory: merged-directory,
362
+ base: locator.locator-base,
363
+ extension: locator.locator-extension)
364
+ else
365
+ locator
366
+ end
367
+ end method merge-locators;
368
+
369
+ define method merge-locators
370
+ (locator :: <physical-locator>, from-locator :: <file-locator>)
371
+ => (merged-locator :: <physical-locator>)
372
+ let from-directory = from-locator.locator-directory;
373
+ if (from-directory)
374
+ merge-locators(locator, from-directory)
375
+ else
376
+ locator
377
+ end
378
+ end method merge-locators;
379
+
380
+ /// Locator protocols
381
+
382
+ define sideways method supports-open-locator?
383
+ (locator :: <file-locator>) => (openable? :: <boolean>)
384
+ ~locator.locator-relative?
385
+ end method supports-open-locator?;
386
+
387
+ define sideways method open-locator
388
+ (locator :: <file-locator>, #rest keywords, #key, #all-keys)
389
+ => (stream :: <stream>)
390
+ apply(open-file-stream, locator, keywords)
391
+ end method open-locator;
392
+ </textarea></div>
393
+
394
+ <script>
395
+ var editor = CodeMirror.fromTextArea(document.getElementById("code"), {
396
+ mode: "text/x-dylan",
397
+ lineNumbers: true,
398
+ matchBrackets: true,
399
+ continueComments: "Enter",
400
+ extraKeys: {"Ctrl-Q": "toggleComment"},
401
+ tabMode: "indent",
402
+ indentUnit: 2
403
+ });
404
+ </script>
405
+
406
+ <p><strong>MIME types defined:</strong> <code>text/x-dylan</code>.</p>
407
+ </article>