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
@@ -35,6 +35,10 @@ module Utopia
35
35
  @env[LOCALIZATION_KEY]
36
36
  end
37
37
 
38
+ def localized?
39
+ localization != nil
40
+ end
41
+
38
42
  # Returns the current locale or nil if not localized.
39
43
  def current_locale
40
44
  @env[CURRENT_LOCALE_KEY]
@@ -49,6 +53,10 @@ module Utopia
49
53
  def all_locales
50
54
  localization && localization.all_locales || []
51
55
  end
56
+
57
+ def localized_path(path, locale)
58
+ "/#{locale}#{path}"
59
+ end
52
60
  end
53
61
 
54
62
  def self.[] request
@@ -66,15 +74,19 @@ module Utopia
66
74
  # @param default_locales [String] The locales to try in order if none is provided.
67
75
  # @param hosts [Hash<Pattern, String>] Specify a mapping of the HTTP_HOST header to a given locale.
68
76
  # @param ignore [Array<Pattern>] A list of patterns matched against PATH_INFO which will not be localized.
69
- def initialize(app, locales:, default_locale: nil, default_locales: nil, hosts: {}, ignore: [], **options)
77
+ def initialize(app, locales:, default_locale: nil, default_locales: nil, hosts: {}, ignore: [])
70
78
  @app = app
71
79
 
72
80
  @all_locales = HTTP::Accept::Languages::Locales.new(locales)
73
81
 
74
82
  # Locales here are represented as an array of strings, e.g. ['en', 'ja', 'cn', 'de'] and are used in order if no locale is specified by the user.
75
83
  unless @default_locales = default_locales
76
- # We append nil, i.e. no localization.
77
- @default_locales = @all_locales.names + [nil]
84
+ if default_locale
85
+ @default_locales = [default_locale, nil]
86
+ else
87
+ # We append nil, i.e. no localization.
88
+ @default_locales = @all_locales.names + [nil]
89
+ end
78
90
  end
79
91
 
80
92
  @default_locale = default_locale || @default_locales.first
@@ -87,6 +99,8 @@ module Utopia
87
99
  @hosts = hosts
88
100
 
89
101
  @ignore = ignore || options[:nonlocalized]
102
+
103
+ @methods = methods
90
104
  end
91
105
 
92
106
  def freeze
@@ -166,13 +180,7 @@ module Utopia
166
180
  return []
167
181
  end
168
182
 
169
- SAFE_METHODS = ['GET', 'HEAD']
170
-
171
183
  def localized?(env)
172
- # Only SAFE_METHODS can be localized:
173
- request_method = env[Rack::REQUEST_METHOD]
174
- return false unless SAFE_METHODS.include?(request_method)
175
-
176
184
  # Ignore requests which match the ignored paths:
177
185
  path_info = env[Rack::PATH_INFO]
178
186
  return false if @ignore.any? { |pattern| path_info[pattern] != nil }
@@ -206,7 +214,7 @@ module Utopia
206
214
 
207
215
  # We have a non-localized request, but there might be a localized resource. We return the best localization possible:
208
216
  preferred_locales(env) do |localized_env|
209
- # puts "Trying locale: #{env[CURRENT_LOCALE_KEY]}: #{env[Rack::PATH_INFO]}..."
217
+ # puts "Trying locale: #{localized_env[CURRENT_LOCALE_KEY]}: #{localized_env[Rack::PATH_INFO]}..."
210
218
 
211
219
  response = @app.call(localized_env)
212
220
 
@@ -39,7 +39,7 @@ module Utopia
39
39
 
40
40
  # The same as {default_root} but returns an instance of {Path}.
41
41
  # @return [Path] The path as requested.
42
- def self.default_path(*args)
43
- Path[default_root(*args)]
42
+ def self.default_path(*arguments)
43
+ Path[default_root(*arguments)]
44
44
  end
45
45
  end
@@ -30,9 +30,9 @@ module Utopia
30
30
  def initialize(components = [])
31
31
  @components = components
32
32
  end
33
-
33
+
34
34
  attr_accessor :components
35
-
35
+
36
36
  def freeze
37
37
  @components.freeze
38
38
 
@@ -65,22 +65,22 @@ module Utopia
65
65
 
66
66
  return self.create([".."] * up + path.components[i..-1])
67
67
  end
68
-
68
+
69
69
  def shortest_path(root)
70
70
  self.class.shortest_path(self, root)
71
71
  end
72
-
72
+
73
73
  # Converts '+' into whitespace and hex encoded characters into their equivalent characters.
74
74
  def self.unescape(string)
75
75
  string.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n) {
76
76
  [$1.delete('%')].pack('H*')
77
77
  }
78
78
  end
79
-
79
+
80
80
  def self.[] path
81
81
  self.create(path)
82
82
  end
83
-
83
+
84
84
  def self.split(path)
85
85
  case path
86
86
  when Path
@@ -115,23 +115,25 @@ module Utopia
115
115
  return self.new(path)
116
116
  when String
117
117
  return self.new(unescape(path).split(SEPARATOR, -1))
118
+ when nil
119
+ return nil
118
120
  else
119
121
  return self.new([path])
120
122
  end
121
123
  end
122
-
124
+
123
125
  def replace(other_path)
124
126
  @components = other_path.components.dup
125
127
  end
126
-
127
- def include?(*args)
128
- @components.include?(*args)
128
+
129
+ def include?(*arguments)
130
+ @components.include?(*arguments)
129
131
  end
130
132
 
131
133
  def directory?
132
134
  return @components.last == ''
133
135
  end
134
-
136
+
135
137
  def to_directory
136
138
  if directory?
137
139
  return self
@@ -139,15 +141,15 @@ module Utopia
139
141
  return join([''])
140
142
  end
141
143
  end
142
-
144
+
143
145
  def relative?
144
146
  @components.first != ''
145
147
  end
146
-
148
+
147
149
  def absolute?
148
150
  @components.first == ''
149
151
  end
150
-
152
+
151
153
  def to_absolute
152
154
  if absolute?
153
155
  return self
@@ -155,11 +157,11 @@ module Utopia
155
157
  return self.class.new([''] + @components)
