utopia 2.13.4 → 2.16.1

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 (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 +0,0 @@
1
- localized.en.txt
@@ -1 +0,0 @@
1
- localized.ja.txt
@@ -1 +0,0 @@
1
- Hello World!
@@ -1,31 +0,0 @@
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 'utopia/middleware'
24
-
25
- module Utopia::MiddlewareSpec
26
- describe Utopia do
27
- it "should give a default path relative to the cwd" do
28
- expect(File).to exist(Utopia::default_root('content_spec', File.dirname(__FILE__)))
29
- end
30
- end
31
- end
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env rspec
2
- # frozen_string_literal: true
3
-
4
- # Copyright, 2015, by Samuel G. D. Williams. <http://www.codeotaku.com>
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
-
24
- require 'utopia/path/matcher'
25
-
26
- module Utopia::Path::MatcherSpec
27
- describe Utopia::Path::Matcher do
28
- it "should match strings" do
29
- path = Utopia::Path['users/20/edit']
30
- matcher = Utopia::Path::Matcher[users: 'users']
31
-
32
- match_data = matcher.match(path)
33
- expect(match_data).to_not be nil
34
-
35
- expect(match_data.post_match).to be == Utopia::Path['20/edit']
36
- end
37
-
38
- it "shouldn't match strings" do
39
- path = Utopia::Path['users/20/edit']
40
- matcher = Utopia::Path::Matcher[accounts: 'accounts']
41
-
42
- match_data = matcher.match(path)
43
- expect(match_data).to be nil
44
- end
45
-
46
- it "shouldn't match integer" do
47
- path = Utopia::Path['users/20/edit']
48
- matcher = Utopia::Path::Matcher[id: Integer]
49
-
50
- match_data = matcher.match(path)
51
- expect(match_data).to be nil
52
- end
53
-
54
- it "should match regexps" do
55
- path = Utopia::Path['users/20/edit']
56
- matcher = Utopia::Path::Matcher[users: /users/, id: Integer, action: String]
57
-
58
- match_data = matcher.match(path)
59
- expect(match_data).to_not be_falsey
60
-
61
- expect(match_data[:users].to_s).to be == 'users'
62
- expect(match_data[:id]).to be == 20
63
- expect(match_data[:action]).to be == 'edit'
64
- end
65
- end
66
- end
@@ -1,162 +0,0 @@
1
- #!/usr/bin/env rspec
2
- # frozen_string_literal: true
3
-
4
- # Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining a copy
7
- # of this software and associated documentation files (the "Software"), to deal
8
- # in the Software without restriction, including without limitation the rights
9
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- # copies of the Software, and to permit persons to whom the Software is
11
- # furnished to do so, subject to the following conditions:
12
- #
13
- # The above copyright notice and this permission notice shall be included in
14
- # all copies or substantial portions of the Software.
15
- #
16
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- # THE SOFTWARE.
23
-
24
- require 'utopia/path'
25
-
26
- RSpec.describe Utopia::Path do
27
- context "coder" do
28
- subject {"foo/bar/baz"}
29
- let(:instance) {described_class.load(subject)}
30
-
31
- it "loads a string" do
32
- expect(instance).to be_a described_class
33
- end
34
-
35
- it "dump generates the original string" do
36
- expect(described_class.dump(instance)).to be == subject
37
- end
38
- end
39
-
40
- it "should be root path" do
41
- root = Utopia::Path["/"]
42
-
43
- expect(root.components).to be == ['', '']
44
- expect(root.to_local_path).to be == '/'
45
- end
46
-
47
- it "should concatenate absolute paths" do
48
- root = Utopia::Path["/"]
49
-
50
- expect(root).to be_absolute
51
- expect(root + Utopia::Path["foo/bar"]).to be == Utopia::Path["/foo/bar"]
52
- end
53
-
54
- it "should compute all descendant paths" do
55
- root = Utopia::Path["/foo/bar"]
56
-
57
- descendants = root.descend.to_a
58
-
59
- expect(descendants[0].components).to be == [""]
60
- expect(descendants[1].components).to be == ["", "foo"]
61
- expect(descendants[2].components).to be == ["", "foo", "bar"]
62
-
63
- ascendants = root.ascend.to_a
64
-
65
- expect(descendants.reverse).to be == ascendants
66
- end
67
-
68
- it "should be able to remove relative path entries" do
69
- path = Utopia::Path["/foo/bar/../baz/."]
70
- expect(path.simplify.components).to be == ['', 'foo', 'baz']
71
-
72
- path = Utopia::Path["/foo/bar/../baz/./"]
73
- expect(path.simplify.components).to be == ['', 'foo', 'baz', '']
74
- end
75
-
76
- it "should remove the extension from the basename" do
77
- path = Utopia::Path["dir/foo.html"]
78
-
79
- expect(path.basename).to be == 'foo'
80
- expect(path.extension).to be == 'html'
81
- end
82
-
83
- it "should be able to convert into a directory" do
84
- path = Utopia::Path["foo/bar"]
85
-
86
- expect(path).to_not be_directory
87
-
88
- expect(path.to_directory).to be_directory
89
-
90
- dir_path = path.to_directory
91
- expect(dir_path.to_directory).to be == dir_path
92
- end
93
-
94
- it "should start with the given path" do
95
- path = Utopia::Path["/a/b/c/d/e"]
96
-
97
- expect(path.start_with?(path.dirname)).to be true
98
- end
99
-
100
- it "should split at the specified point" do
101
- path = Utopia::Path["/a/b/c/d/e"]
102
-
103
- expect(path.split('c')).to be == [Utopia::Path['/a/b'], Utopia::Path['d/e']]
104
- end
105
-
106
- it "shouldn't be able to modify frozen paths" do
107
- path = Utopia::Path["dir/foo.html"]
108
-
109
- path.freeze
110
-
111
- expect(path.frozen?).to be true
112
-
113
- expect{path[0] = 'bob'}.to raise_exception(RuntimeError)
114
- end
115
-
116
- it "should give the correct locale" do
117
- path = Utopia::Path["foo.en"]
118
-
119
- expect(path.extension).to be == 'en'
120
- end
121
-
122
- it "should give no locale" do
123
- path = Utopia::Path["foo"]
124
-
125
- expect(path.extension).to be == nil
126
- end
127
-
128
- it "should expand relative paths" do
129
- root = Utopia::Path['/root']
130
- path = Utopia::Path["dir/foo.html"]
131
-
132
- expect(path.expand(root)).to be == (root + path)
133
- end
134
-
135
- it "shouldn't expand absolute paths" do
136
- root = Utopia::Path['/root']
137
-
138
- expect(root.expand(root)).to be == root
139
- end
140
-
141
- it "should give the shortest path for outer paths" do
142
- input = Utopia::Path.create("/a/b/c/index")
143
- output = Utopia::Path.create("/a/b/c/d/e/")
144
-
145
- short = input.shortest_path(output)
146
-
147
- expect(short.components).to be == ["..", "..", "index"]
148
-
149
- expect((output + short).simplify).to be == input
150
- end
151
-
152
- it "should give the shortest path for inner paths" do
153
- input = Utopia::Path.create("/a/b/c/index")
154
- output = Utopia::Path.create("/a/")
155
-
156
- short = input.shortest_path(output)
157
-
158
- expect(short.components).to be == ["b", "c", "index"]
159
-
160
- expect((output + short).simplify).to be == input
161
- end
162
- end
@@ -1,92 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright, 2016, 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 'rack_helper'
24
-
25
- require 'benchmark/ips' if ENV['BENCHMARK']
26
- require 'ruby-prof' if ENV['PROFILE']
27
- require 'flamegraph' if ENV['FLAMEGRAPH']
28
-
29
- RSpec.describe "Utopia Performance" do
30
- include_context "rack app", "performance_spec/config.ru"
31
-
32
- if defined? Benchmark
33
- def benchmark(name = nil)
34
- Benchmark.ips do |benchmark|
35
- benchmark.report(name) do |i|
36
- yield i
37
- end
38
-
39
- benchmark.compare!
40
- end
41
- end
42
- elsif defined? RubyProf
43
- def benchmark(name)
44
- result = RubyProf.profile do
45
- yield 2000
46
- end
47
-
48
- #result.eliminate_methods!([/^((?!Utopia|Trenni).)*$/])
49
- printer = RubyProf::FlatPrinter.new(result)
50
- printer.print($stderr, min_percent: 1.0)
51
-
52
- printer = RubyProf::GraphHtmlPrinter.new(result)
53
- filename = name.gsub('/', '_') + '.html'
54
- File.open(filename, "w") do |file|
55
- printer.print(file)
56
- end
57
- end
58
- elsif defined? Flamegraph
59
- def benchmark(name)
60
- filename = name.gsub('/', '_') + '.html'
61
- Flamegraph.generate(filename) do
62
- yield 1
63
- end
64
- end
65
- else
66
- def benchmark(name)
67
- yield 1
68
- end
69
- end
70
-
71
- it "should be fast to access basic page" do
72
- env = Rack::MockRequest.env_for("/welcome/index")
73
- status, headers, response = app.call(env)
74
-
75
- expect(status).to be == 200
76
-
77
- benchmark("/welcome/index") do |i|
78
- i.times { app.call(env) }
79
- end
80
- end
81
-
82
- it "should be fast to invoke a controller" do
83
- env = Rack::MockRequest.env_for("/api/fetch")
84
- status, headers, response = app.call(env)
85
-
86
- expect(status).to be == 200
87
-
88
- benchmark("/api/fetch") do |i|
89
- i.times { app.call(env) }
90
- end
91
- end
92
- end
@@ -1 +0,0 @@
1
- This is a place-holder file so that this directory is created correctly.
@@ -1 +0,0 @@
1
- This is a place-holder file so that this directory is created correctly.
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env rackup
2
- # frozen_string_literal: true
3
-
4
- require 'utopia'
5
- require 'json'
6
-
7
- self.freeze_app
8
-
9
- use Utopia::ContentLength
10
-
11
- use Utopia::Redirection::Rewrite, {
12
- '/' => '/welcome/index'
13
- }
14
-
15
- use Utopia::Redirection::DirectoryIndex
16
-
17
- use Utopia::Redirection::Errors, {
18
- 404 => '/errors/file-not-found'
19
- }
20
-
21
- # use Utopia::Localization,
22
- # :default_locale => 'en',
23
- # :locales => ['en', 'de', 'ja', 'zh']
24
-
25
- use Utopia::Controller,
26
- root: File.expand_path('pages', __dir__)
27
-
28
- use Utopia::Static,
29
- root: File.expand_path('pages', __dir__)
30
-
31
- # Serve dynamic content
32
- use Utopia::Content,
33
- root: File.expand_path('pages', __dir__)
34
-
35
- run lambda { |env| [404, {}, []] }
@@ -1 +0,0 @@
1
- You can add additional code for your application in this directory, and require it directly from the config.ru.
@@ -1,2 +0,0 @@
1
- <?r document.attributes[:title] ||= content ?>
2
- <h1><utopia:content/></h1>
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <?r response.content_type = "text/html; charset=utf-8" ?>
5
- <?r response.cache! ?>
6
-
7
- <?r if title = self[:title] ?>
8
- <title>#{title.gsub(/<.*?>/, "")} - Utopia</title>
9
- <?r else ?>
10
- <title>Utopia</title>
11
- <?r end ?>
12
-
13
- <link rel="icon" type="image/png" href="/_static/icon.png" />
14
- <link rel="stylesheet" href="/_static/site.css" type="text/css" media="screen" />
15
- </head>
16
-
17
- <body class="#{self[:class]}">
18
- <div id="header">
19
- <img src="/_static/utopia.svg" />
20
- </div>
21
-
22
- <div id="page">
23
- <utopia:content/>
24
- </div>
25
- </body>
26
- </html>
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- prepend Respond, Actions
4
- respond.with_json
5
-
6
- on 'fetch' do
7
- succeed! content: [1, 2, 3]
8
- end