utopia 2.2.0 → 2.3.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 (290) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +1 -0
  3. data/.travis.yml +3 -1
  4. data/Gemfile +2 -0
  5. data/README.md +2 -2
  6. data/Rakefile +19 -7
  7. data/docs/.nojekyll +0 -0
  8. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +6 -0
  9. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +5 -0
  10. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +8 -0
  11. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +6 -0
  12. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +10 -0
  13. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +3 -0
  14. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.css.css +14 -0
  15. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +16 -0
  16. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.html.css +5 -0
  17. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +3 -0
  18. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +2 -0
  19. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.python.css +6 -0
  20. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +2 -0
  21. data/docs/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +18 -0
  22. data/docs/_components/jquery-syntax/base/jquery.syntax.core.css +62 -0
  23. data/docs/_components/jquery-syntax/base/jquery.syntax.editor.css +6 -0
  24. data/docs/_components/jquery-syntax/base/theme.js +1 -0
  25. data/docs/_components/jquery-syntax/bright/jquery.syntax.core.css +27 -0
  26. data/docs/_components/jquery-syntax/bright/theme.js +1 -0
  27. data/docs/_components/jquery-syntax/jquery.syntax.brush.apache.js +41 -0
  28. data/docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js +57 -0
  29. data/docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js +37 -0
  30. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +67 -0
  31. data/docs/_components/jquery-syntax/jquery.syntax.brush.bash.js +33 -0
  32. data/docs/_components/jquery-syntax/jquery.syntax.brush.basic.js +51 -0
  33. data/docs/_components/jquery-syntax/jquery.syntax.brush.clang.js +89 -0
  34. data/docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js +47 -0
  35. data/docs/_components/jquery-syntax/jquery.syntax.brush.css.js +80 -0
  36. data/docs/_components/jquery-syntax/jquery.syntax.brush.diff.js +24 -0
  37. data/docs/_components/jquery-syntax/jquery.syntax.brush.go.js +47 -0
  38. data/docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js +45 -0
  39. data/docs/_components/jquery-syntax/jquery.syntax.brush.html.js +66 -0
  40. data/docs/_components/jquery-syntax/jquery.syntax.brush.io.js +45 -0
  41. data/docs/_components/jquery-syntax/jquery.syntax.brush.java.js +45 -0
  42. data/docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js +40 -0
  43. data/docs/_components/jquery-syntax/jquery.syntax.brush.kai.js +29 -0
  44. data/docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js +34 -0
  45. data/docs/_components/jquery-syntax/jquery.syntax.brush.lua.js +44 -0
  46. data/docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js +31 -0
  47. data/docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +73 -0
  48. data/docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js +46 -0
  49. data/docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js +51 -0
  50. data/docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js +52 -0
  51. data/docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js +48 -0
  52. data/docs/_components/jquery-syntax/jquery.syntax.brush.php.js +15 -0
  53. data/docs/_components/jquery-syntax/jquery.syntax.brush.plain.js +10 -0
  54. data/docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +43 -0
  55. data/docs/_components/jquery-syntax/jquery.syntax.brush.python.js +44 -0
  56. data/docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js +77 -0
  57. data/docs/_components/jquery-syntax/jquery.syntax.brush.scala.js +44 -0
  58. data/docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +29 -0
  59. data/docs/_components/jquery-syntax/jquery.syntax.brush.sql.js +31 -0
  60. data/docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +57 -0
  61. data/docs/_components/jquery-syntax/jquery.syntax.brush.swift.js +55 -0
  62. data/docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js +35 -0
  63. data/docs/_components/jquery-syntax/jquery.syntax.brush.xml.js +50 -0
  64. data/docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js +29 -0
  65. data/docs/_components/jquery-syntax/jquery.syntax.cache.js +65 -0
  66. data/docs/_components/jquery-syntax/jquery.syntax.core.js +1098 -0
  67. data/docs/_components/jquery-syntax/jquery.syntax.editor.js +291 -0
  68. data/docs/_components/jquery-syntax/jquery.syntax.js +258 -0
  69. data/docs/_components/jquery-syntax/jquery.syntax.min.js +13 -0
  70. data/docs/_components/jquery-syntax/paper/jquery.syntax.core.css +31 -0
  71. data/docs/_components/jquery-syntax/paper/theme.js +1 -0
  72. data/docs/_components/jquery/core.js +482 -0
  73. data/docs/_components/jquery/jquery.js +10220 -0
  74. data/docs/_components/jquery/jquery.min.js +4 -0
  75. data/docs/_components/jquery/jquery.min.map +1 -0
  76. data/docs/_components/jquery/jquery.slim.js +8107 -0
  77. data/docs/_components/jquery/jquery.slim.min.js +4 -0
  78. data/docs/_components/jquery/jquery.slim.min.map +1 -0
  79. data/docs/_static/icon.png +0 -0
  80. data/docs/_static/site.css +205 -0
  81. data/docs/_static/utopia-background.svg +1 -0
  82. data/docs/_static/utopia.svg +1 -0
  83. data/docs/code/Utopia.html +511 -0
  84. data/docs/code/Utopia/Basename.html +654 -0
  85. data/docs/code/Utopia/Bootstrap.html +538 -0
  86. data/docs/code/Utopia/Command.html +207 -0
  87. data/docs/code/Utopia/Command/Environment.html +321 -0
  88. data/docs/code/Utopia/Command/Server.html +214 -0
  89. data/docs/code/Utopia/Command/Server/Create.html +222 -0
  90. data/docs/code/Utopia/Command/Server/Environment.html +236 -0
  91. data/docs/code/Utopia/Command/Server/Update.html +317 -0
  92. data/docs/code/Utopia/Command/Setup.html +145 -0
  93. data/docs/code/Utopia/Command/Setup/Server.html +298 -0
  94. data/docs/code/Utopia/Command/Setup/Site.html +180 -0
  95. data/docs/code/Utopia/Command/Site.html +279 -0
  96. data/docs/code/Utopia/Command/Site/Create.html +324 -0
  97. data/docs/code/Utopia/Command/Site/Update.html +407 -0
  98. data/docs/code/Utopia/Command/Top.html +279 -0
  99. data/docs/code/Utopia/Content.html +826 -0
  100. data/docs/code/Utopia/Content/Document.html +1818 -0
  101. data/docs/code/Utopia/Content/Document/State.html +1220 -0
  102. data/docs/code/Utopia/Content/Link.html +1286 -0
  103. data/docs/code/Utopia/Content/Links.html +841 -0
  104. data/docs/code/Utopia/Content/MarkupParser.html +881 -0
  105. data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +422 -0
  106. data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +615 -0
  107. data/docs/code/Utopia/Content/Namespace.html +485 -0
  108. data/docs/code/Utopia/Content/Node.html +1188 -0
  109. data/docs/code/Utopia/Content/Node/Context.html +938 -0
  110. data/docs/code/Utopia/Content/Response.html +813 -0
  111. data/docs/code/Utopia/Content/SymbolicHash.html +419 -0
  112. data/docs/code/Utopia/Content/Tag.html +399 -0
  113. data/docs/code/Utopia/Content/Tags.html +136 -0
  114. data/docs/code/Utopia/Content/Tags/ContentTag.html +187 -0
  115. data/docs/code/Utopia/Content/Tags/DeferredTag.html +193 -0
  116. data/docs/code/Utopia/Content/Tags/Library.html +333 -0
  117. data/docs/code/Utopia/Content/Tags/NodeTag.html +193 -0
  118. data/docs/code/Utopia/Content/UnbalancedTagError.html +298 -0
  119. data/docs/code/Utopia/ContentLength.html +339 -0
  120. data/docs/code/Utopia/Controller.html +901 -0
  121. data/docs/code/Utopia/Controller/Actions.html +289 -0
  122. data/docs/code/Utopia/Controller/Actions/Action.html +978 -0
  123. data/docs/code/Utopia/Controller/Actions/ClassMethods.html +442 -0
  124. data/docs/code/Utopia/Controller/Base.html +1216 -0
  125. data/docs/code/Utopia/Controller/Respond.html +283 -0
  126. data/docs/code/Utopia/Controller/Respond/ClassMethods.html +236 -0
  127. data/docs/code/Utopia/Controller/Respond/Converter.html +256 -0
  128. data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +484 -0
  129. data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +375 -0
  130. data/docs/code/Utopia/Controller/Respond/Passthrough.html +291 -0
  131. data/docs/code/Utopia/Controller/Respond/Responder.html +529 -0
  132. data/docs/code/Utopia/Controller/Rewrite.html +290 -0
  133. data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +242 -0
  134. data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +364 -0
  135. data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +464 -0
  136. data/docs/code/Utopia/Controller/Rewrite/Rule.html +209 -0
  137. data/docs/code/Utopia/Controller/Variables.html +550 -0
  138. data/docs/code/Utopia/Controllers.html +244 -0
  139. data/docs/code/Utopia/Exceptions.html +127 -0
  140. data/docs/code/Utopia/Exceptions/Handler.html +526 -0
  141. data/docs/code/Utopia/Exceptions/Mailer.html +476 -0
  142. data/docs/code/Utopia/Extensions.html +117 -0
  143. data/docs/code/Utopia/Extensions/ArraySplit.html +183 -0
  144. data/docs/code/Utopia/Extensions/DateTimeComparison.html +193 -0
  145. data/docs/code/Utopia/Extensions/TimeDateComparison.html +193 -0
  146. data/docs/code/Utopia/HTTP.html +244 -0
  147. data/docs/code/Utopia/HTTP/Status.html +415 -0
  148. data/docs/code/Utopia/Locale.html +606 -0
  149. data/docs/code/Utopia/Localization.html +1235 -0
  150. data/docs/code/Utopia/Localization/Wrapper.html +459 -0
  151. data/docs/code/Utopia/Logger.html +205 -0
  152. data/docs/code/Utopia/Logger/CompactFormatter.html +335 -0
  153. data/docs/code/Utopia/Path.html +3304 -0
  154. data/docs/code/Utopia/Path/Matcher.html +518 -0
  155. data/docs/code/Utopia/Path/Matcher/MatchData.html +475 -0
  156. data/docs/code/Utopia/Redirection.html +145 -0
  157. data/docs/code/Utopia/Redirection/ClientRedirect.html +717 -0
  158. data/docs/code/Utopia/Redirection/DirectoryIndex.html +298 -0
  159. data/docs/code/Utopia/Redirection/Errors.html +470 -0
  160. data/docs/code/Utopia/Redirection/Moved.html +312 -0
  161. data/docs/code/Utopia/Redirection/RequestFailure.html +226 -0
  162. data/docs/code/Utopia/Redirection/Rewrite.html +296 -0
  163. data/docs/code/Utopia/Session.html +883 -0
  164. data/docs/code/Utopia/Session/LazyHash.html +859 -0
  165. data/docs/code/Utopia/Setup.html +964 -0
  166. data/docs/code/Utopia/Static.html +690 -0
  167. data/docs/code/Utopia/Static/LocalFile.html +1098 -0
  168. data/docs/code/Utopia/Static/MimeTypeLoader.html +541 -0
  169. data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +124 -0
  170. data/docs/code/Utopia/Tags.html +115 -0
  171. data/docs/code/Utopia/Tags/Environment.html +314 -0
  172. data/docs/code/Utopia/Tags/EnvironmentTag.html +314 -0
  173. data/docs/code/Utopia/Tags/Library.html +340 -0
  174. data/docs/code/_index.html +758 -0
  175. data/docs/code/class_list.html +51 -0
  176. data/docs/code/css/common.css +1 -0
  177. data/docs/code/css/full_list.css +58 -0
  178. data/docs/code/css/style.css +499 -0
  179. data/docs/code/file.README.html +169 -0
  180. data/docs/code/file_list.html +56 -0
  181. data/docs/code/frames.html +17 -0
  182. data/docs/code/index.html +169 -0
  183. data/docs/code/js/app.js +248 -0
  184. data/docs/code/js/full_list.js +216 -0
  185. data/docs/code/js/jquery.js +4 -0
  186. data/docs/code/materials/utopia.png +0 -0
  187. data/docs/code/materials/utopia.svg +1 -0
  188. data/docs/code/method_list.html +3443 -0
  189. data/docs/code/top-level-namespace.html +110 -0
  190. data/docs/index.html +92 -0
  191. data/docs/wiki.html +92 -0
  192. data/docs/wiki/bower-integration.html +74 -0
  193. data/docs/wiki/bower-integration/index.html +74 -0
  194. data/docs/wiki/development-environment-setup.html +60 -0
  195. data/docs/wiki/development-environment-setup/index.html +60 -0
  196. data/docs/wiki/edit.html +103 -0
  197. data/docs/wiki/faq/what-is-xnode.html +79 -0
  198. data/docs/wiki/faq/what-is-xnode/index.html +79 -0
  199. data/docs/wiki/middleware/content.html +64 -0
  200. data/docs/wiki/middleware/content/index.html +64 -0
  201. data/docs/wiki/middleware/controller.html +104 -0
  202. data/docs/wiki/middleware/controller/actions.html +117 -0
  203. data/docs/wiki/middleware/controller/actions/index.html +117 -0
  204. data/docs/wiki/middleware/controller/actions/rewrite/index.html +48 -0
  205. data/docs/wiki/middleware/controller/index.html +104 -0
  206. data/docs/wiki/middleware/controller/rewrite.html +111 -0
  207. data/docs/wiki/middleware/controller/rewrite/index.html +111 -0
  208. data/docs/wiki/middleware/localization.html +59 -0
  209. data/docs/wiki/middleware/localization/index.html +59 -0
  210. data/docs/wiki/middleware/redirection.html +61 -0
  211. data/docs/wiki/middleware/redirection/index.html +61 -0
  212. data/docs/wiki/middleware/session.html +71 -0
  213. data/docs/wiki/middleware/session/index.html +71 -0
  214. data/docs/wiki/middleware/static.html +57 -0
  215. data/docs/wiki/middleware/static/index.html +57 -0
  216. data/docs/wiki/server-setup.html +118 -0
  217. data/docs/wiki/server-setup/index.html +118 -0
  218. data/docs/wiki/testing.html +59 -0
  219. data/docs/wiki/testing/index.html +59 -0
  220. data/docs/wiki/updating-utopia.html +108 -0
  221. data/docs/wiki/updating-utopia/index.html +108 -0
  222. data/docs/wiki/your-first-page.html +80 -0
  223. data/docs/wiki/your-first-page/index.html +80 -0
  224. data/documentation/Guardfile +0 -12
  225. data/documentation/Rakefile +3 -0
  226. data/documentation/pages/_page.xnode +2 -0
  227. data/documentation/pages/wiki/content.md +1 -0
  228. data/documentation/pages/wiki/faq/what-is-xnode/content.md +37 -0
  229. data/documentation/pages/wiki/links.yaml +3 -1
  230. data/documentation/pages/wiki/server-setup/content.md +1 -1
  231. data/documentation/pages/wiki/show.xnode +2 -0
  232. data/documentation/pages/wiki/your-first-page/content.md +1 -1
  233. data/lib/utopia/command.rb +4 -4
  234. data/lib/utopia/command/environment.rb +73 -0
  235. data/lib/utopia/command/server.rb +19 -32
  236. data/lib/utopia/command/site.rb +26 -9
  237. data/lib/utopia/content/markup.rb +1 -1
  238. data/lib/utopia/setup.rb +49 -20
  239. data/lib/utopia/version.rb +1 -1
  240. data/setup/site/README.md +6 -7
  241. data/setup/site/Rakefile +3 -0
  242. data/setup/site/pages/_page.xnode +1 -1
  243. data/setup/site/public/_static/site.css +1 -1
  244. data/setup/site/tasks/bower.rake +3 -6
  245. data/setup/site/tasks/deploy.rake +1 -1
  246. data/setup/site/tasks/development.rake +1 -1
  247. data/setup/site/tasks/environment.rake +2 -2
  248. data/setup/site/tasks/static.rake +43 -0
  249. data/spec/utopia/command_spec.rb +170 -0
  250. data/spec/utopia/setup_spec.rb +20 -142
  251. metadata +225 -42
  252. data/documentation/public/_components/jquery-syntax/.sass-cache/040afc1428b286fb3c50151378b349a6149698d3/jquery.syntax.core.sassc +0 -0
  253. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.editor.sassc +0 -0
  254. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.fixed.sassc +0 -0
  255. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.inline.sassc +0 -0
  256. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.list.sassc +0 -0
  257. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.plain.sassc +0 -0
  258. data/documentation/public/_components/jquery-syntax/.sass-cache/098642d80a1682613dca2bba6fd0a3bc9fd2bf04/jquery.syntax.layout.table.sassc +0 -0
  259. data/documentation/public/_components/jquery-syntax/.sass-cache/10c58b30c53bf84f8360af8a864797092be26882/jquery.syntax.core.sassc +0 -0
  260. data/documentation/public/_components/jquery-syntax/.sass-cache/10c58b30c53bf84f8360af8a864797092be26882/jquery.syntax.layout.fixed.sassc +0 -0
  261. data/documentation/public/_components/jquery-syntax/.sass-cache/10c58b30c53bf84f8360af8a864797092be26882/jquery.syntax.layout.inline.sassc +0 -0
  262. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/_layout.scssc +0 -0
  263. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.apache.sassc +0 -0
  264. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.applescript.sassc +0 -0
  265. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.assembly.sassc +0 -0
  266. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.bash-script.sassc +0 -0
  267. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.bash.sassc +0 -0
  268. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.clang.sassc +0 -0
  269. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.css.sassc +0 -0
  270. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.diff.sassc +0 -0
  271. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.html.sassc +0 -0
  272. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.ocaml.sassc +0 -0
  273. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.protobuf.sassc +0 -0
  274. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.python.sassc +0 -0
  275. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.ruby.sassc +0 -0
  276. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.brush.xml.sassc +0 -0
  277. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.core.sassc +0 -0
  278. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.editor.sassc +0 -0
  279. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.layout.editor.sassc +0 -0
  280. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.layout.fixed.sassc +0 -0
  281. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.layout.list.sassc +0 -0
  282. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.layout.plain.sassc +0 -0
  283. data/documentation/public/_components/jquery-syntax/.sass-cache/3c69ad94149e2a6d9f4ffda01814fee3947b1389/jquery.syntax.layout.table.sassc +0 -0
  284. data/documentation/public/_components/jquery-syntax/.sass-cache/8638ad407c5ea29f6547cf8ac6983da587354889/master.sassc +0 -0
  285. data/documentation/public/_components/jquery-syntax/.sass-cache/b7ab87e6269b4fe89f9475b7a260077391d3567b/jquery.syntax.layout.editor.sassc +0 -0
  286. data/documentation/public/_components/jquery-syntax/.sass-cache/b7ab87e6269b4fe89f9475b7a260077391d3567b/jquery.syntax.layout.fixed.sassc +0 -0
  287. data/documentation/public/_components/jquery-syntax/.sass-cache/b7ab87e6269b4fe89f9475b7a260077391d3567b/jquery.syntax.layout.inline.sassc +0 -0
  288. data/documentation/public/_components/jquery-syntax/.sass-cache/b7ab87e6269b4fe89f9475b7a260077391d3567b/jquery.syntax.layout.plain.sassc +0 -0
  289. data/documentation/public/_components/jquery-syntax/.sass-cache/e82f8cf4c8436da086a4506e01ef78755ebab1ce/master.scssc +0 -0
  290. data/lib/utopia/command/setup.rb +0 -78