156
158
  end
157
159
  end
158
-
160
+
159
161
  def to_relative!
160
162
  @components.shift if relative?
161
163
  end
162
-
164
+
163
165
  def to_str
164
166
  if @components == ['']
165
167
  SEPARATOR
@@ -167,21 +169,21 @@ module Utopia
167
169
  @components.join(SEPARATOR)
168
170
  end
169
171
  end
170
-
172
+
171
173
  alias to_s to_str
172
174
 
173
175
  def to_a
174
176
  @components
175
177
  end
176
-
178
+
177
179
  def join(other)
178
180
  self.class.new(@components + other).simplify
179
181
  end
180
-
182
+
181
183
  def expand(root)
182
184
  root + self
183
185
  end
184
-
186
+
185
187
  def +(other)
186
188
  if other.kind_of? Path
187
189
  if other.absolute?
@@ -197,11 +199,11 @@ module Utopia
197
199
  return join([other.to_s])
198
200
  end
199
201
  end
200
-
201
- def with_prefix(*args)
202
- self.class.create(*args) + self
202
+
203
+ def with_prefix(*arguments)
204
+ self.class.create(*arguments) + self
203
205
  end
204
-
206
+
205
207
  # Computes the difference of the path.
206
208
  # /a/b/c - /a/b -> c
207
209
  # a/b/c - a/b -> c
@@ -216,10 +218,10 @@ module Utopia
216
218
 
217
219
  return self.class.new(@components[i,@components.size])
218
220
  end
219
-
221
+
220
222
  def simplify
221
223
  result = absolute? ? [''] : []
222
-
224
+
223
225
  @components.each do |bit|
224
226
  if bit == ".."
225
227
  result.pop
@@ -227,18 +229,20 @@ module Utopia
227
229
  result << bit
228
230
  end
229
231
  end
230
-
232
+
231
233
  result << '' if directory?
232
234
 
233
235
  return self.class.new(result)
234
236
  end
235
-
237
+
238
+ # @return [String] the last path component without any file extension.
236
239
  def basename
237
240
  basename, _ = @components.last.split('.', 2)
238
241
 
239
242
  return basename || ''
240
243
  end
241
244
 
245
+ # @return [String] the last path component's file extension.
242
246
  def extension
243
247
  _, extension = @components.last.split('.', 2)
244
248
 
@@ -247,14 +251,14 @@ module Utopia
247
251
 
248
252
  def dirname(count = 1)
249
253
  path = self.class.new(@components[0...-count])
250
-
254
+
251
255
  return absolute? ? path.to_absolute : path
252
256
  end
253
-
254
- def to_local_path(separator = File::SEPARATOR)
257
+
258
+ def local_path(separator = File::SEPARATOR)
255
259
  @components.join(separator)
256
260
  end
257
-
261
+
258
262
  def descend(&block)
259
263
  return to_enum(:descend) unless block_given?
260
264
 
@@ -278,7 +282,7 @@ module Utopia
278
282
  components.pop
279
283
  end
280
284
  end
281
-
285
+
282
286
  def split(at)
283
287
  if at.kind_of? String
284
288
  at = @components.index(at)
@@ -290,15 +294,15 @@ module Utopia
290
294
  return nil
291
295
  end
292
296
  end
293
-
297
+
294
298
  def dup
295
299
  return Path.new(components.dup)
296
300
  end
297
-
301
+
298
302
  def <=> other
299
303
  @components <=> other.components
300
304
  end
301
-
305
+
302
306
  def eql? other
303
307
  self.class.eql?(other.class) and @components.eql?(other.components)
304
308
  end
@@ -54,8 +54,6 @@ module Utopia
54
54
  super
55
55
  end
56
56
 
57
- CONTENT_TYPE = 'Content-Type'.freeze
58
-
59
57
  def unhandled_error?(response)
60
58
  response[0] >= 400 && response[1].empty?
61
59
  end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+
23
+ require_relative 'middleware'
24
+
25
+ module Utopia
26
+ class Responder
27
+ Handler = Struct.new(:content_type, :block) do
28
+ def split(*arguments)
29
+ self.content_type.split(*arguments)
30
+ end
31
+
32
+ def call(context, request, media_range, *arguments, **options)
33
+ context.instance_exec(media_range, *arguments, **options, &self.block)
34
+ end
35
+ end
36
+
37
+ Responds = Struct.new(:responder, :context, :request) do
38
+ # @todo Refactor `object` -> `*arguments`...
39
+ def with(object, **options)
40
+ responder.call(context, request, object, **options)
41
+ end
42
+ end
43
+
44
+ def initialize
45
+ @handlers = HTTP::Accept::MediaTypes::Map.new
46
+ end
47
+
48
+ attr :handlers
49
+
50
+ def freeze
51
+ @handlers.freeze
52
+
53
+ super
54
+ end
55
+
56
+ def call(context, request, *arguments, **options)
57
+ # Parse the list of browser preferred content types and return ordered by priority:
58
+ media_types = HTTP::Accept::MediaTypes.browser_preferred_media_types(request.env)
59
+
60
+ handler, media_range = @handlers.for(media_types)
61
+
62
+ if handler
63
+ handler.call(context, request, media_range, *arguments, **options)
64
+ end
65
+ end
66
+
67
+ # Add a converter for the specified content type. Call the block with the response content if the request accepts the specified content_type.
68
+ def handle(content_type, &block)
69
+ @handlers << Handler.new(content_type, block)
70
+ end
71
+
72
+ def respond_to(context, request)
73
+ Responds.new(self, context, request)
74
+ end
75
+ end
76
+ end
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Utopia
24
- VERSION = "2.13.3"
24
+ VERSION = "2.16.0"
25
25
  end
@@ -1,14 +1,15 @@
1
1
  # Development specific:
2
- .rspec_status
3
- .tags*
4
- .bundle
5
- bin/
2
+ /.rspec_status
3
+ /.bundle
6
4
 
7
5
  # Temporary data should not be added to the repository:
8
- tmp/
6
+ /tmp
7
+
8
+ # Node modules are 3rd party dependencies which can be fetched easily:
9
+ /node_modules
9
10
 
