utopia 2.13.3 → 2.16.0

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 (476) hide show
  1. checksums.yaml +4 -4
  2. data/bake/utopia/{yarn.rb → node.rb} +13 -5
  3. data/lib/utopia/command.rb +2 -2
  4. data/lib/utopia/command/site.rb +1 -1
  5. data/lib/utopia/content.rb +23 -19
  6. data/lib/utopia/content/link.rb +29 -34
  7. data/lib/utopia/content/links.rb +185 -123
  8. data/lib/utopia/content/markup.rb +1 -1
  9. data/lib/utopia/content/node.rb +15 -19
  10. data/lib/utopia/content/response.rb +5 -5
  11. data/lib/utopia/controller.rb +0 -17
  12. data/lib/utopia/controller/base.rb +23 -3
  13. data/lib/utopia/controller/respond.rb +50 -107
  14. data/lib/utopia/extensions/array_split.rb +2 -2
  15. data/lib/utopia/http.rb +3 -3
  16. data/lib/utopia/localization.rb +18 -10
  17. data/lib/utopia/middleware.rb +2 -2
  18. data/lib/utopia/path.rb +40 -36
  19. data/lib/utopia/redirection.rb +0 -2
  20. data/lib/utopia/responder.rb +76 -0
  21. data/lib/utopia/version.rb +1 -1
  22. data/setup/site/.gitignore +8 -7
  23. metadata +75 -607
  24. data/.codeclimate.yml +0 -5
  25. data/.gitignore +0 -8
  26. data/.rspec +0 -4
  27. data/.travis.yml +0 -28
  28. data/.yardopts +0 -2
  29. data/Gemfile +0 -28
  30. data/README.md +0 -92
  31. data/Rakefile +0 -33
  32. data/benchmark/call_vs_check.rb +0 -38
  33. data/benchmark/const_vs_hash.rb +0 -35
  34. data/benchmark/hash_vs_openstruct.rb +0 -54
  35. data/benchmark/string_vs_symbol.rb +0 -14
  36. data/benchmark/struct_vs_class.rb +0 -91
  37. data/docs/.nojekyll +0 -0
  38. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
  39. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
  40. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
  41. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
  42. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
  43. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
  44. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
  45. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
  46. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
  47. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
  48. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
  49. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
  50. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
  51. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
  52. data/docs/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
  53. data/docs/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
  54. data/docs/_components/jquery-syntax/base/theme.js +0 -1
  55. data/docs/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
  56. data/docs/_components/jquery-syntax/bright/theme.js +0 -1
  57. data/docs/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
  58. data/docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
  59. data/docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
  60. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
  61. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
  62. data/docs/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
  63. data/docs/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
  64. data/docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
  65. data/docs/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
  66. data/docs/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
  67. data/docs/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
  68. data/docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
  69. data/docs/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
  70. data/docs/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
  71. data/docs/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
  72. data/docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
  73. data/docs/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
  74. data/docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
  75. data/docs/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
  76. data/docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
  77. data/docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
  78. data/docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
  79. data/docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
  80. data/docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
  81. data/docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
  82. data/docs/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
  83. data/docs/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
  84. data/docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
  85. data/docs/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
  86. data/docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
  87. data/docs/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
  88. data/docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
  89. data/docs/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
  90. data/docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
  91. data/docs/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
  92. data/docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
  93. data/docs/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
  94. data/docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
  95. data/docs/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
  96. data/docs/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
  97. data/docs/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
  98. data/docs/_components/jquery-syntax/jquery.syntax.js +0 -258
  99. data/docs/_components/jquery-syntax/jquery.syntax.min.js +0 -13
  100. data/docs/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
  101. data/docs/_components/jquery-syntax/paper/theme.js +0 -1
  102. data/docs/_components/jquery/core.js +0 -482
  103. data/docs/_components/jquery/jquery.js +0 -10220
  104. data/docs/_components/jquery/jquery.min.js +0 -4
  105. data/docs/_components/jquery/jquery.min.map +0 -1
  106. data/docs/_components/jquery/jquery.slim.js +0 -8107
  107. data/docs/_components/jquery/jquery.slim.min.js +0 -4
  108. data/docs/_components/jquery/jquery.slim.min.map +0 -1
  109. data/docs/_static/icon.png +0 -0
  110. data/docs/_static/site.css +0 -205
  111. data/docs/_static/utopia-background.svg +0 -1
  112. data/docs/_static/utopia.svg +0 -1
  113. data/docs/code/Utopia.html +0 -517
  114. data/docs/code/Utopia/Basename.html +0 -654
  115. data/docs/code/Utopia/Bootstrap.html +0 -538
  116. data/docs/code/Utopia/Command.html +0 -213
  117. data/docs/code/Utopia/Command/Environment.html +0 -321
  118. data/docs/code/Utopia/Command/Server.html +0 -214
  119. data/docs/code/Utopia/Command/Server/Create.html +0 -222
  120. data/docs/code/Utopia/Command/Server/Environment.html +0 -236
  121. data/docs/code/Utopia/Command/Server/Update.html +0 -317
  122. data/docs/code/Utopia/Command/Setup.html +0 -145
  123. data/docs/code/Utopia/Command/Setup/Server.html +0 -298
  124. data/docs/code/Utopia/Command/Setup/Site.html +0 -180
  125. data/docs/code/Utopia/Command/Site.html +0 -285
  126. data/docs/code/Utopia/Command/Site/Create.html +0 -324
  127. data/docs/code/Utopia/Command/Site/Update.html +0 -407
  128. data/docs/code/Utopia/Command/Top.html +0 -279
  129. data/docs/code/Utopia/Content.html +0 -832
  130. data/docs/code/Utopia/Content/Document.html +0 -1822
  131. data/docs/code/Utopia/Content/Document/State.html +0 -1220
  132. data/docs/code/Utopia/Content/Link.html +0 -1286
  133. data/docs/code/Utopia/Content/Links.html +0 -847
  134. data/docs/code/Utopia/Content/MarkupParser.html +0 -881
  135. data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +0 -422
  136. data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +0 -615
  137. data/docs/code/Utopia/Content/Namespace.html +0 -485
  138. data/docs/code/Utopia/Content/Node.html +0 -1188
  139. data/docs/code/Utopia/Content/Node/Context.html +0 -938
  140. data/docs/code/Utopia/Content/Response.html +0 -813
  141. data/docs/code/Utopia/Content/SymbolicHash.html +0 -419
  142. data/docs/code/Utopia/Content/Tag.html +0 -399
  143. data/docs/code/Utopia/Content/Tags.html +0 -136
  144. data/docs/code/Utopia/Content/Tags/ContentTag.html +0 -187
  145. data/docs/code/Utopia/Content/Tags/DeferredTag.html +0 -193
  146. data/docs/code/Utopia/Content/Tags/Library.html +0 -333
  147. data/docs/code/Utopia/Content/Tags/NodeTag.html +0 -193
  148. data/docs/code/Utopia/Content/UnbalancedTagError.html +0 -298
  149. data/docs/code/Utopia/ContentLength.html +0 -343
  150. data/docs/code/Utopia/Controller.html +0 -907
  151. data/docs/code/Utopia/Controller/Actions.html +0 -289
  152. data/docs/code/Utopia/Controller/Actions/Action.html +0 -984
  153. data/docs/code/Utopia/Controller/Actions/ClassMethods.html +0 -442
  154. data/docs/code/Utopia/Controller/Base.html +0 -1216
  155. data/docs/code/Utopia/Controller/Respond.html +0 -293
  156. data/docs/code/Utopia/Controller/Respond/ClassMethods.html +0 -236
  157. data/docs/code/Utopia/Controller/Respond/Converter.html +0 -256
  158. data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +0 -484
  159. data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +0 -381
  160. data/docs/code/Utopia/Controller/Respond/Passthrough.html +0 -297
  161. data/docs/code/Utopia/Controller/Respond/Responder.html +0 -535
  162. data/docs/code/Utopia/Controller/Rewrite.html +0 -290
  163. data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +0 -242
  164. data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +0 -364
  165. data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +0 -464
  166. data/docs/code/Utopia/Controller/Rewrite/Rule.html +0 -209
  167. data/docs/code/Utopia/Controller/Variables.html +0 -550
  168. data/docs/code/Utopia/Controllers.html +0 -244
  169. data/docs/code/Utopia/Exceptions.html +0 -127
  170. data/docs/code/Utopia/Exceptions/Handler.html +0 -526
  171. data/docs/code/Utopia/Exceptions/Mailer.html +0 -482
  172. data/docs/code/Utopia/Extensions.html +0 -117
  173. data/docs/code/Utopia/Extensions/ArraySplit.html +0 -183
  174. data/docs/code/Utopia/Extensions/DateTimeComparison.html +0 -193
  175. data/docs/code/Utopia/Extensions/TimeDateComparison.html +0 -193
  176. data/docs/code/Utopia/HTTP.html +0 -250
  177. data/docs/code/Utopia/HTTP/Status.html +0 -415
  178. data/docs/code/Utopia/Locale.html +0 -606
  179. data/docs/code/Utopia/Localization.html +0 -1241
  180. data/docs/code/Utopia/Localization/Wrapper.html +0 -459
  181. data/docs/code/Utopia/Logger.html +0 -205
  182. data/docs/code/Utopia/Logger/CompactFormatter.html +0 -335
  183. data/docs/code/Utopia/Path.html +0 -3310
  184. data/docs/code/Utopia/Path/Matcher.html +0 -518
  185. data/docs/code/Utopia/Path/Matcher/MatchData.html +0 -475
  186. data/docs/code/Utopia/Redirection.html +0 -151
  187. data/docs/code/Utopia/Redirection/ClientRedirect.html +0 -717
  188. data/docs/code/Utopia/Redirection/DirectoryIndex.html +0 -298
  189. data/docs/code/Utopia/Redirection/Errors.html +0 -476
  190. data/docs/code/Utopia/Redirection/Moved.html +0 -312
  191. data/docs/code/Utopia/Redirection/RequestFailure.html +0 -226
  192. data/docs/code/Utopia/Redirection/Rewrite.html +0 -296
  193. data/docs/code/Utopia/Session.html +0 -889
  194. data/docs/code/Utopia/Session/LazyHash.html +0 -859
  195. data/docs/code/Utopia/Setup.html +0 -970
  196. data/docs/code/Utopia/Static.html +0 -696
  197. data/docs/code/Utopia/Static/LocalFile.html +0 -1104
  198. data/docs/code/Utopia/Static/MimeTypeLoader.html +0 -541
  199. data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +0 -124
  200. data/docs/code/Utopia/Tags.html +0 -115
  201. data/docs/code/Utopia/Tags/Environment.html +0 -314
  202. data/docs/code/Utopia/Tags/EnvironmentTag.html +0 -314
  203. data/docs/code/Utopia/Tags/Library.html +0 -340
  204. data/docs/code/_index.html +0 -758
  205. data/docs/code/class_list.html +0 -51
  206. data/docs/code/css/common.css +0 -1
  207. data/docs/code/css/full_list.css +0 -58
  208. data/docs/code/css/style.css +0 -496
  209. data/docs/code/file.README.html +0 -171
  210. data/docs/code/file_list.html +0 -56
  211. data/docs/code/frames.html +0 -17
  212. data/docs/code/index.html +0 -171
  213. data/docs/code/js/app.js +0 -292
  214. data/docs/code/js/full_list.js +0 -216
  215. data/docs/code/js/jquery.js +0 -4
  216. data/docs/code/materials/utopia.png +0 -0
  217. data/docs/code/materials/utopia.svg +0 -1
  218. data/docs/code/method_list.html +0 -3443
  219. data/docs/code/top-level-namespace.html +0 -110
  220. data/docs/index.html +0 -92
  221. data/docs/wiki.html +0 -92
  222. data/docs/wiki/development-environment-setup.html +0 -60
  223. data/docs/wiki/development-environment-setup/index.html +0 -60
  224. data/docs/wiki/edit.html +0 -103
  225. data/docs/wiki/faq/what-is-xnode.html +0 -79
  226. data/docs/wiki/faq/what-is-xnode/index.html +0 -79
  227. data/docs/wiki/javascript.html +0 -153
  228. data/docs/wiki/javascript/index.html +0 -153
  229. data/docs/wiki/middleware/content.html +0 -64
  230. data/docs/wiki/middleware/content/index.html +0 -64
  231. data/docs/wiki/middleware/controller.html +0 -104
  232. data/docs/wiki/middleware/controller/actions.html +0 -117
  233. data/docs/wiki/middleware/controller/actions/index.html +0 -117
  234. data/docs/wiki/middleware/controller/actions/rewrite/index.html +0 -48
  235. data/docs/wiki/middleware/controller/index.html +0 -104
  236. data/docs/wiki/middleware/controller/rewrite.html +0 -111
  237. data/docs/wiki/middleware/controller/rewrite/index.html +0 -111
  238. data/docs/wiki/middleware/localization.html +0 -59
  239. data/docs/wiki/middleware/localization/index.html +0 -59
  240. data/docs/wiki/middleware/redirection.html +0 -61
  241. data/docs/wiki/middleware/redirection/index.html +0 -61
  242. data/docs/wiki/middleware/session.html +0 -71
  243. data/docs/wiki/middleware/session/index.html +0 -71
  244. data/docs/wiki/middleware/static.html +0 -57
  245. data/docs/wiki/middleware/static/index.html +0 -57
  246. data/docs/wiki/server-setup.html +0 -118
  247. data/docs/wiki/server-setup/index.html +0 -118
  248. data/docs/wiki/testing.html +0 -59
  249. data/docs/wiki/testing/index.html +0 -59
  250. data/docs/wiki/updating-utopia.html +0 -108
  251. data/docs/wiki/updating-utopia/index.html +0 -108
  252. data/docs/wiki/your-first-page.html +0 -80
  253. data/docs/wiki/your-first-page/index.html +0 -80
  254. data/documentation/.rspec +0 -4
  255. data/documentation/.yarnrc +0 -1
  256. data/documentation/Gemfile +0 -19
  257. data/documentation/Guardfile +0 -9
  258. data/documentation/Rakefile +0 -9
  259. data/documentation/config.ru +0 -41
  260. data/documentation/config/README.md +0 -7
  261. data/documentation/config/environment.rb +0 -12
  262. data/documentation/lib/readme.txt +0 -1
  263. data/documentation/pages/_editor.xnode +0 -64
  264. data/documentation/pages/_heading.xnode +0 -2
  265. data/documentation/pages/_page.xnode +0 -40
  266. data/documentation/pages/errors/exception.xnode +0 -5
  267. data/documentation/pages/errors/file-not-found.xnode +0 -5
  268. data/documentation/pages/links.yaml +0 -2
  269. data/documentation/pages/wiki/_listing.xnode +0 -32
  270. data/documentation/pages/wiki/_navigation.xnode +0 -15
  271. data/documentation/pages/wiki/content.md +0 -35
  272. data/documentation/pages/wiki/controller.rb +0 -48
  273. data/documentation/pages/wiki/development-environment-setup/content.md +0 -16
  274. data/documentation/pages/wiki/edit.xnode +0 -10
  275. data/documentation/pages/wiki/faq/what-is-xnode/content.md +0 -37
  276. data/documentation/pages/wiki/javascript/content.md +0 -75
  277. data/documentation/pages/wiki/links.yaml +0 -6
  278. data/documentation/pages/wiki/middleware/content/content.md +0 -21
  279. data/documentation/pages/wiki/middleware/controller/actions/content.md +0 -76
  280. data/documentation/pages/wiki/middleware/controller/content.md +0 -62
  281. data/documentation/pages/wiki/middleware/controller/links.yaml +0 -4
  282. data/documentation/pages/wiki/middleware/controller/rewrite/content.md +0 -69
  283. data/documentation/pages/wiki/middleware/localization/content.md +0 -16
  284. data/documentation/pages/wiki/middleware/redirection/content.md +0 -17
  285. data/documentation/pages/wiki/middleware/session/content.md +0 -29
  286. data/documentation/pages/wiki/middleware/static/content.md +0 -13
  287. data/documentation/pages/wiki/server-setup/content.md +0 -52
  288. data/documentation/pages/wiki/show.xnode +0 -12
  289. data/documentation/pages/wiki/testing/content.md +0 -15
  290. data/documentation/pages/wiki/updating-utopia/content.md +0 -63
  291. data/documentation/pages/wiki/your-first-page/content.md +0 -38
  292. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
  293. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
  294. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
  295. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
  296. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
  297. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
  298. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
  299. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
  300. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
  301. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
  302. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
  303. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
  304. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
  305. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
  306. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
  307. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
  308. data/documentation/public/_components/jquery-syntax/base/theme.js +0 -1
  309. data/documentation/public/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
  310. data/documentation/public/_components/jquery-syntax/bright/theme.js +0 -1
  311. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
  312. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
  313. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
  314. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
  315. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
  316. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
  317. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
  318. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
  319. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
  320. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
  321. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
  322. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
  323. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
  324. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
  325. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
  326. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
  327. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
  328. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
  329. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
  330. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
  331. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
  332. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
  333. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
  334. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
  335. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
  336. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
  337. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
  338. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
  339. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
  340. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
  341. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
  342. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
  343. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
  344. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
  345. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
  346. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
  347. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
  348. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
  349. data/documentation/public/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
  350. data/documentation/public/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
  351. data/documentation/public/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
  352. data/documentation/public/_components/jquery-syntax/jquery.syntax.js +0 -258
  353. data/documentation/public/_components/jquery-syntax/jquery.syntax.min.js +0 -13
  354. data/documentation/public/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
  355. data/documentation/public/_components/jquery-syntax/paper/theme.js +0 -1
  356. data/documentation/public/_components/jquery/core.js +0 -482
  357. data/documentation/public/_components/jquery/jquery.js +0 -10220
  358. data/documentation/public/_components/jquery/jquery.min.js +0 -4
  359. data/documentation/public/_components/jquery/jquery.min.map +0 -1
  360. data/documentation/public/_components/jquery/jquery.slim.js +0 -8107
  361. data/documentation/public/_components/jquery/jquery.slim.min.js +0 -4
  362. data/documentation/public/_components/jquery/jquery.slim.min.map +0 -1
  363. data/documentation/public/_static +0 -1
  364. data/documentation/public/materials +0 -1
  365. data/documentation/spec/website_context.rb +0 -12
  366. data/documentation/spec/website_spec.rb +0 -16
  367. data/documentation/tasks +0 -1
  368. data/materials/utopia.png +0 -0
  369. data/materials/utopia.svg +0 -1
  370. data/setup/site/.yarnrc +0 -1
  371. data/spec/mock_node.rb +0 -16
  372. data/spec/spec_helper.rb +0 -13
  373. data/spec/utopia/command_spec.rb +0 -164
  374. data/spec/utopia/content/document_spec.rb +0 -60
  375. data/spec/utopia/content/link_spec.rb +0 -47
  376. data/spec/utopia/content/links/foo/index.xnode +0 -0
  377. data/spec/utopia/content/links/foo/links.yaml +0 -2
  378. data/spec/utopia/content/links/foo/test.de.xnode +0 -0
  379. data/spec/utopia/content/links/foo/test.en.xnode +0 -0
  380. data/spec/utopia/content/links/links.yaml +0 -9
  381. data/spec/utopia/content/links/welcome.xnode +0 -0
  382. data/spec/utopia/content/links_spec.rb +0 -101
  383. data/spec/utopia/content/localized/five/index.en.xnode +0 -0
  384. data/spec/utopia/content/localized/four/index.en.xnode +0 -0
  385. data/spec/utopia/content/localized/four/index.zh.xnode +0 -0
  386. data/spec/utopia/content/localized/four/links.yaml +0 -4
  387. data/spec/utopia/content/localized/links.yaml +0 -16
  388. data/spec/utopia/content/localized/one.xnode +0 -0
  389. data/spec/utopia/content/localized/three/index.xnode +0 -0
  390. data/spec/utopia/content/localized/two.en.xnode +0 -0
  391. data/spec/utopia/content/localized/two.zh.xnode +0 -0
  392. data/spec/utopia/content/markup_spec.rb +0 -96
  393. data/spec/utopia/content/namespace_spec.rb +0 -45
  394. data/spec/utopia/content/node/lookup/content.xnode +0 -1
  395. data/spec/utopia/content/node/lookup/index.xnode +0 -1
  396. data/spec/utopia/content/node/ordered/first.xnode +0 -0
  397. data/spec/utopia/content/node/ordered/index.xnode +0 -0
  398. data/spec/utopia/content/node/ordered/links.yaml +0 -4
  399. data/spec/utopia/content/node/ordered/second.xnode +0 -0
  400. data/spec/utopia/content/node/related/foo.en.xnode +0 -0
  401. data/spec/utopia/content/node/related/foo.ja.xnode +0 -0
  402. data/spec/utopia/content/node/related/links.yaml +0 -4
  403. data/spec/utopia/content/node_spec.rb +0 -97
  404. data/spec/utopia/content/response_spec.rb +0 -54
  405. data/spec/utopia/content/tags_spec.rb +0 -82
  406. data/spec/utopia/content_spec.rb +0 -100
  407. data/spec/utopia/content_spec.ru +0 -6
  408. data/spec/utopia/content_spec/_heading.xnode +0 -1
  409. data/spec/utopia/content_spec/content/_show-value.xnode +0 -1
  410. data/spec/utopia/content_spec/content/links.yaml +0 -2
  411. data/spec/utopia/content_spec/content/test-partial.xnode +0 -1
  412. data/spec/utopia/content_spec/index.xnode +0 -1
  413. data/spec/utopia/content_spec/node/index.xnode +0 -1
  414. data/spec/utopia/content_spec/test.xnode +0 -10
  415. data/spec/utopia/controller/actions_spec.rb +0 -62
  416. data/spec/utopia/controller/middleware_spec.rb +0 -88
  417. data/spec/utopia/controller/middleware_spec.ru +0 -6
  418. data/spec/utopia/controller/middleware_spec/controller/controller.rb +0 -27
  419. data/spec/utopia/controller/middleware_spec/controller/index.xnode +0 -1
  420. data/spec/utopia/controller/middleware_spec/controller/nested/controller.rb +0 -7
  421. data/spec/utopia/controller/middleware_spec/empty/controller.rb +0 -0
  422. data/spec/utopia/controller/middleware_spec/redirect/controller.rb +0 -12
  423. data/spec/utopia/controller/middleware_spec/redirect/test/controller.rb +0 -9
  424. data/spec/utopia/controller/respond_spec.rb +0 -174
  425. data/spec/utopia/controller/respond_spec.ru +0 -12
  426. data/spec/utopia/controller/respond_spec/api/controller.rb +0 -28
  427. data/spec/utopia/controller/respond_spec/errors/controller.rb +0 -14
  428. data/spec/utopia/controller/respond_spec/errors/file-not-found.xnode +0 -8
  429. data/spec/utopia/controller/respond_spec/html/controller.rb +0 -11
  430. data/spec/utopia/controller/respond_spec/rewrite/controller.rb +0 -13
  431. data/spec/utopia/controller/rewrite_spec.rb +0 -80
  432. data/spec/utopia/controller/sequence_spec.rb +0 -135
  433. data/spec/utopia/controller/variables_spec.rb +0 -59
  434. data/spec/utopia/controller/websocket_spec.rb +0 -68
  435. data/spec/utopia/controller/websocket_spec.ru +0 -5
  436. data/spec/utopia/controller/websocket_spec/server/controller.rb +0 -11
  437. data/spec/utopia/exceptions/handler_spec.rb +0 -47
  438. data/spec/utopia/exceptions/handler_spec.ru +0 -8
  439. data/spec/utopia/exceptions/handler_spec/controller.rb +0 -19
  440. data/spec/utopia/exceptions/mailer_spec.rb +0 -43
  441. data/spec/utopia/exceptions/mailer_spec.ru +0 -10
  442. data/spec/utopia/extensions_spec.rb +0 -73
  443. data/spec/utopia/http/status_spec.rb +0 -44
  444. data/spec/utopia/locale_spec.rb +0 -58
  445. data/spec/utopia/localization_spec.rb +0 -92
  446. data/spec/utopia/localization_spec.ru +0 -15
  447. data/spec/utopia/localization_spec/controller.rb +0 -21
  448. data/spec/utopia/localization_spec/localized.de.txt +0 -1
  449. data/spec/utopia/localization_spec/localized.en.txt +0 -1
  450. data/spec/utopia/localization_spec/localized.ja.txt +0 -1
  451. data/spec/utopia/localization_spec/test.txt +0 -1
  452. data/spec/utopia/middleware_spec.rb +0 -31
  453. data/spec/utopia/path/matcher_spec.rb +0 -66
  454. data/spec/utopia/path_spec.rb +0 -162
  455. data/spec/utopia/performance_spec.rb +0 -92
  456. data/spec/utopia/performance_spec/cache/head/readme.txt +0 -1
  457. data/spec/utopia/performance_spec/cache/meta/readme.txt +0 -1
  458. data/spec/utopia/performance_spec/config.ru +0 -35
  459. data/spec/utopia/performance_spec/lib/readme.txt +0 -1
  460. data/spec/utopia/performance_spec/pages/_heading.xnode +0 -2
  461. data/spec/utopia/performance_spec/pages/_page.xnode +0 -26
  462. data/spec/utopia/performance_spec/pages/api/controller.rb +0 -8
  463. data/spec/utopia/performance_spec/pages/errors/exception.xnode +0 -5
  464. data/spec/utopia/performance_spec/pages/errors/file-not-found.xnode +0 -5
  465. data/spec/utopia/performance_spec/pages/links.yaml +0 -2
  466. data/spec/utopia/performance_spec/pages/welcome/index.xnode +0 -17
  467. data/spec/utopia/rack_helper.rb +0 -32
  468. data/spec/utopia/redirection_spec.rb +0 -77
  469. data/spec/utopia/redirection_spec.ru +0 -27
  470. data/spec/utopia/session_spec.rb +0 -189
  471. data/spec/utopia/session_spec.ru +0 -24
  472. data/spec/utopia/setup_spec.rb +0 -56
  473. data/spec/utopia/static_spec.rb +0 -49
  474. data/spec/utopia/static_spec.ru +0 -5
  475. data/spec/utopia/static_spec/test.txt +0 -1
  476. data/utopia.gemspec +0 -52
