utopia 2.13.4 → 2.14.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.
- checksums.yaml +4 -4
- data/.github/workflows/development.yml +62 -0
- data/README.md +3 -5
- data/bake/utopia/yarn.rb +4 -2
- data/docs/_components/jquery-litebox/jquery.litebox.css +23 -0
- data/docs/_components/jquery-litebox/jquery.litebox.gallery.css +48 -0
- data/docs/_components/jquery-litebox/jquery.litebox.js +30 -0
- data/docs/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +6 -0
- data/docs/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +4 -10
- data/docs/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +5 -2
- data/docs/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +8 -8
- data/docs/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +1 -1
- data/docs/_components/jquery-syntax/base/jquery.syntax.core.css +43 -47
- data/docs/_components/jquery-syntax/jquery.syntax.brush.apache.js +3 -41
- data/docs/_components/jquery-syntax/jquery.syntax.brush.applescript.js +5 -57
- data/docs/_components/jquery-syntax/jquery.syntax.brush.assembly.js +3 -37
- data/docs/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +4 -67
- data/docs/_components/jquery-syntax/jquery.syntax.brush.bash.js +2 -33
- data/docs/_components/jquery-syntax/jquery.syntax.brush.basic.js +5 -51
- data/docs/_components/jquery-syntax/jquery.syntax.brush.clang.js +5 -89
- data/docs/_components/jquery-syntax/jquery.syntax.brush.csharp.js +4 -47
- data/docs/_components/jquery-syntax/jquery.syntax.brush.css.js +5 -80
- data/docs/_components/jquery-syntax/jquery.syntax.brush.diff.js +2 -24
- data/docs/_components/jquery-syntax/jquery.syntax.brush.go.js +3 -47
- data/docs/_components/jquery-syntax/jquery.syntax.brush.haskell.js +3 -45
- data/docs/_components/jquery-syntax/jquery.syntax.brush.html.js +4 -66
- data/docs/_components/jquery-syntax/jquery.syntax.brush.io.js +3 -45
- data/docs/_components/jquery-syntax/jquery.syntax.brush.java.js +4 -45
- data/docs/_components/jquery-syntax/jquery.syntax.brush.javascript.js +3 -40
- data/docs/_components/jquery-syntax/jquery.syntax.brush.kai.js +2 -29
- data/docs/_components/jquery-syntax/jquery.syntax.brush.lisp.js +2 -34
- data/docs/_components/jquery-syntax/jquery.syntax.brush.lua.js +3 -44
- data/docs/_components/jquery-syntax/jquery.syntax.brush.nginx.js +2 -31
- data/docs/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +4 -73
- data/docs/_components/jquery-syntax/jquery.syntax.brush.ooc.js +4 -46
- data/docs/_components/jquery-syntax/jquery.syntax.brush.pascal.js +4 -51
- data/docs/_components/jquery-syntax/jquery.syntax.brush.perl5.js +3 -52
- data/docs/_components/jquery-syntax/jquery.syntax.brush.php-script.js +4 -48
- data/docs/_components/jquery-syntax/jquery.syntax.brush.php.js +2 -15
- data/docs/_components/jquery-syntax/jquery.syntax.brush.plain.js +2 -10
- data/docs/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +3 -43
- data/docs/_components/jquery-syntax/jquery.syntax.brush.python.js +5 -44
- data/docs/_components/jquery-syntax/jquery.syntax.brush.ruby.js +5 -77
- data/docs/_components/jquery-syntax/jquery.syntax.brush.scala.js +4 -44
- data/docs/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +2 -29
- data/docs/_components/jquery-syntax/jquery.syntax.brush.sql.js +4 -31
- data/docs/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +3 -57
- data/docs/_components/jquery-syntax/jquery.syntax.brush.swift.js +3 -55
- data/docs/_components/jquery-syntax/jquery.syntax.brush.trenni.js +2 -35
- data/docs/_components/jquery-syntax/jquery.syntax.brush.xml.js +4 -50
- data/docs/_components/jquery-syntax/jquery.syntax.brush.yaml.js +2 -29
- data/docs/_components/jquery-syntax/jquery.syntax.cache.js +7 -65
- data/docs/_components/jquery-syntax/jquery.syntax.core.js +34 -1098
- data/docs/_components/jquery-syntax/jquery.syntax.editor.js +11 -291
- data/docs/_components/jquery-syntax/jquery.syntax.js +8 -258
- data/docs/_components/jquery/jquery.js +1678 -1026
- data/docs/_components/jquery/jquery.min.js +2 -4
- data/docs/_components/jquery/jquery.min.map +1 -1
- data/docs/_components/jquery/jquery.slim.js +1602 -932
- data/docs/_components/jquery/jquery.slim.min.js +2 -4
- data/docs/_components/jquery/jquery.slim.min.map +1 -1
- data/docs/_static/icon.png +0 -0
- data/docs/_static/site.css +100 -114
- data/docs/{wiki/development-environment-setup.html → development-environment-setup/index.html} +9 -15
- data/docs/{wiki/faq/what-is-xnode.html → faq/what-is-xnode/index.html} +9 -15
- data/docs/index.html +25 -31
- data/docs/javascript/index.html +108 -0
- data/docs/{wiki/middleware/content.html → middleware/content/index.html} +9 -15
- data/docs/{wiki/middleware/controller/actions.html → middleware/controller/actions/index.html} +11 -17
- data/docs/{wiki/middleware/controller.html → middleware/controller/index.html} +9 -15
- data/docs/{wiki/middleware/controller/rewrite.html → middleware/controller/rewrite/index.html} +9 -15
- data/docs/{wiki/middleware/localization.html → middleware/localization/index.html} +9 -15
- data/docs/{wiki/middleware/redirection.html → middleware/redirection/index.html} +9 -15
- data/docs/{wiki/middleware/session.html → middleware/session/index.html} +9 -15
- data/docs/{wiki/middleware/static.html → middleware/static/index.html} +9 -15
- data/docs/{wiki/server-setup.html → server-setup/index.html} +11 -42
- data/docs/{wiki/testing.html → testing/index.html} +10 -16
- data/docs/{wiki/updating-utopia.html → updating-utopia/index.html} +9 -15
- data/docs/{wiki/your-first-page.html → your-first-page/index.html} +11 -17
- data/lib/utopia/content.rb +23 -19
- data/lib/utopia/content/link.rb +29 -34
- data/lib/utopia/content/links.rb +185 -123
- data/lib/utopia/content/node.rb +13 -17
- data/lib/utopia/content/response.rb +2 -2
- data/lib/utopia/localization.rb +18 -10
- data/lib/utopia/path.rb +36 -32
- data/lib/utopia/version.rb +1 -1
- data/setup/site/Gemfile +7 -5
- data/spec/utopia/command_spec.rb +1 -1
- data/spec/utopia/content/links/bar/index.xnode +0 -0
- data/spec/utopia/content/links/bar/parent/child/index.en.xnode +0 -0
- data/spec/utopia/content/links/bar/parent/child/index.ja.xnode +0 -0
- data/spec/utopia/content/links/bar/parent/links.yaml +2 -0
- data/spec/utopia/content/links/index.xnode +0 -0
- data/spec/utopia/content/links/links.yaml +10 -1
- data/spec/utopia/content/links/redirect/links.yaml +2 -0
- data/spec/utopia/content/links_spec.rb +160 -43
- data/spec/utopia/content/localized/links.yaml +2 -5
- data/spec/utopia/content/node_spec.rb +1 -1
- data/spec/utopia/path_spec.rb +50 -5
- data/wiki/Gemfile +9 -0
- data/wiki/config.ru +7 -0
- data/{documentation/pages/wiki/development-environment-setup/content.md → wiki/pages/development-environment-setup/index.md} +0 -0
- data/wiki/pages/faq/links.yaml +2 -0
- data/{documentation/pages/wiki/faq/what-is-xnode/content.md → wiki/pages/faq/what-is-xnode/index.md} +1 -1
- data/wiki/pages/faq/what-is-xnode/links.yaml +2 -0
- data/{documentation/pages/wiki/content.md → wiki/pages/index.md} +2 -2
- data/{documentation/pages/wiki/javascript/content.md → wiki/pages/javascript/index.md} +15 -13
- data/wiki/pages/javascript/links.yaml +2 -0
- data/wiki/pages/links.yaml +2 -0
- data/{documentation/pages/wiki/middleware/content/content.md → wiki/pages/middleware/content/index.md} +0 -0
- data/{documentation/pages/wiki/middleware/controller/actions/content.md → wiki/pages/middleware/controller/actions/index.md} +2 -2
- data/{documentation/pages/wiki/middleware/controller/content.md → wiki/pages/middleware/controller/index.md} +0 -0
- data/{documentation/pages/wiki → wiki/pages}/middleware/controller/links.yaml +0 -0
- data/{documentation/pages/wiki/middleware/controller/rewrite/content.md → wiki/pages/middleware/controller/rewrite/index.md} +0 -0
- data/{documentation/pages/wiki/middleware/localization/content.md → wiki/pages/middleware/localization/index.md} +0 -0
- data/{documentation/pages/wiki/middleware/redirection/content.md → wiki/pages/middleware/redirection/index.md} +0 -0
- data/{documentation/pages/wiki/middleware/session/content.md → wiki/pages/middleware/session/index.md} +0 -0
- data/{documentation/pages/wiki/middleware/static/content.md → wiki/pages/middleware/static/index.md} +0 -0
- data/{documentation/pages/wiki/server-setup/content.md → wiki/pages/server-setup/index.md} +0 -0
- data/{documentation/pages/wiki/testing/content.md → wiki/pages/testing/index.md} +0 -0
- data/{documentation/pages/wiki/updating-utopia/content.md → wiki/pages/updating-utopia/index.md} +0 -0
- data/{documentation/pages/wiki/your-first-page/content.md → wiki/pages/your-first-page/index.md} +2 -2
- metadata +56 -263
- data/.travis.yml +0 -28
- data/Rakefile +0 -33
- data/docs/_components/jquery/core.js +0 -482
- data/docs/_static/utopia-background.svg +0 -1
- data/docs/_static/utopia.svg +0 -1
- data/docs/code/Utopia.html +0 -517
- data/docs/code/Utopia/Basename.html +0 -654
- data/docs/code/Utopia/Bootstrap.html +0 -538
- data/docs/code/Utopia/Command.html +0 -213
- data/docs/code/Utopia/Command/Environment.html +0 -321
- data/docs/code/Utopia/Command/Server.html +0 -214
- data/docs/code/Utopia/Command/Server/Create.html +0 -222
- data/docs/code/Utopia/Command/Server/Environment.html +0 -236
- data/docs/code/Utopia/Command/Server/Update.html +0 -317
- data/docs/code/Utopia/Command/Setup.html +0 -145
- data/docs/code/Utopia/Command/Setup/Server.html +0 -298
- data/docs/code/Utopia/Command/Setup/Site.html +0 -180
- data/docs/code/Utopia/Command/Site.html +0 -285
- data/docs/code/Utopia/Command/Site/Create.html +0 -324
- data/docs/code/Utopia/Command/Site/Update.html +0 -407
- data/docs/code/Utopia/Command/Top.html +0 -279
- data/docs/code/Utopia/Content.html +0 -832
- data/docs/code/Utopia/Content/Document.html +0 -1822
- data/docs/code/Utopia/Content/Document/State.html +0 -1220
- data/docs/code/Utopia/Content/Link.html +0 -1286
- data/docs/code/Utopia/Content/Links.html +0 -847
- data/docs/code/Utopia/Content/MarkupParser.html +0 -881
- data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +0 -422
- data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +0 -615
- data/docs/code/Utopia/Content/Namespace.html +0 -485
- data/docs/code/Utopia/Content/Node.html +0 -1188
- data/docs/code/Utopia/Content/Node/Context.html +0 -938
- data/docs/code/Utopia/Content/Response.html +0 -813
- data/docs/code/Utopia/Content/SymbolicHash.html +0 -419
- data/docs/code/Utopia/Content/Tag.html +0 -399
- data/docs/code/Utopia/Content/Tags.html +0 -136
- data/docs/code/Utopia/Content/Tags/ContentTag.html +0 -187
- data/docs/code/Utopia/Content/Tags/DeferredTag.html +0 -193
- data/docs/code/Utopia/Content/Tags/Library.html +0 -333
- data/docs/code/Utopia/Content/Tags/NodeTag.html +0 -193
- data/docs/code/Utopia/Content/UnbalancedTagError.html +0 -298
- data/docs/code/Utopia/ContentLength.html +0 -343
- data/docs/code/Utopia/Controller.html +0 -907
- data/docs/code/Utopia/Controller/Actions.html +0 -289
- data/docs/code/Utopia/Controller/Actions/Action.html +0 -984
- data/docs/code/Utopia/Controller/Actions/ClassMethods.html +0 -442
- data/docs/code/Utopia/Controller/Base.html +0 -1216
- data/docs/code/Utopia/Controller/Respond.html +0 -293
- data/docs/code/Utopia/Controller/Respond/ClassMethods.html +0 -236
- data/docs/code/Utopia/Controller/Respond/Converter.html +0 -256
- data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +0 -484
- data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +0 -381
- data/docs/code/Utopia/Controller/Respond/Passthrough.html +0 -297
- data/docs/code/Utopia/Controller/Respond/Responder.html +0 -535
- data/docs/code/Utopia/Controller/Rewrite.html +0 -290
- data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +0 -242
- data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +0 -364
- data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +0 -464
- data/docs/code/Utopia/Controller/Rewrite/Rule.html +0 -209
- data/docs/code/Utopia/Controller/Variables.html +0 -550
- data/docs/code/Utopia/Controllers.html +0 -244
- data/docs/code/Utopia/Exceptions.html +0 -127
- data/docs/code/Utopia/Exceptions/Handler.html +0 -526
- data/docs/code/Utopia/Exceptions/Mailer.html +0 -482
- data/docs/code/Utopia/Extensions.html +0 -117
- data/docs/code/Utopia/Extensions/ArraySplit.html +0 -183
- data/docs/code/Utopia/Extensions/DateTimeComparison.html +0 -193
- data/docs/code/Utopia/Extensions/TimeDateComparison.html +0 -193
- data/docs/code/Utopia/HTTP.html +0 -250
- data/docs/code/Utopia/HTTP/Status.html +0 -415
- data/docs/code/Utopia/Locale.html +0 -606
- data/docs/code/Utopia/Localization.html +0 -1241
- data/docs/code/Utopia/Localization/Wrapper.html +0 -459
- data/docs/code/Utopia/Logger.html +0 -205
- data/docs/code/Utopia/Logger/CompactFormatter.html +0 -335
- data/docs/code/Utopia/Path.html +0 -3310
- data/docs/code/Utopia/Path/Matcher.html +0 -518
- data/docs/code/Utopia/Path/Matcher/MatchData.html +0 -475
- data/docs/code/Utopia/Redirection.html +0 -151
- data/docs/code/Utopia/Redirection/ClientRedirect.html +0 -717
- data/docs/code/Utopia/Redirection/DirectoryIndex.html +0 -298
- data/docs/code/Utopia/Redirection/Errors.html +0 -476
- data/docs/code/Utopia/Redirection/Moved.html +0 -312
- data/docs/code/Utopia/Redirection/RequestFailure.html +0 -226
- data/docs/code/Utopia/Redirection/Rewrite.html +0 -296
- data/docs/code/Utopia/Session.html +0 -889
- data/docs/code/Utopia/Session/LazyHash.html +0 -859
- data/docs/code/Utopia/Setup.html +0 -970
- data/docs/code/Utopia/Static.html +0 -696
- data/docs/code/Utopia/Static/LocalFile.html +0 -1104
- data/docs/code/Utopia/Static/MimeTypeLoader.html +0 -541
- data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +0 -124
- data/docs/code/Utopia/Tags.html +0 -115
- data/docs/code/Utopia/Tags/Environment.html +0 -314
- data/docs/code/Utopia/Tags/EnvironmentTag.html +0 -314
- data/docs/code/Utopia/Tags/Library.html +0 -340
- data/docs/code/_index.html +0 -758
- data/docs/code/class_list.html +0 -51
- data/docs/code/css/common.css +0 -1
- data/docs/code/css/full_list.css +0 -58
- data/docs/code/css/style.css +0 -496
- data/docs/code/file.README.html +0 -171
- data/docs/code/file_list.html +0 -56
- data/docs/code/frames.html +0 -17
- data/docs/code/index.html +0 -171
- data/docs/code/js/app.js +0 -292
- data/docs/code/js/full_list.js +0 -216
- data/docs/code/js/jquery.js +0 -4
- data/docs/code/materials/utopia.png +0 -0
- data/docs/code/materials/utopia.svg +0 -1
- data/docs/code/method_list.html +0 -3443
- data/docs/code/top-level-namespace.html +0 -110
- data/docs/wiki.html +0 -92
- data/docs/wiki/development-environment-setup/index.html +0 -60
- data/docs/wiki/edit.html +0 -103
- data/docs/wiki/faq/what-is-xnode/index.html +0 -79
- data/docs/wiki/javascript.html +0 -153
- data/docs/wiki/javascript/index.html +0 -153
- data/docs/wiki/middleware/content/index.html +0 -64
- data/docs/wiki/middleware/controller/actions/index.html +0 -117
- data/docs/wiki/middleware/controller/actions/rewrite/index.html +0 -48
- data/docs/wiki/middleware/controller/index.html +0 -104
- data/docs/wiki/middleware/controller/rewrite/index.html +0 -111
- data/docs/wiki/middleware/localization/index.html +0 -59
- data/docs/wiki/middleware/redirection/index.html +0 -61
- data/docs/wiki/middleware/session/index.html +0 -71
- data/docs/wiki/middleware/static/index.html +0 -57
- data/docs/wiki/server-setup/index.html +0 -118
- data/docs/wiki/testing/index.html +0 -59
- data/docs/wiki/updating-utopia/index.html +0 -108
- data/docs/wiki/your-first-page/index.html +0 -80
- data/documentation/.rspec +0 -4
- data/documentation/.yarnrc +0 -1
- data/documentation/Gemfile +0 -19
- data/documentation/Guardfile +0 -9
- data/documentation/Rakefile +0 -9
- data/documentation/config.ru +0 -41
- data/documentation/config/README.md +0 -7
- data/documentation/config/environment.rb +0 -12
- data/documentation/lib/readme.txt +0 -1
- data/documentation/pages/_editor.xnode +0 -64
- data/documentation/pages/_heading.xnode +0 -2
- data/documentation/pages/_page.xnode +0 -40
- data/documentation/pages/errors/exception.xnode +0 -5
- data/documentation/pages/errors/file-not-found.xnode +0 -5
- data/documentation/pages/links.yaml +0 -2
- data/documentation/pages/wiki/_listing.xnode +0 -32
- data/documentation/pages/wiki/_navigation.xnode +0 -15
- data/documentation/pages/wiki/controller.rb +0 -48
- data/documentation/pages/wiki/edit.xnode +0 -10
- data/documentation/pages/wiki/links.yaml +0 -6
- data/documentation/pages/wiki/show.xnode +0 -12
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.apache.css +0 -6
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.applescript.css +0 -5
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.assembly.css +0 -8
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash-script.css +0 -6
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.bash.css +0 -10
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.clang.css +0 -3
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.css.css +0 -14
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.diff.css +0 -16
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.html.css +0 -5
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ocaml.css +0 -3
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.protobuf.css +0 -2
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.python.css +0 -6
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.ruby.css +0 -2
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.brush.xml.css +0 -18
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.core.css +0 -62
- data/documentation/public/_components/jquery-syntax/base/jquery.syntax.editor.css +0 -6
- data/documentation/public/_components/jquery-syntax/base/theme.js +0 -1
- data/documentation/public/_components/jquery-syntax/bright/jquery.syntax.core.css +0 -27
- data/documentation/public/_components/jquery-syntax/bright/theme.js +0 -1
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.apache.js +0 -41
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.applescript.js +0 -57
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.assembly.js +0 -37
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash-script.js +0 -67
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.bash.js +0 -33
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.basic.js +0 -51
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.clang.js +0 -89
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.csharp.js +0 -47
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.css.js +0 -80
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.diff.js +0 -24
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.go.js +0 -47
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.haskell.js +0 -45
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.html.js +0 -66
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.io.js +0 -45
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.java.js +0 -45
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.javascript.js +0 -40
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.kai.js +0 -29
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lisp.js +0 -34
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.lua.js +0 -44
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.nginx.js +0 -31
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ocaml.js +0 -73
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ooc.js +0 -46
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.pascal.js +0 -51
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.perl5.js +0 -52
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php-script.js +0 -48
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.php.js +0 -15
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.plain.js +0 -10
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.protobuf.js +0 -43
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.python.js +0 -44
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.ruby.js +0 -77
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.scala.js +0 -44
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.smalltalk.js +0 -29
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.sql.js +0 -31
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.super-collider.js +0 -57
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.swift.js +0 -55
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.trenni.js +0 -35
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.xml.js +0 -50
- data/documentation/public/_components/jquery-syntax/jquery.syntax.brush.yaml.js +0 -29
- data/documentation/public/_components/jquery-syntax/jquery.syntax.cache.js +0 -65
- data/documentation/public/_components/jquery-syntax/jquery.syntax.core.js +0 -1098
- data/documentation/public/_components/jquery-syntax/jquery.syntax.editor.js +0 -291
- data/documentation/public/_components/jquery-syntax/jquery.syntax.js +0 -258
- data/documentation/public/_components/jquery-syntax/jquery.syntax.min.js +0 -13
- data/documentation/public/_components/jquery-syntax/paper/jquery.syntax.core.css +0 -31
- data/documentation/public/_components/jquery-syntax/paper/theme.js +0 -1
- data/documentation/public/_components/jquery/core.js +0 -482
- data/documentation/public/_components/jquery/jquery.js +0 -10220
- data/documentation/public/_components/jquery/jquery.min.js +0 -4
- data/documentation/public/_components/jquery/jquery.min.map +0 -1
- data/documentation/public/_components/jquery/jquery.slim.js +0 -8107
- data/documentation/public/_components/jquery/jquery.slim.min.js +0 -4
- data/documentation/public/_components/jquery/jquery.slim.min.map +0 -1
- data/documentation/public/_static +0 -1
- data/documentation/public/materials +0 -1
- data/documentation/spec/website_context.rb +0 -12
- data/documentation/spec/website_spec.rb +0 -16
- data/documentation/tasks +0 -1
- data/spec/utopia/content/link_spec.rb +0 -47
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
<title>Javascript - 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> › <a href="../javascript.html">JavaScript</a></nav>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<h1 id="yarn-integration">Yarn Integration</h1>
|
|
38
|
-
|
|
39
|
-
<p>Utopia integrates with Yarn and provides a rake task to simplify deployment packages distributed using <code>yarn</code> that implement the <code>dist</code> sub-directory convention.</p>
|
|
40
|
-
|
|
41
|
-
<p>By default, utopia includes a <code>.yarnrc</code> file which installs modules into <code>lib/components</code>. This code can then be copied into <code>public/_components</code> using <code>rake yarn:update</code>.</p>
|
|
42
|
-
|
|
43
|
-
<h2 id="installing-yarn">Installing Yarn</h2>
|
|
44
|
-
|
|
45
|
-
<p>If you don’t already have yarn installed, make sure you have npm installed and then run the following command:</p>
|
|
46
|
-
|
|
47
|
-
<pre><code>$ sudo npm install -g yarn
|
|
48
|
-
</code></pre>
|
|
49
|
-
|
|
50
|
-
<h2 id="installing-jquery">Installing jQuery</h2>
|
|
51
|
-
|
|
52
|
-
<p>Firstly, ensure your project has a <code>package.json</code> file:</p>
|
|
53
|
-
|
|
54
|
-
<pre><code>$ yarn init
|
|
55
|
-
</code></pre>
|
|
56
|
-
|
|
57
|
-
<p>Then install jquery using <code>yarn</code>:</p>
|
|
58
|
-
|
|
59
|
-
<pre><code>$ bower install jquery
|
|
60
|
-
</code></pre>
|
|
61
|
-
|
|
62
|
-
<p>Copy the distribution scripts to <code>public/_components</code>:</p>
|
|
63
|
-
|
|
64
|
-
<pre><code>$ rake yarn:update
|
|
65
|
-
</code></pre>
|
|
66
|
-
|
|
67
|
-
<p>Then add the appropriate <code><script></code> tags to <code>pages/_page.xnode</code>:</p>
|
|
68
|
-
|
|
69
|
-
<pre><code class="language-html"><script type="text/javascript" src="/_components/jquery/jquery.min.js"></script>
|
|
70
|
-
</code></pre>
|
|
71
|
-
|
|
72
|
-
<h3 id="what-does-rake-yarnupdate-do">What does <code>rake yarn:update</code> do?</h3>
|
|
73
|
-
|
|
74
|
-
<p>This task copies only the contents of the <code>dist</code> directory. This ensures that you only get files intended for distribution. If the bower package doesn’t have a <code>dist</code> directory, the entire contents is copied.</p>
|
|
75
|
-
|
|
76
|
-
<pre><code class="syntax brush-ruby">
|
|
77
|
-
namespace :yarn do
|
|
78
|
-
desc 'Load the .bowerrc file and setup the environment for other tasks.'
|
|
79
|
-
task :environment do
|
|
80
|
-
@yarn_package_root = SITE_ROOT + "lib/components"
|
|
81
|
-
@yarn_install_root = SITE_ROOT + "public/_components"
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
desc 'Update the bower packages and link into the public directory.'
|
|
85
|
-
task :update => :environment do
|
|
86
|
-
require 'fileutils'
|
|
87
|
-
require 'utopia/path'
|
|
88
|
-
|
|
89
|
-
@yarn_package_root.children.select(&:directory?).collect(&:basename).each do |package_directory|
|
|
90
|
-
install_path = @yarn_install_root + package_directory
|
|
91
|
-
package_path = @yarn_package_root + package_directory
|
|
92
|
-
dist_path = package_path + 'dist'
|
|
93
|
-
|
|
94
|
-
FileUtils::Verbose.rm_rf install_path
|
|
95
|
-
FileUtils::Verbose.mkpath(install_path.dirname)
|
|
96
|
-
|
|
97
|
-
# If a package has a dist directory, we only symlink that... otherwise we have to do the entire package, and hope that bower's ignore was setup correctly:
|
|
98
|
-
if File.exist? dist_path
|
|
99
|
-
link_path = Utopia::Path.shortest_path(dist_path, install_path)
|
|
100
|
-
else
|
|
101
|
-
link_path = Utopia::Path.shortest_path(package_path, install_path)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
FileUtils::Verbose.cp_r File.expand_path(link_path, install_path), install_path
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
</code></pre>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
<h2 id="using-javascript">Using JavaScript</h2>
|
|
112
|
-
|
|
113
|
-
<p>You can use JavaScript by embedding it directly into your HTML, or by creating a JavaScript source file and referencing that.</p>
|
|
114
|
-
|
|
115
|
-
<h3 id="embedding-code">Embedding Code</h3>
|
|
116
|
-
|
|
117
|
-
<p>In your HTML view:</p>
|
|
118
|
-
|
|
119
|
-
<pre><code class="language-trenni"><html>
|
|
120
|
-
<body>
|
|
121
|
-
<script type="text/javascript">
|
|
122
|
-
//<![CDATA[
|
|
123
|
-
console.log("Hello World")
|
|
124
|
-
//]]>
|
|
125
|
-
</script>
|
|
126
|
-
</body>
|
|
127
|
-
</html>
|
|
128
|
-
</code></pre>
|
|
129
|
-
|
|
130
|
-
<h3 id="external-script">External Script</h3>
|
|
131
|
-
|
|
132
|
-
<p>In <code>script.js</code>:</p>
|
|
133
|
-
|
|
134
|
-
<pre><code class="language-javascript">console.log("Hello World")
|
|
135
|
-
</code></pre>
|
|
136
|
-
|
|
137
|
-
<p>In your HTML view:</p>
|
|
138
|
-
|
|
139
|
-
<pre><code class="language-trenni"><html>
|
|
140
|
-
<body>
|
|
141
|
-
<script type="text/javascript" src="script.js"></script>
|
|
142
|
-
</body>
|
|
143
|
-
</html>
|
|
144
|
-
</code></pre>
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
<footer>
|
|
148
|
-
Last Modified: 2019-03-09 11:29:35 +1300 —
|
|
149
|
-
</footer>
|
|
150
|
-
|
|
151
|
-
</div>
|
|
152
|
-
</body>
|
|
153
|
-
</html>
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
<title>Content - 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="../content.html">Content</a></nav>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<h1 id="content">Content</h1>
|
|
38
|
-
<p>A tag based content generation system which integrates nicely with HTML5. Supports structures which separate generic page templates from dynamically generated content in an easy and consistent way.</p>
|
|
39
|
-
|
|
40
|
-
<pre><code class="language-ruby">use Utopia::Content,
|
|
41
|
-
cache_templates: (RACK_ENV == :production)
|
|
42
|
-
</code></pre>
|
|
43
|
-
|
|
44
|
-
<p>A basic template <code>create.xnode</code> looks something like:</p>
|
|
45
|
-
|
|
46
|
-
<pre><code class="language-trenni"><content:page>
|
|
47
|
-
<content:heading>Create User</content:heading>
|
|
48
|
-
<form action="#">
|
|
49
|
-
<input name="name" />
|
|
50
|
-
<input type="submit" />
|
|
51
|
-
</form>
|
|
52
|
-
</content:page>
|
|
53
|
-
</code></pre>
|
|
54
|
-
|
|
55
|
-
<p>This template would typically be designed with supporting <code>_page.xnode</code> and <code>_heading.xnode</code> in the same directory or, more typically, somewhere further up the directory hierarchy.</p>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<footer>
|
|
59
|
-
Last Modified: 2017-05-03 14:21:19 +1200 —
|
|
60
|
-
</footer>
|
|
61
|
-
|
|
62
|
-
</div>
|
|
63
|
-
</body>
|
|
64
|
-
</html>
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
<title>Actions - 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="../actions.html">Actions</a></nav>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<h1 id="controlleractions">Controller::Actions</h1>
|
|
38
|
-
|
|
39
|
-
<p>Actions let you match path patterns in your controller and execute code. In your <code>controller.rb</code> simply add:</p>
|
|
40
|
-
|
|
41
|
-
<pre><code class="language-ruby">prepend Actions
|
|
42
|
-
</code></pre>
|
|
43
|
-
|
|
44
|
-
<p>If you are adding multiple things, like rewriting, they should come earlier in the chain, e.g:</p>
|
|
45
|
-
|
|
46
|
-
<pre><code class="language-ruby">prepend Rewrite, Actions
|
|
47
|
-
</code></pre>
|
|
48
|
-
|
|
49
|
-
<p>A simple CRUD controller might look like:</p>
|
|
50
|
-
|
|
51
|
-
<pre><code class="language-ruby">prepend Actions
|
|
52
|
-
|
|
53
|
-
on 'index' do
|
|
54
|
-
@users = User.all
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
on 'new' do |request|
|
|
58
|
-
@user = User.new
|
|
59
|
-
|
|
60
|
-
if request.post?
|
|
61
|
-
@user.update_attributes(request.params['user'])
|
|
62
|
-
|
|
63
|
-
redirect! "index"
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
on 'edit' do |request|
|
|
68
|
-
@user = User.find(request.params['id'])
|
|
69
|
-
|
|
70
|
-
if request.post?
|
|
71
|
-
@user.update_attributes(request.params['user'])
|
|
72
|
-
|
|
73
|
-
redirect! "index"
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
on 'delete' do |request|
|
|
78
|
-
User.find(request.params['id']).destroy
|
|
79
|
-
|
|
80
|
-
redirect! "index"
|
|
81
|
-
end
|
|
82
|
-
</code></pre>
|
|
83
|
-
|
|
84
|
-
<h2 id="path-matching">Path Matching</h2>
|
|
85
|
-
|
|
86
|
-
<p>Path matching works from right to left, and ‘**’ is a greedy operator. Controllers are invoked with a path relative to the controller’s <code>URI_PATH</code>, so all lookups are relative to the controller.</p>
|
|
87
|
-
|
|
88
|
-
<dl>
|
|
89
|
-
<dt><code class="language-ruby">"*"</code></dt>
|
|
90
|
-
<dd>Match a single path element</dd>
|
|
91
|
-
<dt><code class="language-ruby">"**"</code></dt>
|
|
92
|
-
<dd>Match all remaining path elements</dd>
|
|
93
|
-
<dt><code class="language-ruby">String</code></dt>
|
|
94
|
-
<dd>Match a named path component, e.g. <code class="language-ruby">"edit"</code>.</dd>
|
|
95
|
-
<dt><code class="language-ruby">Symbol</code></dt>
|
|
96
|
-
<dd>Equivalent to <code class="language-ruby">["**", symbol.to_s]</code>, e.g. <code class="language-ruby">:logout</code>.</dd>
|
|
97
|
-
</dl>
|
|
98
|
-
|
|
99
|
-
<h2 id="otherwise-matching">Otherwise Matching</h2>
|
|
100
|
-
|
|
101
|
-
<p>If no action was matched, it is sometimes useful to perform some specific behaviour. You can specify this by using the otherwise handler:</p>
|
|
102
|
-
|
|
103
|
-
<pre><code class="language-ruby">otherwise do |request, path|
|
|
104
|
-
fail! :teapot
|
|
105
|
-
end
|
|
106
|
-
</code></pre>
|
|
107
|
-
|
|
108
|
-
<p>If you are doing this to perform some kind of rewriting, it may be preferable to use the <a href="rewrite/index.html">Rewrite</a> controller layer.</p>
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
<footer>
|
|
112
|
-
Last Modified: 2017-05-03 14:21:19 +1200 —
|
|
113
|
-
</footer>
|
|
114
|
-
|
|
115
|
-
</div>
|
|
116
|
-
</body>
|
|
117
|
-
</html>
|
|
@@ -1,48 +0,0 @@
|
|
|
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="../../actions.html">Actions</a></nav>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<h1 id="rewrite">Rewrite</h1>
|
|
38
|
-
|
|
39
|
-
<p>This page is empty.</p>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<footer>
|
|
43
|
-
Last Modified: N/A —
|
|
44
|
-
</footer>
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
</body>
|
|
48
|
-
</html>
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
<title>Controller - 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></nav>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<h1 id="controller">Controller</h1>
|
|
38
|
-
|
|
39
|
-
<p>A simple recursive controller layer which works in isolation from the view rendering middleware.</p>
|
|
40
|
-
|
|
41
|
-
<pre><code class="language-ruby">use Utopia::Controller,
|
|
42
|
-
# The root directory where `controller.rb` files can be found.
|
|
43
|
-
root: 'path/to/root',
|
|
44
|
-
# The base class to use for all controllers:
|
|
45
|
-
base: Utopia::Controller::Base,
|
|
46
|
-
# Whether or not to cache controller classes:
|
|
47
|
-
cache_controllers: (RACK_ENV == :production)
|
|
48
|
-
</code></pre>
|
|
49
|
-
|
|
50
|
-
<p>A controller is a file within the root directory (or subdirectory) with the name <code>controller.rb</code>. This code is dynamically loaded into an anonymous class and executed. The default controller has only a single function:</p>
|
|
51
|
-
|
|
52
|
-
<pre><code class="language-ruby">def passthrough(request, path)
|
|
53
|
-
# Call one of:
|
|
54
|
-
|
|
55
|
-
# This will cause the middleware to generate a response.
|
|
56
|
-
# def respond!(response)
|
|
57
|
-
|
|
58
|
-
# This will cause the controller to skip the request.
|
|
59
|
-
# def ignore!
|
|
60
|
-
|
|
61
|
-
# Request relative redirect. Respond with a redirect to the given target.
|
|
62
|
-
# def redirect! (target, status = 302)
|
|
63
|
-
|
|
64
|
-
# Controller relative redirect.
|
|
65
|
-
# def goto!(target, status = 302)
|
|
66
|
-
|
|
67
|
-
# Respond with an error which indiciates some kind of failure.
|
|
68
|
-
# def fail!(error = 400, message = nil)
|
|
69
|
-
|
|
70
|
-
# Succeed the request and immediately respond.
|
|
71
|
-
# def succeed!(status: 200, headers: {}, **options)
|
|
72
|
-
# options may include content: string or body: Enumerable (as per Rack specifications
|
|
73
|
-
end
|
|
74
|
-
</code></pre>
|
|
75
|
-
|
|
76
|
-
<p>The controller layer can do more complex operations by prepending modules into it.</p>
|
|
77
|
-
|
|
78
|
-
<pre><code class="language-ruby">prepend Rewrite, Actions
|
|
79
|
-
|
|
80
|
-
# Extracts an Integer
|
|
81
|
-
rewrite.extract_prefix id: Integer do
|
|
82
|
-
@user = User.find_by_id(@id)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
on 'edit' do |request, path|
|
|
86
|
-
if request.post?
|
|
87
|
-
@user.update_attributes(request[:user])
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
otherwise do |request, path|
|
|
92
|
-
# Executed if no specific named actions were executed.
|
|
93
|
-
succeed!
|
|
94
|
-
end
|
|
95
|
-
</code></pre>
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
<footer>
|
|
99
|
-
Last Modified: 2016-12-13 12:38:35 +1300 —
|
|
100
|
-
</footer>
|
|
101
|
-
|
|
102
|
-
</div>
|
|
103
|
-
</body>
|
|
104
|
-
</html>
|