10
11
  # This file should only ever exist on production, and may contain sensitive information:
11
- config/environment.yaml
12
+ /config/environment.yaml
12
13
 
13
14
  # Ignore resized gallery photos:
14
- public/_gallery/
15
+ /public/_gallery
metadata CHANGED
@@ -1,99 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.3
4
+ version: 2.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-14 00:00:00.000000000 Z
11
+ date: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: trenni
14
+ name: concurrent-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: mime-types
28
+ name: console
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.0'
33
+ version: '1.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.0'
40
+ version: '1.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: msgpack
42
+ name: http-accept
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '2.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '2.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: samovar
56
+ name: mail
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.1'
61
+ version: '2.6'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.1'
68
+ version: '2.6'
69
69
  - !ruby/object:Gem::Dependency
70
- name: console
70
+ name: mime-types
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.0'
75
+ version: '3.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.0'
82
+ version: '3.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: variant
84
+ name: msgpack
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0.1'
89
+ version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0.1'
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rack
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '2.2'
111
111
  - !ruby/object:Gem::Dependency
112
- name: http-accept
112
+ name: samovar
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
@@ -123,33 +123,61 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '2.1'
125
125
  - !ruby/object:Gem::Dependency
126
- name: mail
126
+ name: trenni
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '2.6'
131
+ version: '3.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '2.6'
138
+ version: '3.0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: concurrent-ruby
140
+ name: variant
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '1.0'
145
+ version: '0.1'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '1.0'
152
+ version: '0.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: async-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: async-websocket
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: bake
155
183
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +193,7 @@ dependencies:
165
193
  - !ruby/object:Gem::Version
166
194
  version: '0'
167
195
  - !ruby/object:Gem::Dependency
168
- name: falcon
196
+ name: bake-bundler
169
197
  requirement: !ruby/object:Gem::Requirement
170
198
  requirements:
171
199
  - - ">="
@@ -179,7 +207,7 @@ dependencies:
179
207
  - !ruby/object:Gem::Version
180
208
  version: '0'
181
209
  - !ruby/object:Gem::Dependency
182
- name: async-rspec
210
+ name: bake-modernize
183
211
  requirement: !ruby/object:Gem::Requirement
184
212
  requirements:
185
213
  - - ">="
@@ -193,7 +221,7 @@ dependencies:
193
221
  - !ruby/object:Gem::Version
194
222
  version: '0'
195
223
  - !ruby/object:Gem::Dependency
196
- name: async-websocket
224
+ name: bundler
197
225
  requirement: !ruby/object:Gem::Requirement
198
226
  requirements:
199
227
  - - ">="
@@ -221,19 +249,19 @@ dependencies:
221
249
  - !ruby/object:Gem::Version
222
250
  version: '0'
223
251
  - !ruby/object:Gem::Dependency
224
- name: bundler
252
+ name: falcon
225
253
  requirement: !ruby/object:Gem::Requirement
226
254
  requirements:
227
- - - "~>"
255
+ - - ">="
228
256
  - !ruby/object:Gem::Version
229
- version: '2.1'
257
+ version: '0'
230
258
  type: :development
231
259
  prerelease: false
232
260
  version_requirements: !ruby/object:Gem::Requirement
233
261
  requirements:
234
- - - "~>"
262
+ - - ">="
235
263
  - !ruby/object:Gem::Version
236
- version: '2.1'
264
+ version: '0'
237
265
  - !ruby/object:Gem::Dependency
238
266
  name: rspec
239
267
  requirement: !ruby/object:Gem::Requirement
@@ -249,7 +277,7 @@ dependencies:
249
277
  - !ruby/object:Gem::Version
250
278
  version: '3.6'
251
279
  - !ruby/object:Gem::Dependency
252
- name: rake
280
+ name: utopia-project
253
281
  requirement: !ruby/object:Gem::Requirement
254
282
  requirements:
255
283
  - - ">="
@@ -262,367 +290,19 @@ dependencies:
262
290
  - - ">="
263
291
  - !ruby/object:Gem::Version
264
292
  version: '0'
265
- description: "\t\tUtopia is a website generation framework which provides a robust
266
- set of tools\n\t\tto build highly complex dynamic websites. It uses the filesystem
267
- heavily for\n\t\tcontent and provides frameworks for interacting with files and
268
- directories as\n\t\tstructure representing the website.\n"
269
- email:
270
- - samuel.williams@oriontransfer.co.nz
293
+ description:
294
+ email:
271
295
  executables:
272
296
  - utopia
273
297
  extensions: []
274
298
  extra_rdoc_files: []
275
299
  files:
276
- - ".codeclimate.yml"
277
- - ".gitignore"
278
- - ".rspec"
279
- - ".travis.yml"
280
- - ".yardopts"
281
- - Gemfile
282
- - README.md
283
- - Rakefile
284
300
  - bake/utopia.rb
301
+ - bake/utopia/node.rb
285
302
  - bake/utopia/shell.rb
286
303
  - bake/utopia/static.rb
287
304
  - bake/utopia/test.rb
288
- - bake/utopia/yarn.rb
289
- - benchmark/call_vs_check.rb
290
- - benchmark/const_vs_hash.rb
291
- - benchmark/hash_vs_openstruct.rb
292
- - benchmark/string_vs_symbol.rb
293
- - benchmark/struct_vs_class.rb
294
305
  - bin/utopia