@@ -1,291 +0,0 @@
1
- // This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
2
- // Copyright (c) 2011 Samuel G. D. Williams. <http://www.oriontransfer.co.nz>
3
- // See <jquery.syntax.js> for licensing details.
4
-
5
- Syntax.Editor = function(container, text) {
6
- this.container = container;
7
- this.current = this.getLines();
8
- }
9
-
10
- // This function generates an array of accumulated line offsets e.g.
11
- // If line 8 is actually in child element 6, indices[8] = -2
12
- Syntax.Editor.prototype.getLines = function() {
13
- var children = this.container.childNodes, lines = [], offsets = [];
14
-
15
- // Sometimes, e.g. when deleting text, children elements are not complete lines.
16
- // We need to accumulate incomplete lines (1), and then append them to the
17
- // start of the next complete line (2)
18
- var text = "", startChild = 0;
19
- for (var i = 0; i < children.length; i += 1) {
20
- var childLines = Syntax.innerText([children[i]]).split('\n');
21
-
22
- if (childLines.length > 1) {
23
- childLines[0] = text + childLines[0]; // (2)
24
- text = childLines.pop();
25
- } else {
26
- text += childLines[0]; // (1)
27
- continue;
28
- }
29
-
30
- for (var j = 0; j < childLines.length; j += 1) {
31
- offsets.push(startChild - lines.length);
32
- lines.push(childLines[j]);
33
- }
34
-
35
- startChild = i + 1;
36
- }
37
-
38
- // Final line, any remaining text
39
- if (text != "") {
40
- offsets.push(startChild - lines.length);
41
- lines.push(text);
42
- } else {
43
- startChild -= 1;
44
- }
45
-
46
- offsets.push(startChild);
47
-
48
- console.log("getLines", offsets, lines, children);
49
-
50
- return {lines: lines, offsets: offsets};
51
- }
52
-
53
- // This function updates the editor's internal state with regards to lines changed.
54
- // This can be lines added, removed or modified partially. This function returns
55
- // a list of lines which are different between the previous set of lines and the
56
- // updated set of lines.
57
- // This algorithm is not a general diff algorithm because we expect three cases only:
58
- // 1: A single line was modified (most common case)
59
- // 2: Some lines were removed (selection -> delete)
60
- // 3: Some lines were added (paste)
61
- Syntax.Editor.prototype.updateChangedLines = function() {
62
- var result = {};
63
-
64
- var updated = this.getLines();
65
-
66
- // Find the sequence of lines at the start preceeding the change:
67
- var i = 0, j = 0;
68
- while (i < this.current.lines.length && j < updated.lines.length) {
69
- if (this.current.lines[i] == updated.lines[j]) {
70
- i += 1;
71
- j += 1;
72
- } else {
73
- break;
74
- }
75
- }
76
-
77
- // The length of the initial segment which hasn't changed:
78
- result.start = j;
79
-
80
- // Find the sequence of lines at the end proceeding the change:
81
- i = this.current.lines.length, j = updated.lines.length;
82
- while (i > result.start && j > result.start) {
83
- if (this.current.lines[i-1] == updated.lines[j-1]) {
84
- i -= 1;
85
- j -= 1;
86
- } else {
87
- break;
88
- }
89
- }
90
-
91
- // The index of the remaining portion which hasn't changed:
92
- result.end = j;
93
- // The index to the original set of lines which were the same:
94
- result.originalEnd = i;
95
-
96
- // Did we add or remove some lines?
97
- result.difference = updated.lines.length - this.current.lines.length;
98
-
99
- // This should be augmented to improve the above.
100
- while (result.start > 0) {
101
- if (updated.offsets[result.start] == updated.offsets[result.start-1])
102
- break;
103
-
104
- result.start -= 1;
105
- }
106
-
107
- if (result.difference > 0) {
108
- while (result.end < (updated.lines.length-1)) {
109
- if (updated.offsets[result.end-1] == updated.offsets[result.end])
110
- break;
111
-
112
- result.end += 1;
113
- result.originalEnd += 1;
114
- }
115
- }
116
-
117
- // Update the internal state for the next update.
118
- this.current = updated;
119
- this.changed = result;
120
-
121
- return result;
122
- }
123
-
124
- Syntax.Editor.prototype.textForLines = function(start, end) {
125
- return this.current.lines.slice(start, end).join('\n') + '\n';
126
- }
127
-
128
- Syntax.Editor.prototype.updateLines = function(changed, newLines) {
129
- // We have two cases to handle, either we are replacing lines
130
- // (1a) Replacing old lines with one more more new lines (update)
131
- // (1b) Replacing old lines with zero new lines (removal)
132
- // Or we are inserting lines
133
- // (2a) We are inserting lines at the start of the element
134
- // (2b) We are inserting lines after an existing element.
135
-
136
- if (changed.start != changed.end) {
137
- // When text is deleted, at most two elements can remain:
138
- // (1) Whatever was partially remaining on the first line.
139
- // (2) Whatever was partially remaining on the last line.
140
- // All other lines have already been removed by the container.
141
- // changed.difference tells us how many elements have already been removed.
142
-
143
- // Cases (1a) and (1b)
144
- var start = changed.start, end = changed.end;
145
-
146
- start += this.current.offsets[start];
147
- end += this.current.offsets[end];
148
-
149
- var oldLines = Array.prototype.slice.call(this.container.childNodes, start, end);
150
-
151
- $(oldLines).replaceWith(newLines);
152
- } else {
153
- if (changed.start == 0)
154
- $(this.container).prepend(newLines);
155
- else {
156
- var start = changed.start;
157
-
158
- start += this.current.offsets[start];
159
-
160
- $(this.container.childNodes[start]).after(newLines);
161
- }
162
- }
163
- }
164
-
165
- // http://jsfiddle.net/TjXEG/1/
166
- Syntax.Editor.getCharacterOffset = function(element) {
167
- var caretOffset = 0;
168
- if (typeof window.getSelection != "undefined") {
169
- var range = window.getSelection().getRangeAt(0);
170
- var preCaretRange = range.cloneRange();
171
- preCaretRange.selectNodeContents(element);
172
- preCaretRange.setEnd(range.endContainer, range.endOffset);
173
- caretOffset = preCaretRange.toString().length;
174
- } else if (typeof document.selection != "undefined" && document.selection.type != "Control") {
175
- var textRange = document.selection.createRange();
176
- var preCaretTextRange = document.body.createTextRange();
177
- preCaretTextRange.moveToElementText(element);
178
- preCaretTextRange.setEndPoint("EndToEnd", textRange);
179
- caretOffset = preCaretTextRange.text.length;
180
- }
181
- return caretOffset;
182
- };
183
-
184
- Syntax.Editor.getNodesForCharacterOffsets = function(offsets, node) {
185
- var treeWalker = document.createTreeWalker(
186
- node,
187
- NodeFilter.SHOW_TEXT,
188
- function(node) {
189
- return NodeFilter.FILTER_ACCEPT;
190
- },
191
- false
192
- );
193
-
194
- var nodes = [], charCount = 0, i = 0;
195
- while (i < offsets.length && treeWalker.nextNode()) {
196
- var end = charCount + treeWalker.currentNode.length;
197
-
198
- while (i < offsets.length && offsets[i] < end) {
199
- nodes.push([treeWalker.currentNode, charCount, end]);
200
-
201
- i += 1;
202
- }
203
-
204
- charCount = end;
205
- }
206
-
207
- return nodes;
208
- };
209
-
210
- Syntax.Editor.prototype.getClientState = function() {
211
- var state = {};
212
-
213
- var selection = window.getSelection();
214
-
215
- if (selection.rangeCount > 0)
216
- state.range = selection.getRangeAt(0);
217
-
218
- if (state.range) {
219
- state.startOffset = Syntax.Editor.getCharacterOffset(this.container);
220
- }
221
-
222
- return state;
223
- };
224
-
225
- Syntax.Editor.prototype.setClientState = function(state) {
226
- if (state.startOffset) {
227
- var nodes = Syntax.Editor.getNodesForCharacterOffsets([state.startOffset], this.container);
228
-
229
- var range = document.createRange();
230
- range.setStart(nodes[0][0], state.startOffset - nodes[0][1]);
231
- range.setEnd(nodes[0][0], state.startOffset - nodes[0][1]);
232
-
233
- var selection = window.getSelection();
234
- selection.removeAllRanges();
235
- selection.addRange(range);
236
- }
237
- };
238
-
239
- Syntax.layouts.editor = function(options, code/*, container*/) {
240
- var container = jQuery('<div class="editor syntax highlighted" contentEditable="true">');
241
-
242
- container.append(code.children());
243
-
244
- var editor = new Syntax.Editor(container.get(0));
245
-
246
- var updateContainer = function(lineHint) {
247
- // Need to save cursor position/selection
248
- var clientState = editor.getClientState();
249
- var changed = editor.updateChangedLines();
250
-
251
- // Sometimes there are problems where multiple spans exist on the same line.
252
- if (changed.difference < 0 && changed.start > 0)
253
- changed.start -= 1;
254
-
255
- var text = editor.textForLines(changed.start, changed.end);
256
-
257
- if (changed.start == changed.end) {
258
- editor.updateLines(changed, []);
259
- } else {
260
- // Lines have been added, update the highlighting.
261
- Syntax.highlightText(text, options, function(html) {
262
- editor.updateLines(changed, html.children().get());
263
-
264
- // Restore cusor position/selection if possible
265
- editor.setClientState(clientState);
266
- });
267
- }
268
- };
269
-
270
- // 'blur keyup paste mouseup'
271
- container.bind('keyup', function(){
272
- updateContainer();
273
- });
274
-
275
- container.bind('paste', function(event){
276
- updateContainer();
277
- });
278
-
279
- container.bind('keydown', function(event){
280
- if (event.keyCode == 9) {
281
- event.preventDefault();
282
- document.execCommand('insertHTML', false, " ");
283
- }
284
- else if (event.keyCode == 13) {
285
- event.preventDefault();
286
- document.execCommand('insertHTML', false, "\n");
287
- }
288
- });
289
-
290
- return jQuery('<div class="syntax-container">').append(container);
291
- };
@@ -1,258 +0,0 @@
1
- /*
2
- This file is part of the "jQuery.Syntax" project, and is distributed under the MIT License.
3
- For more information, please see http://www.oriontransfer.co.nz/software/jquery-syntax
4
-
5
- Copyright (c) 2011 Samuel G. D. Williams. <http://www.oriontransfer.co.nz>
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the "Software"), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in
15
- all copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- THE SOFTWARE.
24
- */
25
-
26
- /*global Function: true, ResourceLoader: true, Syntax: true, alert: false, jQuery: true */
27
-
28
- // ECMAScript 5! Why wasn't this done before!?
29
- if (!Function.prototype.bind) {
30
- Function.prototype.bind = function (target) {
31
- var args = Array.prototype.slice.call(arguments, 1), fn = this;
32
-
33
- return function () {
34
- return fn.apply(target, args);
35
- };
36
- };
37
- }
38
-
39
- function ResourceLoader (loader) {
40
- this.dependencies = {};
41
- this.loading = {};
42
- this.loader = loader;
43
- }
44
-
45
- ResourceLoader.prototype._finish = function (name) {
46
- var deps = this.dependencies[name];
47
-
48
- if (deps) {
49
- // I'm not sure if this makes me want to cry... or laugh... or kill!?
50
- var chain = this._loaded.bind(this, name);
51
-
52
- for (var i = 0; i < deps.length; i += 1) {
53
- chain = this.get.bind(this, deps[i], chain);
54
- }
55
-
56
- chain();
57
- } else {
58
- this._loaded(name);
59
- }
60
- };
61
-
62
- ResourceLoader.prototype._loaded = function (name) {
63
- // When the script has been succesfully loaded, we expect the script
64
- // to register with this loader (i.e. this[name]).
65
- var resource = this[name], loading = this.loading[name];
66
-
67
- // Clear the loading list
68
- this.loading[name] = null;
69
-
70
- if (!resource) {
71
- alert("ResourceLoader: Could not load resource named " + name);
72
- } else {
73
- for (var i = 0; i < loading.length; i += 1) {
74
- loading[i](resource);
75
- }
76
- }
77
- };
78
-
79
- // This function must ensure that current cannot be completely loaded until next
80
- // is completely loaded.
81
- ResourceLoader.prototype.dependency = function (current, next) {
82
- // If the resource has completely loaded, then we don't need to queue it
83
- // as a dependency
84
- if (this[next] && !this.loading[name]) {
85
- return;
86
- }
87
-
88
- if (this.dependencies[current]) {
89
- this.dependencies[current].push(next);
90
- } else {
91
- this.dependencies[current] = [next];
92
- }
93
- };
94
-
95
- // This function must be reentrant for the same name. Additionally, if name is undefined, the callback will be invoked but with no argument.
96
- ResourceLoader.prototype.get = function (name, callback) {
97
- if (name == undefined) {
98
- callback();
99
- } else if (this.loading[name]) {
100
- this.loading[name].push(callback)
101
- } else if (this[name]) {
102
- callback(this[name]);
103
- } else {
104
- this.loading[name] = [callback];
105
- this.loader(name, this._finish.bind(this, name));
106
- }
107
- };
108
-
109
- var Syntax = {
110
- root: null,
111
- aliases: {},
112
- styles: {},
113
- themes: {},
114
- lib: {},
115
-
116
- cacheScripts: true,
117
- cacheStyleSheets: true,
118
- codeSelector: 'code:not(.highlighted)',
119
-
120
- defaultOptions: {
121
- theme: "base",
122
- replace: true,
123
- linkify: true
124
- },
125
-
126
- brushes: new ResourceLoader(function (name, callback) {
127
- name = Syntax.aliases[name] || name;
128
-
129
- Syntax.getResource('jquery.syntax.brush', name, callback);
130
- }),
131
-
132
- loader: new ResourceLoader(function (name, callback) {
133
- Syntax.getResource('jquery.syntax', name, callback);
134
- }),
135
-
136
- getStyles: function (path) {
137
- var link = jQuery('<link>');
138
- jQuery("head").append(link);
139
-
140
- if (!Syntax.cacheStyleSheets) {
141
- path = path + "?" + Math.random()
142
- }
143
-
144
- link.attr({
145
- rel: "stylesheet",
146
- type: "text/css",
147
- href: path
148
- });
149
- },
150
-
151
- getScript: function (path, callback) {
152
- var script = document.createElement('script');
153
-
154
- // Internet Exploder
155
- script.onreadystatechange = function() {
156
- if (this.onload && (this.readyState == 'loaded' || this.readyState == 'complete')) {
157
- this.onload();
158
-
159
- // Ensure the function is only called once.
160
- this.onload = null;
161
- }
162
- };
163
-
164
- // Every other modern browser
165
- script.onload = callback;
166
- script.type = "text/javascript";
167
-
168
- if (!Syntax.cacheScripts)
169
- path = path + '?' + Math.random()
170
-
171
- script.src = path;
172
-
173
- document.getElementsByTagName('head')[0].appendChild(script);
174
- },
175
-
176
- getResource: function (prefix, name, callback) {
177
- Syntax.detectRoot();
178
-
179
- var basename = prefix + "." + name;
180
- var styles = this.styles[basename];
181
-
182
- if (styles) {
183
- for (var i = 0; i < styles.length; i += 1) {
184
- this.getStyles(this.root + styles[i]);
185
- }
186
- }
187
-
188
- Syntax.getScript(this.root + basename + '.js', callback);
189
- },
190
-
191
- alias: function (name, aliases) {
192
- Syntax.aliases[name] = name;
193
-
194
- for (var i = 0; i < aliases.length; i += 1) {
195
- Syntax.aliases[aliases[i]] = name;
196
- }
197
- },
198
-
199
- brushAliases: function (brush) {
200
- var aliases = [];
201
-
202
- for (var name in Syntax.aliases) {
203
- if (Syntax.aliases[name] === brush) {
204
- aliases.push(name);
205
- }
206
- }
207
-
208
- return aliases;
209
- },
210
-
211
- brushNames: function () {
212
- var names = [];
213
-
214
- for (var name in Syntax.aliases) {
215
- if (name === Syntax.aliases[name]) {
216
- names.push(name);
217
- }
218
- }
219
-
220
- return names;
221
- },
222
-
223
- detectRoot: function () {
224
- if (Syntax.root == null) {
225
- // Initialize root based on current script path.
226
- var scripts = jQuery('script').filter(function(){
227
- return this.src.match(/jquery\.syntax/);
228
- });
229
-
230
- var first = scripts.get(0);
231
-
232
- if (first) {
233
- // Calculate the basename for the given script src.
234
- var root = first.src.match(/.*\//);
235
-
236
- if (root) {
237
- Syntax.root = root[0];
238
- }
239
- }
240
- }
241
- }
242
- };
243
-
244
- jQuery.fn.syntax = function (options, callback) {
245
- if (this.length == 0) return;
246
-
247
- options = jQuery.extend(Syntax.defaultOptions, options)
248
-
249
- Syntax.loader.get('core', function (elements) {
250
- Syntax.highlight(this, options, callback);
251
- }.bind(this));
252
- };
253
-
254
- jQuery.syntax = function (options, callback) {
255
- var context = options ? options.context : null;
256
-
257
- jQuery(Syntax.codeSelector, context).syntax(options, callback);
258
- };