@@ -0,0 +1,111 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Rewrite - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="../controller.html">Controller</a> › <a href="rewrite.html">Rewrite</a></nav>
35
+
36
+
37
+ <h1 id="controllerrewrite">Controller::Rewrite</h1>
38
+
39
+ <p>The <code class="language-ruby">Controller::Rewrite</code> layer can match and rewrite requests before they processed. This allows you to handle URLs like <code>/post/15/view</code> or <code>/blog/123-pictures-of-my-cat</code> easily. The basic rewrite operation is to extract some part of the path and optionally executes a block. That means that the path is modified before being passed on to the next layer in the controller, and controller instance variables may be set.</p>
40
+
41
+ <h2 id="regular-expressions">Regular Expressions</h2>
42
+
43
+ <p>In your <code>controller.rb</code>:</p>
44
+
45
+ <pre><code class="language-ruby">prepend Rewrite, Actions
46
+
47
+ rewrite.extract_prefix permalink: /(?&lt;id&gt;\d+)-(?&lt;title&gt;.*)/ do |request, path, match|
48
+ # The rewrite matched, but there was no valid post, so we fail:
49
+ fail! unless @post = Post.find(@permalink[:id])
50
+
51
+ # If the path matched, but there was no suffix, we make it default to the post action:
52
+ if match.post_match.empty?
53
+ match.post_match.components &lt;&lt; &quot;post&quot;
54
+ end
55
+ end
56
+
57
+ on 'post' do
58
+ # You can do further processing here.
59
+ fail! unless @post.published?
60
+
61
+ @comments = @post.comments.first(5)
62
+ end
63
+
64
+ on 'edit' do
65
+ # You can do further processing here.
66
+ fail! unless @current_user&amp;.editor?
67
+ end
68
+ </code></pre>
69
+
70
+ <p>In your <code>post.xnode</code>, as an example:</p>
71
+
72
+ <pre><code class="language-trenni">&lt;content:page&gt;
73
+ &lt;content:heading&gt;Post #{attributes[:permalink][:id]} about #{attributes[:permalink][:title]}&lt;/content:heading&gt;
74
+
75
+ &lt;p&gt;#{attributes[:post].content}&lt;/p&gt;
76
+ &lt;/content:page&gt;
77
+ </code></pre>
78
+
79
+ <p>Keep in mind, that URLs like <code>/123-pictures-of-my-cat/edit</code> will work as expected, and hit the <code>edit</code> action of the controller.</p>
80
+
81
+ <h2 id="restful-resources">Restful Resources</h2>
82
+
83
+ <p>Similar to the above, if we were solely interested in IDs, we could do the following:</p>
84
+
85
+ <pre><code class="language-ruby">prepend Rewrite, Actions
86
+
87
+ rewrite.extract_prefix post_id: Integer do |request, path, match|
88
+ # The rewrite matched, but there was no valid post, so we fail:
89
+ fail! unless @post = Post.find(@post_id)
90
+
91
+ # If the path matched, but there was no suffix, we make it default to the post action:
92
+ if match.post_match.empty?
93
+ match.post_match.components &lt;&lt; &quot;post&quot;
94
+ end
95
+ end
96
+ </code></pre>
97
+
98
+ <p>This will only match complete integers. Assuming this code is in <code>/blog/controller.rb</code>, it would match something like <code>/blog/123/view</code> and assign <code class="language-ruby">Integer("123")</code> to <code class="language-ruby">@post_id</code>.</p>
99
+
100
+ <h3 id="matching-other-things">Matching.. other things</h3>
101
+
102
+ <p>It’s possible to match using <code class="language-ruby">Integer</code>, <code class="language-ruby">Float</code>, <code class="language-ruby">String</code>, and you can provide your own class which will be instantiated. If it doesn’t match, raise an exception and the rewrite rule will fail.</p>
103
+
104
+
105
+ <footer>
106
+ Last Modified: 2017-05-03 14:21:19 +1200 —
107
+ </footer>
108
+
109
+ </div>
110
+ </body>
111
+ </html>
@@ -0,0 +1,111 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Rewrite - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="../../controller.html">Controller</a> › <a href="../rewrite.html">Rewrite</a></nav>
35
+
36
+
37
+ <h1 id="controllerrewrite">Controller::Rewrite</h1>
38
+
39
+ <p>The <code class="language-ruby">Controller::Rewrite</code> layer can match and rewrite requests before they processed. This allows you to handle URLs like <code>/post/15/view</code> or <code>/blog/123-pictures-of-my-cat</code> easily. The basic rewrite operation is to extract some part of the path and optionally executes a block. That means that the path is modified before being passed on to the next layer in the controller, and controller instance variables may be set.</p>
40
+
41
+ <h2 id="regular-expressions">Regular Expressions</h2>
42
+
43
+ <p>In your <code>controller.rb</code>:</p>
44
+
45
+ <pre><code class="language-ruby">prepend Rewrite, Actions
46
+
47
+ rewrite.extract_prefix permalink: /(?&lt;id&gt;\d+)-(?&lt;title&gt;.*)/ do |request, path, match|
48
+ # The rewrite matched, but there was no valid post, so we fail:
49
+ fail! unless @post = Post.find(@permalink[:id])
50
+
51
+ # If the path matched, but there was no suffix, we make it default to the post action:
52
+ if match.post_match.empty?
53
+ match.post_match.components &lt;&lt; &quot;post&quot;
54
+ end
55
+ end
56
+
57
+ on 'post' do
58
+ # You can do further processing here.
59
+ fail! unless @post.published?
60
+
61
+ @comments = @post.comments.first(5)
62
+ end
63
+
64
+ on 'edit' do
65
+ # You can do further processing here.
66
+ fail! unless @current_user&amp;.editor?
67
+ end
68
+ </code></pre>
69
+
70
+ <p>In your <code>post.xnode</code>, as an example:</p>
71
+
72
+ <pre><code class="language-trenni">&lt;content:page&gt;
73
+ &lt;content:heading&gt;Post #{attributes[:permalink][:id]} about #{attributes[:permalink][:title]}&lt;/content:heading&gt;
74
+
75
+ &lt;p&gt;#{attributes[:post].content}&lt;/p&gt;
76
+ &lt;/content:page&gt;
77
+ </code></pre>
78
+
79
+ <p>Keep in mind, that URLs like <code>/123-pictures-of-my-cat/edit</code> will work as expected, and hit the <code>edit</code> action of the controller.</p>
80
+
81
+ <h2 id="restful-resources">Restful Resources</h2>
82
+
83
+ <p>Similar to the above, if we were solely interested in IDs, we could do the following:</p>
84
+
85
+ <pre><code class="language-ruby">prepend Rewrite, Actions
86
+
87
+ rewrite.extract_prefix post_id: Integer do |request, path, match|
88
+ # The rewrite matched, but there was no valid post, so we fail:
89
+ fail! unless @post = Post.find(@post_id)
90
+
91
+ # If the path matched, but there was no suffix, we make it default to the post action:
92
+ if match.post_match.empty?
93
+ match.post_match.components &lt;&lt; &quot;post&quot;
94
+ end
95
+ end
96
+ </code></pre>
97
+
98
+ <p>This will only match complete integers. Assuming this code is in <code>/blog/controller.rb</code>, it would match something like <code>/blog/123/view</code> and assign <code class="language-ruby">Integer("123")</code> to <code class="language-ruby">@post_id</code>.</p>
99
+
100
+ <h3 id="matching-other-things">Matching.. other things</h3>
101
+
102
+ <p>It’s possible to match using <code class="language-ruby">Integer</code>, <code class="language-ruby">Float</code>, <code class="language-ruby">String</code>, and you can provide your own class which will be instantiated. If it doesn’t match, raise an exception and the rewrite rule will fail.</p>
103
+
104
+
105
+ <footer>
106
+ Last Modified: 2017-05-03 14:21:19 +1200 —
107
+ </footer>
108
+
109
+ </div>
110
+ </body>
111
+ </html>
@@ -0,0 +1,59 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Localization - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="localization.html">Localization</a></nav>
35
+
36
+
37
+ <h1 id="localization">Localization</h1>
38
+
39
+ <p>The localization middleware uses the <code>Accept-Language</code> header to guess the preferred locale out of the given options. If a request path maps to a resource, that resource is returned. Otherwise, a localized request is made.</p>
40
+
41
+ <pre><code class="language-ruby">use Utopia::Localization,
42
+ :default_locale =&gt; 'en',
43
+ :locales =&gt; ['en', 'de', 'ja', 'zh']
44
+ </code></pre>
45
+
46
+ <p>Somewhere further down the chain, you can localize a resource:</p>
47
+
48
+ <pre><code class="language-ruby">localization = Utopia::Localization[request]
49
+ show_welcome(localization.current_locale)
50
+ </code></pre>
51
+
52
+
53
+ <footer>
54
+ Last Modified: 2017-05-03 14:21:19 +1200 —
55
+ </footer>
56
+
57
+ </div>
58
+ </body>
59
+ </html>
@@ -0,0 +1,59 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Localization - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="../localization.html">Localization</a></nav>
35
+
36
+
37
+ <h1 id="localization">Localization</h1>
38
+
39
+ <p>The localization middleware uses the <code>Accept-Language</code> header to guess the preferred locale out of the given options. If a request path maps to a resource, that resource is returned. Otherwise, a localized request is made.</p>
40
+
41
+ <pre><code class="language-ruby">use Utopia::Localization,
42
+ :default_locale =&gt; 'en',
43
+ :locales =&gt; ['en', 'de', 'ja', 'zh']
44
+ </code></pre>
45
+
46
+ <p>Somewhere further down the chain, you can localize a resource:</p>
47
+
48
+ <pre><code class="language-ruby">localization = Utopia::Localization[request]
49
+ show_welcome(localization.current_locale)
50
+ </code></pre>
51
+
52
+
53
+ <footer>
54
+ Last Modified: 2017-05-03 14:21:19 +1200 —
55
+ </footer>
56
+
57
+ </div>
58
+ </body>
59
+ </html>
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Redirection - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="redirection.html">Redirection</a></nav>
35
+
36
+
37
+ <h1 id="redirection">Redirection</h1>
38
+
39
+ <p>A set of flexible URI rewriting middleware which includes support for string mappings, regular expressions and status codes (e.g. 404 errors).</p>
40
+
41
+ <pre><code class="language-ruby"># String (fast hash lookup) rewriting:
42
+ use Utopia::Redirection::Rewrite,
43
+ '/' =&gt; '/welcome/index'
44
+
45
+ # Redirect directories (e.g. /) to an index file (e.g. /index):
46
+ use Utopia::Redirection::DirectoryIndex,
47
+ index: 'index.html'
48
+
49
+ # Redirect (error) status codes to actual pages:
50
+ use Utopia::Redirection::Errors,
51
+ 404 =&gt; '/errors/file-not-found'
52
+ </code></pre>
53
+
54
+
55
+ <footer>
56
+ Last Modified: 2016-12-13 12:37:11 +1300 —
57
+ </footer>
58
+
59
+ </div>
60
+ </body>
61
+ </html>
@@ -0,0 +1,61 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+ <title>Redirection - Utopia</title>
6
+
7
+ <meta charset="UTF-8"/>
8
+
9
+ <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"/>
10
+
11
+ <link rel="icon" type="image/png" href="../../../_static/icon.png"/>
12
+ <link rel="stylesheet" href="../../../_static/site.css" type="text/css" media="screen"/>
13
+
14
+ <script src="../../../_components/jquery/jquery.min.js"></script>
15
+ <script src="../../../_components/jquery-syntax/jquery.syntax.min.js"></script>
16
+
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ jQuery(function($) {
20
+ $.syntax();
21
+ });
22
+ //]]>
23
+ </script>
24
+ </head>
25
+
26
+ <body class="">
27
+ <header>
28
+ <img src="../../../_static/utopia.svg"/>
29
+ </header>
30
+
31
+ <div id="page">
32
+
33
+ <nav>
34
+ › <a href="../../../wiki.html">Wiki</a> › <span>Middleware</span> › <a href="../redirection.html">Redirection</a></nav>
35
+
36
+
37
+ <h1 id="redirection">Redirection</h1>
38
+
39
+ <p>A set of flexible URI rewriting middleware which includes support for string mappings, regular expressions and status codes (e.g. 404 errors).</p>
40
+
41
+ <pre><code class="language-ruby"># String (fast hash lookup) rewriting:
42
+ use Utopia::Redirection::Rewrite,
43
+ '/' =&gt; '/welcome/index'
44
+
45
+ # Redirect directories (e.g. /) to an index file (e.g. /index):
46
+ use Utopia::Redirection::DirectoryIndex,
47
+ index: 'index.html'
48
+
49
+ # Redirect (error) status codes to actual pages:
50
+ use Utopia::Redirection::Errors,
51
+ 404 =&gt; '/errors/file-not-found'
52
+ </code></pre>
53
+
54
+
55
+ <footer>
56
+ Last Modified: 2016-12-13 12:37:11 +1300 —
57
+ </footer>
58
+
59
+ </div>
60
+ </body>
61
+ </html>