295
- - docs/.nojekyll
296
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css
297
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css
298
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css
299
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css
300
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css
301
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css
302
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.css.css
303
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css
304
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.html.css
305
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css
306
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css
307
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.python.css
308
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css
309
- - docs/_components/jquery-syntax/base/jquery.syntax.brush.xml.css
310
- - docs/_components/jquery-syntax/base/jquery.syntax.core.css
311
- - docs/_components/jquery-syntax/base/jquery.syntax.editor.css
312
- - docs/_components/jquery-syntax/base/theme.js
313
- - docs/_components/jquery-syntax/bright/jquery.syntax.core.css
314
- - docs/_components/jquery-syntax/bright/theme.js
315
- - docs/_components/jquery-syntax/jquery.syntax.brush.apache.js
316
- - docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js
317
- - docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js
318
- - docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js
319
- - docs/_components/jquery-syntax/jquery.syntax.brush.bash.js
320
- - docs/_components/jquery-syntax/jquery.syntax.brush.basic.js
321
- - docs/_components/jquery-syntax/jquery.syntax.brush.clang.js
322
- - docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js
323
- - docs/_components/jquery-syntax/jquery.syntax.brush.css.js
324
- - docs/_components/jquery-syntax/jquery.syntax.brush.diff.js
325
- - docs/_components/jquery-syntax/jquery.syntax.brush.go.js
326
- - docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js
327
- - docs/_components/jquery-syntax/jquery.syntax.brush.html.js
328
- - docs/_components/jquery-syntax/jquery.syntax.brush.io.js
329
- - docs/_components/jquery-syntax/jquery.syntax.brush.java.js
330
- - docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js
331
- - docs/_components/jquery-syntax/jquery.syntax.brush.kai.js
332
- - docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js
333
- - docs/_components/jquery-syntax/jquery.syntax.brush.lua.js
334
- - docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js
335
- - docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js
336
- - docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js
337
- - docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js
338
- - docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js
339
- - docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js
340
- - docs/_components/jquery-syntax/jquery.syntax.brush.php.js
341
- - docs/_components/jquery-syntax/jquery.syntax.brush.plain.js
342
- - docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js
343
- - docs/_components/jquery-syntax/jquery.syntax.brush.python.js
344
- - docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js
345
- - docs/_components/jquery-syntax/jquery.syntax.brush.scala.js
346
- - docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js
347
- - docs/_components/jquery-syntax/jquery.syntax.brush.sql.js
348
- - docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js
349
- - docs/_components/jquery-syntax/jquery.syntax.brush.swift.js
350
- - docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js
351
- - docs/_components/jquery-syntax/jquery.syntax.brush.xml.js
352
- - docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js
353
- - docs/_components/jquery-syntax/jquery.syntax.cache.js
354
- - docs/_components/jquery-syntax/jquery.syntax.core.js
355
- - docs/_components/jquery-syntax/jquery.syntax.editor.js
356
- - docs/_components/jquery-syntax/jquery.syntax.js
357
- - docs/_components/jquery-syntax/jquery.syntax.min.js
358
- - docs/_components/jquery-syntax/paper/jquery.syntax.core.css
359
- - docs/_components/jquery-syntax/paper/theme.js
360
- - docs/_components/jquery/core.js
361
- - docs/_components/jquery/jquery.js
362
- - docs/_components/jquery/jquery.min.js
363
- - docs/_components/jquery/jquery.min.map
364
- - docs/_components/jquery/jquery.slim.js
365
- - docs/_components/jquery/jquery.slim.min.js
366
- - docs/_components/jquery/jquery.slim.min.map
367
- - docs/_static/icon.png
368
- - docs/_static/site.css
369
- - docs/_static/utopia-background.svg
370
- - docs/_static/utopia.svg
371
- - docs/code/Utopia.html
372
- - docs/code/Utopia/Basename.html
373
- - docs/code/Utopia/Bootstrap.html
374
- - docs/code/Utopia/Command.html
375
- - docs/code/Utopia/Command/Environment.html
376
- - docs/code/Utopia/Command/Server.html
377
- - docs/code/Utopia/Command/Server/Create.html
378
- - docs/code/Utopia/Command/Server/Environment.html
379
- - docs/code/Utopia/Command/Server/Update.html
380
- - docs/code/Utopia/Command/Setup.html
381
- - docs/code/Utopia/Command/Setup/Server.html
382
- - docs/code/Utopia/Command/Setup/Site.html
383
- - docs/code/Utopia/Command/Site.html
384
- - docs/code/Utopia/Command/Site/Create.html
385
- - docs/code/Utopia/Command/Site/Update.html
386
- - docs/code/Utopia/Command/Top.html
387
- - docs/code/Utopia/Content.html
388
- - docs/code/Utopia/Content/Document.html
389
- - docs/code/Utopia/Content/Document/State.html
390
- - docs/code/Utopia/Content/Link.html
391
- - docs/code/Utopia/Content/Links.html
392
- - docs/code/Utopia/Content/MarkupParser.html
393
- - docs/code/Utopia/Content/MarkupParser/ParsedTag.html
394
- - docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html
395
- - docs/code/Utopia/Content/Namespace.html
396
- - docs/code/Utopia/Content/Node.html
397
- - docs/code/Utopia/Content/Node/Context.html
398
- - docs/code/Utopia/Content/Response.html
399
- - docs/code/Utopia/Content/SymbolicHash.html
400
- - docs/code/Utopia/Content/Tag.html
401
- - docs/code/Utopia/Content/Tags.html
402
- - docs/code/Utopia/Content/Tags/ContentTag.html
403
- - docs/code/Utopia/Content/Tags/DeferredTag.html
404
- - docs/code/Utopia/Content/Tags/Library.html
405
- - docs/code/Utopia/Content/Tags/NodeTag.html
406
- - docs/code/Utopia/Content/UnbalancedTagError.html
407
- - docs/code/Utopia/ContentLength.html
408
- - docs/code/Utopia/Controller.html
409
- - docs/code/Utopia/Controller/Actions.html
410
- - docs/code/Utopia/Controller/Actions/Action.html
411
- - docs/code/Utopia/Controller/Actions/ClassMethods.html
412
- - docs/code/Utopia/Controller/Base.html
413
- - docs/code/Utopia/Controller/Respond.html
414
- - docs/code/Utopia/Controller/Respond/ClassMethods.html
415
- - docs/code/Utopia/Controller/Respond/Converter.html
416
- - docs/code/Utopia/Controller/Respond/Converter/Callback.html
417
- - docs/code/Utopia/Controller/Respond/Converter/ToJSON.html
418
- - docs/code/Utopia/Controller/Respond/Passthrough.html
419
- - docs/code/Utopia/Controller/Respond/Responder.html
420
- - docs/code/Utopia/Controller/Rewrite.html
421
- - docs/code/Utopia/Controller/Rewrite/ClassMethods.html
422
- - docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html
423
- - docs/code/Utopia/Controller/Rewrite/Rewriter.html
424
- - docs/code/Utopia/Controller/Rewrite/Rule.html
425
- - docs/code/Utopia/Controller/Variables.html
426
- - docs/code/Utopia/Controllers.html
427
- - docs/code/Utopia/Exceptions.html
428
- - docs/code/Utopia/Exceptions/Handler.html
429
- - docs/code/Utopia/Exceptions/Mailer.html
430
- - docs/code/Utopia/Extensions.html
431
- - docs/code/Utopia/Extensions/ArraySplit.html
432
- - docs/code/Utopia/Extensions/DateTimeComparison.html
433
- - docs/code/Utopia/Extensions/TimeDateComparison.html
434
- - docs/code/Utopia/HTTP.html
435
- - docs/code/Utopia/HTTP/Status.html
436
- - docs/code/Utopia/Locale.html
437
- - docs/code/Utopia/Localization.html
438
- - docs/code/Utopia/Localization/Wrapper.html
439
- - docs/code/Utopia/Logger.html
440
- - docs/code/Utopia/Logger/CompactFormatter.html
441
- - docs/code/Utopia/Path.html
442
- - docs/code/Utopia/Path/Matcher.html
443
- - docs/code/Utopia/Path/Matcher/MatchData.html
444
- - docs/code/Utopia/Redirection.html
445
- - docs/code/Utopia/Redirection/ClientRedirect.html
446
- - docs/code/Utopia/Redirection/DirectoryIndex.html
447
- - docs/code/Utopia/Redirection/Errors.html
448
- - docs/code/Utopia/Redirection/Moved.html
449
- - docs/code/Utopia/Redirection/RequestFailure.html
450
- - docs/code/Utopia/Redirection/Rewrite.html
451
- - docs/code/Utopia/Session.html
452
- - docs/code/Utopia/Session/LazyHash.html
453
- - docs/code/Utopia/Setup.html
454
- - docs/code/Utopia/Static.html
455
- - docs/code/Utopia/Static/LocalFile.html
456
- - docs/code/Utopia/Static/MimeTypeLoader.html
457
- - docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html
458
- - docs/code/Utopia/Tags.html
459
- - docs/code/Utopia/Tags/Environment.html
460
- - docs/code/Utopia/Tags/EnvironmentTag.html
461
- - docs/code/Utopia/Tags/Library.html
462
- - docs/code/_index.html
463
- - docs/code/class_list.html
464
- - docs/code/css/common.css
465
- - docs/code/css/full_list.css
466
- - docs/code/css/style.css
467
- - docs/code/file.README.html
468
- - docs/code/file_list.html
469
- - docs/code/frames.html
470
- - docs/code/index.html
471
- - docs/code/js/app.js
472
- - docs/code/js/full_list.js
473
- - docs/code/js/jquery.js
474
- - docs/code/materials/utopia.png
475
- - docs/code/materials/utopia.svg
476
- - docs/code/method_list.html
477
- - docs/code/top-level-namespace.html
478
- - docs/index.html
479
- - docs/wiki.html
480
- - docs/wiki/development-environment-setup.html
481
- - docs/wiki/development-environment-setup/index.html
482
- - docs/wiki/edit.html
483
- - docs/wiki/faq/what-is-xnode.html
484
- - docs/wiki/faq/what-is-xnode/index.html
485
- - docs/wiki/javascript.html
486
- - docs/wiki/javascript/index.html
487
- - docs/wiki/middleware/content.html
488
- - docs/wiki/middleware/content/index.html
489
- - docs/wiki/middleware/controller.html
490
- - docs/wiki/middleware/controller/actions.html
491
- - docs/wiki/middleware/controller/actions/index.html
492
- - docs/wiki/middleware/controller/actions/rewrite/index.html
493
- - docs/wiki/middleware/controller/index.html
494
- - docs/wiki/middleware/controller/rewrite.html
495
- - docs/wiki/middleware/controller/rewrite/index.html
496
- - docs/wiki/middleware/localization.html
497
- - docs/wiki/middleware/localization/index.html
498
- - docs/wiki/middleware/redirection.html
499
- - docs/wiki/middleware/redirection/index.html
500
- - docs/wiki/middleware/session.html
501
- - docs/wiki/middleware/session/index.html
502
- - docs/wiki/middleware/static.html
503
- - docs/wiki/middleware/static/index.html
504
- - docs/wiki/server-setup.html
505
- - docs/wiki/server-setup/index.html
506
- - docs/wiki/testing.html
507
- - docs/wiki/testing/index.html
508
- - docs/wiki/updating-utopia.html
509
- - docs/wiki/updating-utopia/index.html
510
- - docs/wiki/your-first-page.html
511
- - docs/wiki/your-first-page/index.html
512
- - documentation/.rspec
513
- - documentation/.yarnrc
514
- - documentation/Gemfile
515
- - documentation/Guardfile
516
- - documentation/Rakefile
517
- - documentation/config.ru
518
- - documentation/config/README.md
519
- - documentation/config/environment.rb
520
- - documentation/lib/readme.txt
521
- - documentation/pages/_editor.xnode
522
- - documentation/pages/_heading.xnode
523
- - documentation/pages/_page.xnode
524
- - documentation/pages/errors/exception.xnode
525
- - documentation/pages/errors/file-not-found.xnode
526
- - documentation/pages/links.yaml
527
- - documentation/pages/wiki/_listing.xnode
528
- - documentation/pages/wiki/_navigation.xnode
529
- - documentation/pages/wiki/content.md
530
- - documentation/pages/wiki/controller.rb
531
- - documentation/pages/wiki/development-environment-setup/content.md
532
- - documentation/pages/wiki/edit.xnode
533
- - documentation/pages/wiki/faq/what-is-xnode/content.md
534
- - documentation/pages/wiki/javascript/content.md
535
- - documentation/pages/wiki/links.yaml
536
- - documentation/pages/wiki/middleware/content/content.md
537
- - documentation/pages/wiki/middleware/controller/actions/content.md
538
- - documentation/pages/wiki/middleware/controller/content.md
539
- - documentation/pages/wiki/middleware/controller/links.yaml
540
- - documentation/pages/wiki/middleware/controller/rewrite/content.md
541
- - documentation/pages/wiki/middleware/localization/content.md
542
- - documentation/pages/wiki/middleware/redirection/content.md
543
- - documentation/pages/wiki/middleware/session/content.md
544
- - documentation/pages/wiki/middleware/static/content.md
545
- - documentation/pages/wiki/server-setup/content.md
546
- - documentation/pages/wiki/show.xnode
547
- - documentation/pages/wiki/testing/content.md
548
- - documentation/pages/wiki/updating-utopia/content.md
549
- - documentation/pages/wiki/your-first-page/content.md
550
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css
551
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css
552
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css
553
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css
554
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash.css
555
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.clang.css
556
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.css.css
557
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.diff.css
558
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.html.css
559
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css
560
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css
561
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.python.css
562
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css
563
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.xml.css
564
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.core.css
565
- - documentation/public/_components/jquery-syntax/base/jquery.syntax.editor.css
566
- - documentation/public/_components/jquery-syntax/base/theme.js
567
- - documentation/public/_components/jquery-syntax/bright/jquery.syntax.core.css
568
- - documentation/public/_components/jquery-syntax/bright/theme.js
569
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.apache.js
570
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.applescript.js
571
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.assembly.js
572
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash-script.js
573
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash.js
574
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.basic.js
575
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.clang.js
576
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.csharp.js
577
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.css.js
578
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.diff.js
579
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.go.js
580
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.haskell.js
581
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.html.js
582
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.io.js
583
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.java.js
584
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.javascript.js
585
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.kai.js
586
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.lisp.js
587
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.lua.js
588
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.nginx.js
589
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.ocaml.js
590
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.ooc.js
591
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.pascal.js
592
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.perl5.js
593
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.php-script.js
594
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.php.js
595
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.plain.js
596
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.protobuf.js
597
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.python.js
598
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.ruby.js
599
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.scala.js
600
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js
601
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.sql.js
602
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.super-collider.js
603
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.swift.js
604
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.trenni.js
605
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.xml.js
606
- - documentation/public/_components/jquery-syntax/jquery.syntax.brush.yaml.js
607
- - documentation/public/_components/jquery-syntax/jquery.syntax.cache.js
608
- - documentation/public/_components/jquery-syntax/jquery.syntax.core.js
609
- - documentation/public/_components/jquery-syntax/jquery.syntax.editor.js
610
- - documentation/public/_components/jquery-syntax/jquery.syntax.js
611
- - documentation/public/_components/jquery-syntax/jquery.syntax.min.js
612
- - documentation/public/_components/jquery-syntax/paper/jquery.syntax.core.css
613
- - documentation/public/_components/jquery-syntax/paper/theme.js
614
- - documentation/public/_components/jquery/core.js
615
- - documentation/public/_components/jquery/jquery.js
616
- - documentation/public/_components/jquery/jquery.min.js
617
- - documentation/public/_components/jquery/jquery.min.map
618
- - documentation/public/_components/jquery/jquery.slim.js
619
- - documentation/public/_components/jquery/jquery.slim.min.js
620
- - documentation/public/_components/jquery/jquery.slim.min.map
621
- - documentation/public/_static
622
- - documentation/public/materials
623
- - documentation/spec/website_context.rb
624
- - documentation/spec/website_spec.rb
625
- - documentation/tasks
626
306
  - lib/utopia.rb
