utopia 2.13.4 → 2.16.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (486) hide show
  1. checksums.yaml +4 -4
  2. data/bake/utopia/{yarn.rb → node.rb} +13 -5
  3. data/lib/.DS_Store +0 -0
  4. data/lib/utopia/.DS_Store +0 -0
  5. data/lib/utopia/command.rb +2 -2
  6. data/lib/utopia/command/site.rb +1 -1
  7. data/lib/utopia/content.rb +23 -19
  8. data/lib/utopia/content/.DS_Store +0 -0
  9. data/lib/utopia/content/link.rb +29 -34
  10. data/lib/utopia/content/links.rb +185 -123
  11. data/lib/utopia/content/markup.rb +1 -1
  12. data/lib/utopia/content/node.rb +15 -19
  13. data/lib/utopia/content/response.rb +5 -5
  14. data/lib/utopia/controller.rb +0 -17
  15. data/lib/utopia/controller/.DS_Store +0 -0
  16. data/lib/utopia/controller/base.rb +27 -3
  17. data/lib/utopia/controller/respond.rb +50 -107
  18. data/lib/utopia/extensions/array_split.rb +2 -2
  19. data/lib/utopia/http.rb +3 -3
  20. data/lib/utopia/localization.rb +18 -10
  21. data/lib/utopia/middleware.rb +2 -2
  22. data/lib/utopia/path.rb +40 -36
  23. data/lib/utopia/redirection.rb +0 -2
  24. data/lib/utopia/responder.rb +76 -0
  25. data/lib/utopia/version.rb +1 -1
  26. data/setup/.DS_Store +0 -0
  27. data/setup/server/.DS_Store +0 -0
  28. data/setup/site/.DS_Store +0 -0
  29. data/setup/site/.gitignore +8 -7
  30. data/setup/site/Gemfile +7 -5
  31. data/setup/site/pages/.DS_Store +0 -0
  32. data/setup/site/public/.DS_Store +0 -0
  33. metadata +81 -603
  34. data/.codeclimate.yml +0 -5
  35. data/.gitignore +0 -8
  36. data/.rspec +0 -4
  37. data/.travis.yml +0 -28
  38. data/.yardopts +0 -2
  39. data/Gemfile +0 -28
  40. data/README.md +0 -92
  41. data/Rakefile +0 -33
  42. data/benchmark/call_vs_check.rb +0 -38
  43. data/benchmark/const_vs_hash.rb +0 -35
  44. data/benchmark/hash_vs_openstruct.rb +0 -54
  45. data/benchmark/string_vs_symbol.rb +0 -14
  46. data/benchmark/struct_vs_class.rb +0 -91
  47. data/docs/.nojekyll +0 -0
  48. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
  49. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
  50. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
  51. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
  52. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
  53. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
  54. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
  55. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
  56. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
  57. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
  58. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
  59. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
  60. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
  61. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
  62. data/docs/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
  63. data/docs/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
  64. data/docs/_components/jquery-syntax/base/theme.js +0 -1
  65. data/docs/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
  66. data/docs/_components/jquery-syntax/bright/theme.js +0 -1
  67. data/docs/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
  68. data/docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
  69. data/docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
  70. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
  71. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
  72. data/docs/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
  73. data/docs/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
  74. data/docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
  75. data/docs/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
  76. data/docs/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
  77. data/docs/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
  78. data/docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
  79. data/docs/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
  80. data/docs/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
  81. data/docs/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
  82. data/docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
  83. data/docs/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
  84. data/docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
  85. data/docs/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
  86. data/docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
  87. data/docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
  88. data/docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
  89. data/docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
  90. data/docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
  91. data/docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
  92. data/docs/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
  93. data/docs/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
  94. data/docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
  95. data/docs/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
  96. data/docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
  97. data/docs/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
  98. data/docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
  99. data/docs/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
  100. data/docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
  101. data/docs/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
  102. data/docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
  103. data/docs/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
  104. data/docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
  105. data/docs/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
  106. data/docs/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
  107. data/docs/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
  108. data/docs/_components/jquery-syntax/jquery.syntax.js +0 -258
  109. data/docs/_components/jquery-syntax/jquery.syntax.min.js +0 -13
  110. data/docs/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
  111. data/docs/_components/jquery-syntax/paper/theme.js +0 -1
  112. data/docs/_components/jquery/core.js +0 -482
  113. data/docs/_components/jquery/jquery.js +0 -10220
  114. data/docs/_components/jquery/jquery.min.js +0 -4
  115. data/docs/_components/jquery/jquery.min.map +0 -1
  116. data/docs/_components/jquery/jquery.slim.js +0 -8107
  117. data/docs/_components/jquery/jquery.slim.min.js +0 -4
  118. data/docs/_components/jquery/jquery.slim.min.map +0 -1
  119. data/docs/_static/icon.png +0 -0
  120. data/docs/_static/site.css +0 -205
  121. data/docs/_static/utopia-background.svg +0 -1
  122. data/docs/_static/utopia.svg +0 -1
  123. data/docs/code/Utopia.html +0 -517
  124. data/docs/code/Utopia/Basename.html +0 -654
  125. data/docs/code/Utopia/Bootstrap.html +0 -538
  126. data/docs/code/Utopia/Command.html +0 -213
  127. data/docs/code/Utopia/Command/Environment.html +0 -321
  128. data/docs/code/Utopia/Command/Server.html +0 -214
  129. data/docs/code/Utopia/Command/Server/Create.html +0 -222
  130. data/docs/code/Utopia/Command/Server/Environment.html +0 -236
  131. data/docs/code/Utopia/Command/Server/Update.html +0 -317
  132. data/docs/code/Utopia/Command/Setup.html +0 -145
  133. data/docs/code/Utopia/Command/Setup/Server.html +0 -298
  134. data/docs/code/Utopia/Command/Setup/Site.html +0 -180
  135. data/docs/code/Utopia/Command/Site.html +0 -285
  136. data/docs/code/Utopia/Command/Site/Create.html +0 -324
  137. data/docs/code/Utopia/Command/Site/Update.html +0 -407
  138. data/docs/code/Utopia/Command/Top.html +0 -279
  139. data/docs/code/Utopia/Content.html +0 -832
  140. data/docs/code/Utopia/Content/Document.html +0 -1822
  141. data/docs/code/Utopia/Content/Document/State.html +0 -1220
  142. data/docs/code/Utopia/Content/Link.html +0 -1286
  143. data/docs/code/Utopia/Content/Links.html +0 -847
  144. data/docs/code/Utopia/Content/MarkupParser.html +0 -881
  145. data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +0 -422
  146. data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +0 -615
  147. data/docs/code/Utopia/Content/Namespace.html +0 -485
  148. data/docs/code/Utopia/Content/Node.html +0 -1188
  149. data/docs/code/Utopia/Content/Node/Context.html +0 -938
  150. data/docs/code/Utopia/Content/Response.html +0 -813
  151. data/docs/code/Utopia/Content/SymbolicHash.html +0 -419
  152. data/docs/code/Utopia/Content/Tag.html +0 -399
  153. data/docs/code/Utopia/Content/Tags.html +0 -136
  154. data/docs/code/Utopia/Content/Tags/ContentTag.html +0 -187
  155. data/docs/code/Utopia/Content/Tags/DeferredTag.html +0 -193
  156. data/docs/code/Utopia/Content/Tags/Library.html +0 -333
  157. data/docs/code/Utopia/Content/Tags/NodeTag.html +0 -193
  158. data/docs/code/Utopia/Content/UnbalancedTagError.html +0 -298
  159. data/docs/code/Utopia/ContentLength.html +0 -343
  160. data/docs/code/Utopia/Controller.html +0 -907
  161. data/docs/code/Utopia/Controller/Actions.html +0 -289
  162. data/docs/code/Utopia/Controller/Actions/Action.html +0 -984
  163. data/docs/code/Utopia/Controller/Actions/ClassMethods.html +0 -442
  164. data/docs/code/Utopia/Controller/Base.html +0 -1216
  165. data/docs/code/Utopia/Controller/Respond.html +0 -293
  166. data/docs/code/Utopia/Controller/Respond/ClassMethods.html +0 -236
  167. data/docs/code/Utopia/Controller/Respond/Converter.html +0 -256
  168. data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +0 -484
  169. data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +0 -381
  170. data/docs/code/Utopia/Controller/Respond/Passthrough.html +0 -297
  171. data/docs/code/Utopia/Controller/Respond/Responder.html +0 -535
  172. data/docs/code/Utopia/Controller/Rewrite.html +0 -290
  173. data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +0 -242
  174. data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +0 -364
  175. data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +0 -464
  176. data/docs/code/Utopia/Controller/Rewrite/Rule.html +0 -209
  177. data/docs/code/Utopia/Controller/Variables.html +0 -550
  178. data/docs/code/Utopia/Controllers.html +0 -244
  179. data/docs/code/Utopia/Exceptions.html +0 -127
  180. data/docs/code/Utopia/Exceptions/Handler.html +0 -526
  181. data/docs/code/Utopia/Exceptions/Mailer.html +0 -482
  182. data/docs/code/Utopia/Extensions.html +0 -117
  183. data/docs/code/Utopia/Extensions/ArraySplit.html +0 -183
  184. data/docs/code/Utopia/Extensions/DateTimeComparison.html +0 -193
  185. data/docs/code/Utopia/Extensions/TimeDateComparison.html +0 -193
  186. data/docs/code/Utopia/HTTP.html +0 -250
  187. data/docs/code/Utopia/HTTP/Status.html +0 -415
  188. data/docs/code/Utopia/Locale.html +0 -606
  189. data/docs/code/Utopia/Localization.html +0 -1241
  190. data/docs/code/Utopia/Localization/Wrapper.html +0 -459
  191. data/docs/code/Utopia/Logger.html +0 -205
  192. data/docs/code/Utopia/Logger/CompactFormatter.html +0 -335
  193. data/docs/code/Utopia/Path.html +0 -3310
  194. data/docs/code/Utopia/Path/Matcher.html +0 -518
  195. data/docs/code/Utopia/Path/Matcher/MatchData.html +0 -475
  196. data/docs/code/Utopia/Redirection.html +0 -151
  197. data/docs/code/Utopia/Redirection/ClientRedirect.html +0 -717
  198. data/docs/code/Utopia/Redirection/DirectoryIndex.html +0 -298
  199. data/docs/code/Utopia/Redirection/Errors.html +0 -476
  200. data/docs/code/Utopia/Redirection/Moved.html +0 -312
  201. data/docs/code/Utopia/Redirection/RequestFailure.html +0 -226
  202. data/docs/code/Utopia/Redirection/Rewrite.html +0 -296
  203. data/docs/code/Utopia/Session.html +0 -889
  204. data/docs/code/Utopia/Session/LazyHash.html +0 -859
  205. data/docs/code/Utopia/Setup.html +0 -970
  206. data/docs/code/Utopia/Static.html +0 -696
  207. data/docs/code/Utopia/Static/LocalFile.html +0 -1104
  208. data/docs/code/Utopia/Static/MimeTypeLoader.html +0 -541
  209. data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +0 -124
  210. data/docs/code/Utopia/Tags.html +0 -115
  211. data/docs/code/Utopia/Tags/Environment.html +0 -314
  212. data/docs/code/Utopia/Tags/EnvironmentTag.html +0 -314
  213. data/docs/code/Utopia/Tags/Library.html +0 -340
  214. data/docs/code/_index.html +0 -758
  215. data/docs/code/class_list.html +0 -51
  216. data/docs/code/css/common.css +0 -1
  217. data/docs/code/css/full_list.css +0 -58
  218. data/docs/code/css/style.css +0 -496
  219. data/docs/code/file.README.html +0 -171
  220. data/docs/code/file_list.html +0 -56
  221. data/docs/code/frames.html +0 -17
  222. data/docs/code/index.html +0 -171
  223. data/docs/code/js/app.js +0 -292
  224. data/docs/code/js/full_list.js +0 -216
  225. data/docs/code/js/jquery.js +0 -4
  226. data/docs/code/materials/utopia.png +0 -0
  227. data/docs/code/materials/utopia.svg +0 -1
  228. data/docs/code/method_list.html +0 -3443
  229. data/docs/code/top-level-namespace.html +0 -110
  230. data/docs/index.html +0 -92
  231. data/docs/wiki.html +0 -92
  232. data/docs/wiki/development-environment-setup.html +0 -60
  233. data/docs/wiki/development-environment-setup/index.html +0 -60
  234. data/docs/wiki/edit.html +0 -103
  235. data/docs/wiki/faq/what-is-xnode.html +0 -79
  236. data/docs/wiki/faq/what-is-xnode/index.html +0 -79
  237. data/docs/wiki/javascript.html +0 -153
  238. data/docs/wiki/javascript/index.html +0 -153
  239. data/docs/wiki/middleware/content.html +0 -64
  240. data/docs/wiki/middleware/content/index.html +0 -64
  241. data/docs/wiki/middleware/controller.html +0 -104
  242. data/docs/wiki/middleware/controller/actions.html +0 -117
  243. data/docs/wiki/middleware/controller/actions/index.html +0 -117
  244. data/docs/wiki/middleware/controller/actions/rewrite/index.html +0 -48
  245. data/docs/wiki/middleware/controller/index.html +0 -104
  246. data/docs/wiki/middleware/controller/rewrite.html +0 -111
  247. data/docs/wiki/middleware/controller/rewrite/index.html +0 -111
  248. data/docs/wiki/middleware/localization.html +0 -59
  249. data/docs/wiki/middleware/localization/index.html +0 -59
  250. data/docs/wiki/middleware/redirection.html +0 -61
  251. data/docs/wiki/middleware/redirection/index.html +0 -61
  252. data/docs/wiki/middleware/session.html +0 -71
  253. data/docs/wiki/middleware/session/index.html +0 -71
  254. data/docs/wiki/middleware/static.html +0 -57
  255. data/docs/wiki/middleware/static/index.html +0 -57
  256. data/docs/wiki/server-setup.html +0 -118
  257. data/docs/wiki/server-setup/index.html +0 -118
  258. data/docs/wiki/testing.html +0 -59
  259. data/docs/wiki/testing/index.html +0 -59
  260. data/docs/wiki/updating-utopia.html +0 -108
  261. data/docs/wiki/updating-utopia/index.html +0 -108
  262. data/docs/wiki/your-first-page.html +0 -80
  263. data/docs/wiki/your-first-page/index.html +0 -80
  264. data/documentation/.rspec +0 -4
  265. data/documentation/.yarnrc +0 -1
  266. data/documentation/Gemfile +0 -19
  267. data/documentation/Guardfile +0 -9
  268. data/documentation/Rakefile +0 -9
  269. data/documentation/config.ru +0 -41
  270. data/documentation/config/README.md +0 -7
  271. data/documentation/config/environment.rb +0 -12
  272. data/documentation/lib/readme.txt +0 -1
  273. data/documentation/pages/_editor.xnode +0 -64
  274. data/documentation/pages/_heading.xnode +0 -2
  275. data/documentation/pages/_page.xnode +0 -40
  276. data/documentation/pages/errors/exception.xnode +0 -5
  277. data/documentation/pages/errors/file-not-found.xnode +0 -5
  278. data/documentation/pages/links.yaml +0 -2
  279. data/documentation/pages/wiki/_listing.xnode +0 -32
  280. data/documentation/pages/wiki/_navigation.xnode +0 -15
  281. data/documentation/pages/wiki/content.md +0 -35
  282. data/documentation/pages/wiki/controller.rb +0 -48
  283. data/documentation/pages/wiki/development-environment-setup/content.md +0 -16
  284. data/documentation/pages/wiki/edit.xnode +0 -10
  285. data/documentation/pages/wiki/faq/what-is-xnode/content.md +0 -37
  286. data/documentation/pages/wiki/javascript/content.md +0 -75
  287. data/documentation/pages/wiki/links.yaml +0 -6
  288. data/documentation/pages/wiki/middleware/content/content.md +0 -21
  289. data/documentation/pages/wiki/middleware/controller/actions/content.md +0 -76
  290. data/documentation/pages/wiki/middleware/controller/content.md +0 -62
  291. data/documentation/pages/wiki/middleware/controller/links.yaml +0 -4
  292. data/documentation/pages/wiki/middleware/controller/rewrite/content.md +0 -69
  293. data/documentation/pages/wiki/middleware/localization/content.md +0 -16
  294. data/documentation/pages/wiki/middleware/redirection/content.md +0 -17
  295. data/documentation/pages/wiki/middleware/session/content.md +0 -29
  296. data/documentation/pages/wiki/middleware/static/content.md +0 -13
  297. data/documentation/pages/wiki/server-setup/content.md +0 -52
  298. data/documentation/pages/wiki/show.xnode +0 -12
  299. data/documentation/pages/wiki/testing/content.md +0 -15
  300. data/documentation/pages/wiki/updating-utopia/content.md +0 -63
  301. data/documentation/pages/wiki/your-first-page/content.md +0 -38
  302. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
  303. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
  304. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
  305. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
  306. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
  307. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
  308. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
  309. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
  310. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
  311. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
  312. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
  313. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
  314. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
  315. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
  316. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
  317. data/documentation/public/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
  318. data/documentation/public/_components/jquery-syntax/base/theme.js +0 -1
  319. data/documentation/public/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
  320. data/documentation/public/_components/jquery-syntax/bright/theme.js +0 -1
  321. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
  322. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
  323. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
  324. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
  325. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
  326. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
  327. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
  328. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
  329. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
  330. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
  331. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
  332. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
  333. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
  334. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
  335. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
  336. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
  337. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
  338. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
  339. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
  340. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
  341. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
  342. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
  343. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
  344. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
  345. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
  346. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
  347. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
  348. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
  349. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
  350. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
  351. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
  352. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
  353. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
  354. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
  355. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
  356. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
  357. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
  358. data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
  359. data/documentation/public/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
  360. data/documentation/public/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
  361. data/documentation/public/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
  362. data/documentation/public/_components/jquery-syntax/jquery.syntax.js +0 -258
  363. data/documentation/public/_components/jquery-syntax/jquery.syntax.min.js +0 -13
  364. data/documentation/public/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
  365. data/documentation/public/_components/jquery-syntax/paper/theme.js +0 -1
  366. data/documentation/public/_components/jquery/core.js +0 -482
  367. data/documentation/public/_components/jquery/jquery.js +0 -10220
  368. data/documentation/public/_components/jquery/jquery.min.js +0 -4
  369. data/documentation/public/_components/jquery/jquery.min.map +0 -1
  370. data/documentation/public/_components/jquery/jquery.slim.js +0 -8107
  371. data/documentation/public/_components/jquery/jquery.slim.min.js +0 -4
  372. data/documentation/public/_components/jquery/jquery.slim.min.map +0 -1
  373. data/documentation/public/_static +0 -1
  374. data/documentation/public/materials +0 -1
  375. data/documentation/spec/website_context.rb +0 -12
  376. data/documentation/spec/website_spec.rb +0 -16
  377. data/documentation/tasks +0 -1
  378. data/materials/utopia.png +0 -0
  379. data/materials/utopia.svg +0 -1
  380. data/setup/site/.yarnrc +0 -1
  381. data/spec/mock_node.rb +0 -16
  382. data/spec/spec_helper.rb +0 -13
  383. data/spec/utopia/command_spec.rb +0 -164
  384. data/spec/utopia/content/document_spec.rb +0 -60
  385. data/spec/utopia/content/link_spec.rb +0 -47
  386. data/spec/utopia/content/links/foo/index.xnode +0 -0
  387. data/spec/utopia/content/links/foo/links.yaml +0 -2
  388. data/spec/utopia/content/links/foo/test.de.xnode +0 -0
  389. data/spec/utopia/content/links/foo/test.en.xnode +0 -0
  390. data/spec/utopia/content/links/links.yaml +0 -9
  391. data/spec/utopia/content/links/welcome.xnode +0 -0
  392. data/spec/utopia/content/links_spec.rb +0 -101
  393. data/spec/utopia/content/localized/five/index.en.xnode +0 -0
  394. data/spec/utopia/content/localized/four/index.en.xnode +0 -0
  395. data/spec/utopia/content/localized/four/index.zh.xnode +0 -0
  396. data/spec/utopia/content/localized/four/links.yaml +0 -4
  397. data/spec/utopia/content/localized/links.yaml +0 -16
  398. data/spec/utopia/content/localized/one.xnode +0 -0
  399. data/spec/utopia/content/localized/three/index.xnode +0 -0
  400. data/spec/utopia/content/localized/two.en.xnode +0 -0
  401. data/spec/utopia/content/localized/two.zh.xnode +0 -0
  402. data/spec/utopia/content/markup_spec.rb +0 -96
  403. data/spec/utopia/content/namespace_spec.rb +0 -45
  404. data/spec/utopia/content/node/lookup/content.xnode +0 -1
  405. data/spec/utopia/content/node/lookup/index.xnode +0 -1
  406. data/spec/utopia/content/node/ordered/first.xnode +0 -0
  407. data/spec/utopia/content/node/ordered/index.xnode +0 -0
  408. data/spec/utopia/content/node/ordered/links.yaml +0 -4
  409. data/spec/utopia/content/node/ordered/second.xnode +0 -0
  410. data/spec/utopia/content/node/related/foo.en.xnode +0 -0
  411. data/spec/utopia/content/node/related/foo.ja.xnode +0 -0
  412. data/spec/utopia/content/node/related/links.yaml +0 -4
  413. data/spec/utopia/content/node_spec.rb +0 -97
  414. data/spec/utopia/content/response_spec.rb +0 -54
  415. data/spec/utopia/content/tags_spec.rb +0 -82
  416. data/spec/utopia/content_spec.rb +0 -100
  417. data/spec/utopia/content_spec.ru +0 -6
  418. data/spec/utopia/content_spec/_heading.xnode +0 -1
  419. data/spec/utopia/content_spec/content/_show-value.xnode +0 -1
  420. data/spec/utopia/content_spec/content/links.yaml +0 -2
  421. data/spec/utopia/content_spec/content/test-partial.xnode +0 -1
  422. data/spec/utopia/content_spec/index.xnode +0 -1
  423. data/spec/utopia/content_spec/node/index.xnode +0 -1
  424. data/spec/utopia/content_spec/test.xnode +0 -10
  425. data/spec/utopia/controller/actions_spec.rb +0 -62
  426. data/spec/utopia/controller/middleware_spec.rb +0 -88
  427. data/spec/utopia/controller/middleware_spec.ru +0 -6
  428. data/spec/utopia/controller/middleware_spec/controller/controller.rb +0 -27
  429. data/spec/utopia/controller/middleware_spec/controller/index.xnode +0 -1
  430. data/spec/utopia/controller/middleware_spec/controller/nested/controller.rb +0 -7
  431. data/spec/utopia/controller/middleware_spec/empty/controller.rb +0 -0
  432. data/spec/utopia/controller/middleware_spec/redirect/controller.rb +0 -12
  433. data/spec/utopia/controller/middleware_spec/redirect/test/controller.rb +0 -9
  434. data/spec/utopia/controller/respond_spec.rb +0 -174
  435. data/spec/utopia/controller/respond_spec.ru +0 -12
  436. data/spec/utopia/controller/respond_spec/api/controller.rb +0 -28
  437. data/spec/utopia/controller/respond_spec/errors/controller.rb +0 -14
  438. data/spec/utopia/controller/respond_spec/errors/file-not-found.xnode +0 -8
  439. data/spec/utopia/controller/respond_spec/html/controller.rb +0 -11
  440. data/spec/utopia/controller/respond_spec/rewrite/controller.rb +0 -13
  441. data/spec/utopia/controller/rewrite_spec.rb +0 -80
  442. data/spec/utopia/controller/sequence_spec.rb +0 -135
  443. data/spec/utopia/controller/variables_spec.rb +0 -59
  444. data/spec/utopia/controller/websocket_spec.rb +0 -68
  445. data/spec/utopia/controller/websocket_spec.ru +0 -5
  446. data/spec/utopia/controller/websocket_spec/server/controller.rb +0 -11
  447. data/spec/utopia/exceptions/handler_spec.rb +0 -47
  448. data/spec/utopia/exceptions/handler_spec.ru +0 -8
  449. data/spec/utopia/exceptions/handler_spec/controller.rb +0 -19
  450. data/spec/utopia/exceptions/mailer_spec.rb +0 -43
  451. data/spec/utopia/exceptions/mailer_spec.ru +0 -10
  452. data/spec/utopia/extensions_spec.rb +0 -73
  453. data/spec/utopia/http/status_spec.rb +0 -44
  454. data/spec/utopia/locale_spec.rb +0 -58
  455. data/spec/utopia/localization_spec.rb +0 -92
  456. data/spec/utopia/localization_spec.ru +0 -15
  457. data/spec/utopia/localization_spec/controller.rb +0 -21
  458. data/spec/utopia/localization_spec/localized.de.txt +0 -1
  459. data/spec/utopia/localization_spec/localized.en.txt +0 -1
  460. data/spec/utopia/localization_spec/localized.ja.txt +0 -1
  461. data/spec/utopia/localization_spec/test.txt +0 -1
  462. data/spec/utopia/middleware_spec.rb +0 -31
  463. data/spec/utopia/path/matcher_spec.rb +0 -66
  464. data/spec/utopia/path_spec.rb +0 -162
  465. data/spec/utopia/performance_spec.rb +0 -92
  466. data/spec/utopia/performance_spec/cache/head/readme.txt +0 -1
  467. data/spec/utopia/performance_spec/cache/meta/readme.txt +0 -1
  468. data/spec/utopia/performance_spec/config.ru +0 -35
  469. data/spec/utopia/performance_spec/lib/readme.txt +0 -1
  470. data/spec/utopia/performance_spec/pages/_heading.xnode +0 -2
  471. data/spec/utopia/performance_spec/pages/_page.xnode +0 -26
  472. data/spec/utopia/performance_spec/pages/api/controller.rb +0 -8
  473. data/spec/utopia/performance_spec/pages/errors/exception.xnode +0 -5
  474. data/spec/utopia/performance_spec/pages/errors/file-not-found.xnode +0 -5
  475. data/spec/utopia/performance_spec/pages/links.yaml +0 -2
  476. data/spec/utopia/performance_spec/pages/welcome/index.xnode +0 -17
  477. data/spec/utopia/rack_helper.rb +0 -32
  478. data/spec/utopia/redirection_spec.rb +0 -77
  479. data/spec/utopia/redirection_spec.ru +0 -27
  480. data/spec/utopia/session_spec.rb +0 -189
  481. data/spec/utopia/session_spec.ru +0 -24
  482. data/spec/utopia/setup_spec.rb +0 -56
  483. data/spec/utopia/static_spec.rb +0 -49
  484. data/spec/utopia/static_spec.ru +0 -5
  485. data/spec/utopia/static_spec/test.txt +0 -1
  486. 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
- };