627
307
  - lib/utopia/command.rb
628
308
  - lib/utopia/command/environment.rb
@@ -657,6 +337,7 @@ files:
657
337
  - lib/utopia/path.rb
658
338
  - lib/utopia/path/matcher.rb
659
339
  - lib/utopia/redirection.rb
340
+ - lib/utopia/responder.rb
660
341
  - lib/utopia/session.rb
661
342
  - lib/utopia/session/lazy_hash.rb
662
343
  - lib/utopia/session/serialization.rb
@@ -666,12 +347,9 @@ files:
666
347
  - lib/utopia/static/local_file.rb
667
348
  - lib/utopia/static/mime_types.rb
668
349
  - lib/utopia/version.rb
669
- - materials/utopia.png
670
- - materials/utopia.svg
671
350
  - setup/server/git/hooks/post-receive
672
351
  - setup/site/.gitignore
673
352
  - setup/site/.rspec
674
- - setup/site/.yarnrc
675
353
  - setup/site/Gemfile
676
354
  - setup/site/Guardfile
677
355
  - setup/site/README.md
@@ -695,116 +373,11 @@ files:
695
373
  - setup/site/spec/spec_helper.rb
696
374
  - setup/site/spec/website_context.rb
697
375
  - setup/site/spec/website_spec.rb
698
- - spec/mock_node.rb
699
- - spec/spec_helper.rb
700
- - spec/utopia/command_spec.rb
701
- - spec/utopia/content/document_spec.rb
702
- - spec/utopia/content/link_spec.rb
703
- - spec/utopia/content/links/foo/index.xnode
704
- - spec/utopia/content/links/foo/links.yaml
705
- - spec/utopia/content/links/foo/test.de.xnode
706
- - spec/utopia/content/links/foo/test.en.xnode
707
- - spec/utopia/content/links/links.yaml
708
- - spec/utopia/content/links/welcome.xnode
709
- - spec/utopia/content/links_spec.rb
710
- - spec/utopia/content/localized/five/index.en.xnode
711
- - spec/utopia/content/localized/four/index.en.xnode
712
- - spec/utopia/content/localized/four/index.zh.xnode
713
- - spec/utopia/content/localized/four/links.yaml
714
- - spec/utopia/content/localized/links.yaml
715
- - spec/utopia/content/localized/one.xnode
716
- - spec/utopia/content/localized/three/index.xnode
717
- - spec/utopia/content/localized/two.en.xnode
718
- - spec/utopia/content/localized/two.zh.xnode
719
- - spec/utopia/content/markup_spec.rb
720
- - spec/utopia/content/namespace_spec.rb
721
- - spec/utopia/content/node/lookup/content.xnode
722
- - spec/utopia/content/node/lookup/index.xnode
723
- - spec/utopia/content/node/ordered/first.xnode
724
- - spec/utopia/content/node/ordered/index.xnode
725
- - spec/utopia/content/node/ordered/links.yaml
726
- - spec/utopia/content/node/ordered/second.xnode
727
- - spec/utopia/content/node/related/foo.en.xnode
728
- - spec/utopia/content/node/related/foo.ja.xnode
729
- - spec/utopia/content/node/related/links.yaml
730
- - spec/utopia/content/node_spec.rb
731
- - spec/utopia/content/response_spec.rb
732
- - spec/utopia/content/tags_spec.rb
733
- - spec/utopia/content_spec.rb
734
- - spec/utopia/content_spec.ru
735
- - spec/utopia/content_spec/_heading.xnode
736
- - spec/utopia/content_spec/content/_show-value.xnode
737
- - spec/utopia/content_spec/content/links.yaml
738
- - spec/utopia/content_spec/content/test-partial.xnode
739
- - spec/utopia/content_spec/index.xnode
740
- - spec/utopia/content_spec/node/index.xnode
741
- - spec/utopia/content_spec/test.xnode
742
- - spec/utopia/controller/actions_spec.rb
743
- - spec/utopia/controller/middleware_spec.rb
744
- - spec/utopia/controller/middleware_spec.ru
745
- - spec/utopia/controller/middleware_spec/controller/controller.rb
746
- - spec/utopia/controller/middleware_spec/controller/index.xnode
747
- - spec/utopia/controller/middleware_spec/controller/nested/controller.rb
748
- - spec/utopia/controller/middleware_spec/empty/controller.rb
749
- - spec/utopia/controller/middleware_spec/redirect/controller.rb
750
- - spec/utopia/controller/middleware_spec/redirect/test/controller.rb
751
- - spec/utopia/controller/respond_spec.rb
752
- - spec/utopia/controller/respond_spec.ru
753
- - spec/utopia/controller/respond_spec/api/controller.rb
754
- - spec/utopia/controller/respond_spec/errors/controller.rb
755
- - spec/utopia/controller/respond_spec/errors/file-not-found.xnode
756
- - spec/utopia/controller/respond_spec/html/controller.rb
757
- - spec/utopia/controller/respond_spec/rewrite/controller.rb
758
- - spec/utopia/controller/rewrite_spec.rb
759
- - spec/utopia/controller/sequence_spec.rb
760
- - spec/utopia/controller/variables_spec.rb
761
- - spec/utopia/controller/websocket_spec.rb
762
- - spec/utopia/controller/websocket_spec.ru
763
- - spec/utopia/controller/websocket_spec/server/controller.rb
764
- - spec/utopia/exceptions/handler_spec.rb
765
- - spec/utopia/exceptions/handler_spec.ru
766
- - spec/utopia/exceptions/handler_spec/controller.rb
767
- - spec/utopia/exceptions/mailer_spec.rb
768
- - spec/utopia/exceptions/mailer_spec.ru
769
- - spec/utopia/extensions_spec.rb
770
- - spec/utopia/http/status_spec.rb
771
- - spec/utopia/locale_spec.rb
772
- - spec/utopia/localization_spec.rb
773
- - spec/utopia/localization_spec.ru
774
- - spec/utopia/localization_spec/controller.rb
775
- - spec/utopia/localization_spec/localized.de.txt
776
- - spec/utopia/localization_spec/localized.en.txt
777
- - spec/utopia/localization_spec/localized.ja.txt
778
- - spec/utopia/localization_spec/test.txt
779
- - spec/utopia/middleware_spec.rb
780
- - spec/utopia/path/matcher_spec.rb
781
- - spec/utopia/path_spec.rb
782
- - spec/utopia/performance_spec.rb
783
- - spec/utopia/performance_spec/cache/head/readme.txt
784
- - spec/utopia/performance_spec/cache/meta/readme.txt
785
- - spec/utopia/performance_spec/config.ru
786
- - spec/utopia/performance_spec/lib/readme.txt
787
- - spec/utopia/performance_spec/pages/_heading.xnode
788
- - spec/utopia/performance_spec/pages/_page.xnode
789
- - spec/utopia/performance_spec/pages/api/controller.rb
790
- - spec/utopia/performance_spec/pages/errors/exception.xnode
791
- - spec/utopia/performance_spec/pages/errors/file-not-found.xnode
792
- - spec/utopia/performance_spec/pages/links.yaml
793
- - spec/utopia/performance_spec/pages/welcome/index.xnode
794
- - spec/utopia/rack_helper.rb
795
- - spec/utopia/redirection_spec.rb
796
- - spec/utopia/redirection_spec.ru
797
- - spec/utopia/session_spec.rb
798
- - spec/utopia/session_spec.ru
799
- - spec/utopia/setup_spec.rb
800
- - spec/utopia/static_spec.rb
801
- - spec/utopia/static_spec.ru
802
- - spec/utopia/static_spec/test.txt
803
- - utopia.gemspec
804
376
  homepage: https://github.com/ioquatix/utopia
805
377
  licenses:
806
378
  - MIT
807
- metadata: {}
379
+ metadata:
380
+ funding_uri: https://github.com/sponsors/ioquatix/
808
381
  post_install_message:
809
382
  rdoc_options: []
810
383
  require_paths:
@@ -824,109 +397,4 @@ rubygems_version: 3.1.2
824
397
  signing_key:
825
398
  specification_version: 4
826
399
  summary: Utopia is a framework for building dynamic content-driven websites.
827
- test_files:
828
- - spec/mock_node.rb
829
- - spec/spec_helper.rb
830
- - spec/utopia/command_spec.rb
831
- - spec/utopia/content/document_spec.rb
832
- - spec/utopia/content/link_spec.rb
833
- - spec/utopia/content/links/foo/index.xnode
834
- - spec/utopia/content/links/foo/links.yaml
835
- - spec/utopia/content/links/foo/test.de.xnode
836
- - spec/utopia/content/links/foo/test.en.xnode
837
- - spec/utopia/content/links/links.yaml
838
- - spec/utopia/content/links/welcome.xnode
839
- - spec/utopia/content/links_spec.rb
840
- - spec/utopia/content/localized/five/index.en.xnode
841
- - spec/utopia/content/localized/four/index.en.xnode
842
- - spec/utopia/content/localized/four/index.zh.xnode
843
- - spec/utopia/content/localized/four/links.yaml
844
- - spec/utopia/content/localized/links.yaml
845
- - spec/utopia/content/localized/one.xnode
846
- - spec/utopia/content/localized/three/index.xnode
847
- - spec/utopia/content/localized/two.en.xnode
848
- - spec/utopia/content/localized/two.zh.xnode
849
- - spec/utopia/content/markup_spec.rb
850
- - spec/utopia/content/namespace_spec.rb
851
- - spec/utopia/content/node/lookup/content.xnode
852
- - spec/utopia/content/node/lookup/index.xnode
853
- - spec/utopia/content/node/ordered/first.xnode
854
- - spec/utopia/content/node/ordered/index.xnode
855
- - spec/utopia/content/node/ordered/links.yaml
856
- - spec/utopia/content/node/ordered/second.xnode
857
- - spec/utopia/content/node/related/foo.en.xnode
858
- - spec/utopia/content/node/related/foo.ja.xnode
859
- - spec/utopia/content/node/related/links.yaml
860
- - spec/utopia/content/node_spec.rb
861
- - spec/utopia/content/response_spec.rb
862
- - spec/utopia/content/tags_spec.rb
863
- - spec/utopia/content_spec.rb
864
- - spec/utopia/content_spec.ru
865
- - spec/utopia/content_spec/_heading.xnode
866
- - spec/utopia/content_spec/content/_show-value.xnode
867
- - spec/utopia/content_spec/content/links.yaml
868
- - spec/utopia/content_spec/content/test-partial.xnode
869
- - spec/utopia/content_spec/index.xnode
870
- - spec/utopia/content_spec/node/index.xnode
871
- - spec/utopia/content_spec/test.xnode
872
- - spec/utopia/controller/actions_spec.rb
873
- - spec/utopia/controller/middleware_spec.rb
874
- - spec/utopia/controller/middleware_spec.ru
875
- - spec/utopia/controller/middleware_spec/controller/controller.rb
876
- - spec/utopia/controller/middleware_spec/controller/index.xnode
877
- - spec/utopia/controller/middleware_spec/controller/nested/controller.rb
878
- - spec/utopia/controller/middleware_spec/empty/controller.rb
879
- - spec/utopia/controller/middleware_spec/redirect/controller.rb
880
- - spec/utopia/controller/middleware_spec/redirect/test/controller.rb
881
- - spec/utopia/controller/respond_spec.rb
882
- - spec/utopia/controller/respond_spec.ru
883
- - spec/utopia/controller/respond_spec/api/controller.rb
884
- - spec/utopia/controller/respond_spec/errors/controller.rb
885
- - spec/utopia/controller/respond_spec/errors/file-not-found.xnode
886
- - spec/utopia/controller/respond_spec/html/controller.rb
887
- - spec/utopia/controller/respond_spec/rewrite/controller.rb
888
- - spec/utopia/controller/rewrite_spec.rb
889
- - spec/utopia/controller/sequence_spec.rb
890
- - spec/utopia/controller/variables_spec.rb
891
- - spec/utopia/controller/websocket_spec.rb
892
- - spec/utopia/controller/websocket_spec.ru
893
- - spec/utopia/controller/websocket_spec/server/controller.rb
894
- - spec/utopia/exceptions/handler_spec.rb
895
- - spec/utopia/exceptions/handler_spec.ru
896
- - spec/utopia/exceptions/handler_spec/controller.rb
897
- - spec/utopia/exceptions/mailer_spec.rb
898
- - spec/utopia/exceptions/mailer_spec.ru
899
- - spec/utopia/extensions_spec.rb
900
- - spec/utopia/http/status_spec.rb
901
- - spec/utopia/locale_spec.rb
902
- - spec/utopia/localization_spec.rb
903
- - spec/utopia/localization_spec.ru
904
- - spec/utopia/localization_spec/controller.rb
905
- - spec/utopia/localization_spec/localized.de.txt
906
- - spec/utopia/localization_spec/localized.en.txt
907
- - spec/utopia/localization_spec/localized.ja.txt
908
- - spec/utopia/localization_spec/test.txt
909
- - spec/utopia/middleware_spec.rb
910
- - spec/utopia/path/matcher_spec.rb
911
- - spec/utopia/path_spec.rb
912
- - spec/utopia/performance_spec.rb
913
- - spec/utopia/performance_spec/cache/head/readme.txt
914
- - spec/utopia/performance_spec/cache/meta/readme.txt
915
- - spec/utopia/performance_spec/config.ru
916
- - spec/utopia/performance_spec/lib/readme.txt
917
- - spec/utopia/performance_spec/pages/_heading.xnode
918
- - spec/utopia/performance_spec/pages/_page.xnode
919
- - spec/utopia/performance_spec/pages/api/controller.rb
920
- - spec/utopia/performance_spec/pages/errors/exception.xnode
921
- - spec/utopia/performance_spec/pages/errors/file-not-found.xnode
922
- - spec/utopia/performance_spec/pages/links.yaml
923
- - spec/utopia/performance_spec/pages/welcome/index.xnode
924
- - spec/utopia/rack_helper.rb
925
- - spec/utopia/redirection_spec.rb
926
- - spec/utopia/redirection_spec.ru
927
- - spec/utopia/session_spec.rb
928
- - spec/utopia/session_spec.ru
929
- - spec/utopia/setup_spec.rb
930
- - spec/utopia/static_spec.rb
931
- - spec/utopia/static_spec.ru
932
- - spec/utopia/static_spec/test.txt
400
+ test_files: []