ramaze 0.3.9.1 → 2023.01.06
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 +7 -0
- data/Gemfile +3 -0
- data/README.md +125 -0
- data/Rakefile +13 -186
- data/bin/ramaze +4 -149
- data/examples/app/auth/layout/auth.xhtml +25 -0
- data/examples/app/auth/start.rb +25 -0
- data/examples/app/auth/view/index.xhtml +4 -0
- data/examples/app/auth/view/login.xhtml +20 -0
- data/examples/app/auth/view/secret.xhtml +1 -0
- data/examples/app/blog/app.rb +23 -0
- data/examples/app/blog/config.ru +19 -0
- data/examples/app/blog/controller/init.rb +30 -0
- data/examples/app/blog/controller/posts.rb +223 -0
- data/examples/app/blog/controller/users.rb +152 -0
- data/examples/app/blog/layout/default.xhtml +61 -0
- data/examples/app/blog/migrations/01_create_schema.rb +50 -0
- data/examples/app/blog/model/comment.rb +42 -0
- data/examples/app/blog/model/init.rb +44 -0
- data/examples/app/blog/model/post.rb +33 -0
- data/examples/app/blog/model/user.rb +100 -0
- data/examples/app/blog/public/css/grid.css +107 -0
- data/examples/app/blog/public/css/layout.css +203 -0
- data/examples/app/blog/public/css/reset.css +123 -0
- data/examples/app/blog/public/css/text.css +109 -0
- data/examples/app/blog/public/dispatch.fcgi +11 -0
- data/examples/app/blog/public/favicon.ico +0 -0
- data/examples/app/blog/public/images/bg.png +0 -0
- data/examples/app/blog/start.rb +20 -0
- data/examples/app/blog/view/feed.xhtml +23 -0
- data/examples/app/blog/view/form.xhtml +11 -0
- data/examples/app/blog/view/index.xhtml +44 -0
- data/examples/app/blog/view/users/form.xhtml +12 -0
- data/examples/app/blog/view/users/index.xhtml +30 -0
- data/examples/app/blog/view/users/login.xhtml +8 -0
- data/examples/app/blog/view/view.xhtml +68 -0
- data/examples/app/chat/layout/default.xhtml +13 -0
- data/examples/app/chat/model/history.rb +38 -0
- data/examples/app/chat/model/message.rb +7 -0
- data/examples/app/chat/public/css/chat.css +9 -0
- data/examples/app/chat/public/js/chat.js +28 -0
- data/{lib/proto → examples/app/chat}/public/js/jquery.js +75 -15
- data/examples/app/chat/start.rb +39 -0
- data/examples/app/chat/view/chat.xhtml +9 -0
- data/examples/app/chat/view/index.xhtml +7 -0
- data/examples/app/localization/locale/de.yaml +5 -0
- data/examples/app/localization/locale/en.yaml +5 -0
- data/examples/app/localization/locale/ja.yaml +5 -0
- data/examples/app/localization/start.rb +48 -0
- data/examples/app/todolist/controller/init.rb +11 -0
- data/examples/app/todolist/controller/task.rb +39 -0
- data/examples/app/todolist/layout/default.xhtml +14 -0
- data/examples/app/todolist/model/init.rb +14 -0
- data/examples/app/todolist/model/task.rb +39 -0
- data/examples/app/todolist/public/css/screen.css +63 -0
- data/examples/app/todolist/start.rb +7 -0
- data/examples/app/todolist/view/index.xhtml +29 -0
- data/examples/{upload → app/upload}/start.rb +7 -3
- data/examples/app/whywiki/spec/whywiki.rb +56 -0
- data/examples/{whywiki → app/whywiki}/start.rb +10 -9
- data/examples/{whywiki/template → app/whywiki/view}/edit.xhtml +2 -2
- data/examples/app/whywiki/view/show.xhtml +20 -0
- data/examples/{wikore → app/wikore}/spec/wikore.rb +7 -9
- data/examples/{wikore → app/wikore}/src/controller.rb +9 -11
- data/examples/{wikore → app/wikore}/src/model.rb +11 -13
- data/examples/app/wikore/start.rb +9 -0
- data/examples/{wiktacular/template/html_layout.xhtml → app/wiktacular/layout/application.xhtml} +1 -1
- data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_19-21-12.mkd +1 -1
- data/examples/app/wiktacular/mkd/main/2007-07-20_19-23-10.mkd +2 -0
- data/examples/app/wiktacular/mkd/main/2007-07-20_19-45-07.mkd +2 -0
- data/examples/app/wiktacular/mkd/main/current.mkd +2 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/markdown/current.mkd +2 -2
- data/examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +2 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-20_19-43-50.mkd +2 -2
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-01.mkd +11 -11
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-32.mkd +12 -12
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-08.mkd +16 -16
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-54.mkd +16 -16
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/current.mkd +16 -16
- data/examples/{wiktacular → app/wiktacular}/spec/wiktacular.rb +39 -40
- data/examples/{wiktacular → app/wiktacular}/src/controller.rb +18 -18
- data/examples/{wiktacular → app/wiktacular}/src/model.rb +30 -14
- data/examples/{wiktacular → app/wiktacular}/start.rb +1 -1
- data/examples/{wiktacular/template → app/wiktacular/view}/edit.xhtml +2 -2
- data/examples/{wiktacular/template → app/wiktacular/view}/new.xhtml +1 -1
- data/examples/{element.rb → basic/element.rb} +5 -3
- data/examples/basic/gestalt.rb +26 -0
- data/examples/basic/hello.rb +14 -0
- data/examples/{layout.rb → basic/layout.rb} +2 -2
- data/examples/basic/linking.rb +29 -0
- data/examples/basic/partial.rb +26 -0
- data/examples/{simple.rb → basic/simple.rb} +9 -12
- data/examples/{caching.rb → helpers/cache.rb} +9 -7
- data/examples/helpers/paginate.rb +71 -0
- data/examples/helpers/rest.rb +28 -0
- data/examples/helpers/simple_captcha.rb +29 -0
- data/examples/{css.rb → misc/css.rb} +6 -12
- data/examples/misc/memleak_detector.rb +37 -0
- data/examples/misc/nagoro_element.rb +43 -0
- data/examples/{ramaise.rb → misc/ramaise.rb} +2 -2
- data/examples/misc/rapp.rb +56 -0
- data/examples/misc/sequel_scaffolding.rb +45 -0
- data/examples/misc/serve_directory.rb +6 -0
- data/examples/templates/template_erubis.rb +9 -10
- data/examples/templates/template_ezamar.rb +8 -7
- data/examples/templates/template_haml.rb +7 -8
- data/examples/templates/template_liquid.rb +20 -19
- data/examples/templates/template_markaby.rb +6 -7
- data/examples/templates/template_mustache.rb +70 -0
- data/examples/templates/template_nagoro.rb +6 -7
- data/examples/templates/template_redcloth.rb +8 -9
- data/examples/templates/template_remarkably.rb +8 -9
- data/examples/templates/template_tenjin.rb +10 -15
- data/examples/templates/{template → view}/external.haml +4 -4
- data/examples/templates/{template → view}/external.mab +4 -4
- data/examples/templates/view/external.mt +29 -0
- data/examples/templates/{template → view}/external.nag +4 -4
- data/examples/templates/{template → view}/external.redcloth +4 -4
- data/examples/templates/{template → view}/external.rem +4 -4
- data/examples/templates/{template → view}/external.rhtml +6 -6
- data/examples/templates/{template → view}/external.tenjin +4 -4
- data/examples/templates/{template → view}/external.zmr +6 -6
- data/guide/AUTHORS +80 -0
- data/guide/CHANGELOG +20210 -0
- data/guide/LICENSE +19 -0
- data/guide/_static/logo.png +0 -0
- data/guide/_static/logo.svg +49 -0
- data/guide/css/common.css +20 -0
- data/guide/general/cache.md +168 -0
- data/guide/general/configuration.md +169 -0
- data/guide/general/contributing.md +182 -0
- data/guide/general/controllers.md +210 -0
- data/guide/general/helpers.md +89 -0
- data/guide/general/installation.md +59 -0
- data/guide/general/logging.md +96 -0
- data/guide/general/middlewares.md +111 -0
- data/guide/general/models.md +79 -0
- data/{doc/readme_chunks/principles.txt → guide/general/principles.md} +15 -17
- data/guide/general/ramaze_command.md +110 -0
- data/guide/general/routes.md +82 -0
- data/guide/general/sessions.md +210 -0
- data/guide/general/special_thanks.md +69 -0
- data/guide/general/testing.md +228 -0
- data/guide/general/upgrading.md +85 -0
- data/guide/general/views.md +335 -0
- data/lib/proto/Gemfile +4 -0
- data/lib/proto/README.md +35 -0
- data/lib/proto/Rakefile +1 -0
- data/lib/proto/app.rb +9 -0
- data/lib/proto/config.ru +19 -0
- data/lib/proto/controller/init.rb +18 -0
- data/lib/proto/controller/main.rb +13 -10
- data/lib/proto/layout/default.xhtml +57 -0
- data/lib/proto/public/css/grid.css +107 -0
- data/lib/proto/public/css/layout.css +81 -0
- data/lib/proto/public/css/reset.css +123 -0
- data/lib/proto/public/css/text.css +109 -0
- data/lib/proto/public/favicon.ico +0 -0
- data/lib/proto/public/images/bg.png +0 -0
- data/lib/proto/spec/helper.rb +39 -0
- data/lib/proto/task/ramaze.rake +57 -0
- data/lib/proto/view/index.xhtml +36 -25
- data/lib/ramaze/app.rb +198 -0
- data/lib/ramaze/bin/create.rb +92 -0
- data/lib/ramaze/bin/runner.rb +127 -0
- data/lib/ramaze/cache/lru.rb +88 -0
- data/lib/ramaze/cache/memcache.rb +219 -0
- data/lib/ramaze/cache/moneta.rb +143 -0
- data/lib/ramaze/cache/redis.rb +163 -0
- data/lib/ramaze/cache/sequel.rb +373 -0
- data/lib/ramaze/cache.rb +42 -82
- data/lib/ramaze/controller/default.rb +25 -0
- data/lib/ramaze/controller.rb +184 -224
- data/lib/ramaze/current.rb +17 -68
- data/lib/ramaze/default_middleware.rb +24 -0
- data/lib/ramaze/files.rb +59 -0
- data/lib/ramaze/gestalt.rb +95 -63
- data/lib/ramaze/helper/auth.rb +107 -107
- data/lib/ramaze/helper/bench.rb +51 -0
- data/lib/ramaze/helper/blue_form.rb +683 -0
- data/lib/ramaze/helper/cache.rb +108 -130
- data/lib/ramaze/helper/csrf.rb +191 -0
- data/lib/ramaze/helper/email.rb +116 -0
- data/lib/ramaze/helper/erector.rb +113 -0
- data/lib/ramaze/helper/flash.rb +42 -39
- data/lib/ramaze/helper/formatting.rb +200 -35
- data/lib/ramaze/helper/gestalt.rb +49 -0
- data/lib/ramaze/helper/gravatar.rb +75 -0
- data/lib/ramaze/helper/identity.rb +93 -68
- data/lib/ramaze/helper/layout.rb +128 -0
- data/lib/ramaze/helper/link.rb +52 -119
- data/lib/ramaze/helper/localize.rb +143 -0
- data/lib/ramaze/helper/markaby.rb +26 -24
- data/lib/ramaze/helper/maruku.rb +15 -6
- data/lib/ramaze/helper/paginate.rb +315 -0
- data/lib/ramaze/helper/remarkably.rb +14 -0
- data/lib/ramaze/helper/request_accessor.rb +20 -0
- data/lib/ramaze/helper/send_file.rb +34 -0
- data/lib/ramaze/helper/simple_captcha.rb +61 -0
- data/lib/ramaze/helper/stack.rb +72 -62
- data/lib/ramaze/helper/tagz.rb +13 -12
- data/lib/ramaze/helper/thread.rb +25 -0
- data/lib/ramaze/helper/upload.rb +525 -0
- data/lib/ramaze/helper/user.rb +260 -39
- data/lib/ramaze/helper/xhtml.rb +122 -0
- data/lib/ramaze/helper.rb +8 -79
- data/lib/ramaze/log/hub.rb +41 -32
- data/lib/ramaze/log/informer.rb +128 -104
- data/lib/ramaze/log/logger.rb +25 -15
- data/lib/ramaze/log/logging.rb +46 -27
- data/lib/ramaze/log/rotatinginformer.rb +237 -0
- data/lib/ramaze/log/syslog.rb +57 -31
- data/lib/ramaze/log.rb +16 -15
- data/lib/ramaze/reloader/watch_inotify.rb +84 -0
- data/lib/ramaze/reloader/watch_stat.rb +58 -0
- data/lib/ramaze/reloader.rb +212 -0
- data/lib/ramaze/request.rb +126 -0
- data/lib/ramaze/response.rb +67 -0
- data/lib/ramaze/snippets/object/__dir__.rb +25 -0
- data/lib/ramaze/snippets/ramaze/deprecated.rb +23 -0
- data/lib/ramaze/snippets/string/camel_case.rb +17 -14
- data/lib/ramaze/snippets/string/color.rb +27 -24
- data/lib/ramaze/snippets/string/esc.rb +25 -25
- data/lib/ramaze/snippets/string/snake_case.rb +16 -13
- data/lib/ramaze/snippets/string/unindent.rb +24 -11
- data/lib/ramaze/snippets.rb +21 -6
- data/lib/ramaze/spec/bacon.rb +44 -0
- data/lib/ramaze/spec/helper/bacon.rb +4 -4
- data/lib/ramaze/spec/helper/pretty_output.rb +9 -1
- data/lib/ramaze/spec/helper/snippets.rb +11 -1
- data/lib/ramaze/spec/helper/template_examples.rb +22 -0
- data/lib/ramaze/version.rb +4 -13
- data/lib/ramaze/view/erector.rb +116 -0
- data/lib/ramaze/view/erubis.rb +26 -0
- data/lib/ramaze/view/ezamar.rb +27 -0
- data/lib/ramaze/view/gestalt.rb +20 -0
- data/lib/ramaze/view/haml.rb +27 -0
- data/lib/ramaze/view/liquid.rb +99 -0
- data/lib/ramaze/view/lokar.rb +18 -0
- data/lib/ramaze/view/mustache.rb +46 -0
- data/lib/ramaze/view/nagoro/render_partial.rb +32 -0
- data/lib/ramaze/view/nagoro.rb +44 -0
- data/lib/ramaze/view/remarkably.rb +22 -0
- data/lib/ramaze/view/sass.rb +22 -0
- data/lib/ramaze/view/slim.rb +43 -0
- data/lib/ramaze/view/slippers.rb +51 -0
- data/lib/ramaze/view/tagz.rb +67 -0
- data/lib/ramaze/view/tenjin.rb +32 -0
- data/lib/ramaze/view.rb +35 -0
- data/lib/ramaze.rb +60 -100
- data/lib/vendor/route_exceptions.rb +42 -0
- data/ramaze.gemspec +61 -0
- data/spec/examples/caching.rb +5 -8
- data/spec/examples/css.rb +3 -4
- data/spec/examples/element.rb +4 -4
- data/spec/examples/hello.rb +4 -5
- data/spec/examples/linking.rb +3 -4
- data/spec/examples/misc/sequel_scaffolding.rb +18 -0
- data/spec/examples/simple.rb +3 -8
- data/spec/examples/templates/template_erubis.rb +8 -18
- data/spec/examples/templates/template_ezamar.rb +9 -19
- data/spec/examples/templates/template_haml.rb +8 -20
- data/spec/examples/templates/template_liquid.rb +8 -24
- data/spec/examples/templates/template_markaby.rb +10 -19
- data/spec/examples/templates/template_mustache.rb +13 -0
- data/spec/examples/templates/template_nagoro.rb +13 -0
- data/spec/examples/templates/template_remarkably.rb +8 -18
- data/spec/examples/templates/template_tenjin.rb +8 -23
- data/spec/examples/todolist.rb +33 -0
- data/spec/helper.rb +14 -3
- data/spec/ramaze/action/render.rb +9 -17
- data/spec/ramaze/action/view/other_wrapper.erb +1 -0
- data/spec/ramaze/action/view/sub/sub_wrapper.xhtml +1 -0
- data/spec/ramaze/app/location.rb +43 -0
- data/spec/ramaze/app.rb +50 -0
- data/spec/ramaze/bin/app/config.ru +11 -0
- data/spec/ramaze/bin/create.rb +28 -0
- data/spec/ramaze/bin/runner.rb +30 -0
- data/spec/ramaze/cache/lru.rb +48 -0
- data/spec/ramaze/cache/memcache.rb +69 -0
- data/spec/ramaze/cache/moneta.rb +53 -0
- data/spec/ramaze/cache/redis.rb +58 -0
- data/spec/ramaze/cache/sequel.rb +60 -0
- data/spec/ramaze/controller/actionless_templates.rb +16 -12
- data/spec/ramaze/controller/lonely_mapping.rb +18 -0
- data/spec/ramaze/controller/mapping.rb +63 -0
- data/spec/ramaze/controller/provide_inheritance.rb +40 -0
- data/spec/ramaze/controller/resolve.rb +9 -11
- data/spec/ramaze/controller/subclass.rb +22 -7
- data/spec/ramaze/controller/template_resolving.rb +23 -61
- data/spec/ramaze/controller/view/bar.xhtml +1 -0
- data/spec/ramaze/controller/view/base/another.xhtml +1 -0
- data/spec/ramaze/dispatcher/directory.rb +61 -33
- data/spec/ramaze/dispatcher/file.rb +65 -47
- data/spec/ramaze/error.rb +54 -64
- data/spec/ramaze/files/public_1/plain.txt +1 -0
- data/spec/ramaze/files/public_2/rich.txt +1 -0
- data/spec/ramaze/files.rb +30 -0
- data/spec/ramaze/gestalt.rb +28 -21
- data/spec/ramaze/helper/auth.rb +47 -29
- data/spec/ramaze/helper/bench.rb +21 -0
- data/spec/ramaze/helper/blue_form.rb +807 -0
- data/spec/ramaze/helper/cache.rb +65 -84
- data/spec/ramaze/helper/csrf.rb +64 -0
- data/spec/ramaze/helper/email.rb +69 -0
- data/spec/ramaze/helper/flash.rb +22 -101
- data/spec/ramaze/helper/formatting.rb +100 -6
- data/spec/ramaze/helper/gestalt.rb +18 -0
- data/spec/ramaze/helper/gravatar.rb +43 -0
- data/spec/ramaze/helper/layout/alternative.xhtml +5 -0
- data/spec/ramaze/helper/layout/default.xhtml +5 -0
- data/spec/ramaze/helper/layout.rb +109 -0
- data/spec/ramaze/helper/link.rb +48 -102
- data/spec/ramaze/helper/localize.rb +65 -0
- data/spec/ramaze/helper/maruku.rb +22 -0
- data/spec/ramaze/helper/paginate.rb +304 -0
- data/spec/ramaze/helper/request_accessor.rb +22 -0
- data/spec/ramaze/helper/simple_captcha.rb +45 -0
- data/spec/ramaze/helper/stack.rb +54 -41
- data/spec/ramaze/helper/upload.rb +150 -0
- data/spec/ramaze/helper/uploads/text_1.txt +1 -0
- data/spec/ramaze/helper/uploads/text_2.txt +1 -0
- data/spec/ramaze/helper/user.rb +63 -20
- data/spec/ramaze/helper/xhtml.rb +54 -0
- data/spec/ramaze/log/informer.rb +30 -28
- data/spec/ramaze/log/logging.rb +66 -0
- data/spec/ramaze/log/syslog.rb +89 -4
- data/spec/ramaze/params.rb +12 -16
- data/spec/ramaze/request.rb +51 -160
- data/spec/ramaze/rewrite/file.css +1 -0
- data/spec/ramaze/session/lru.rb +58 -0
- data/spec/ramaze/session/memcache.rb +66 -0
- data/spec/ramaze/session/redis.rb +63 -0
- data/spec/ramaze/session/sequel.rb +62 -0
- data/spec/ramaze/view/erector/external_view.erector +5 -0
- data/spec/ramaze/view/erector/index.erector +5 -0
- data/spec/ramaze/view/erector/layout.erector +13 -0
- data/spec/ramaze/view/erector/tables.erector +23 -0
- data/spec/ramaze/view/erector/view.erector +6 -0
- data/spec/ramaze/view/erector.rb +68 -0
- data/spec/ramaze/view/erubis/external.rhtml +8 -0
- data/spec/ramaze/view/erubis/sum.rhtml +1 -0
- data/spec/ramaze/view/erubis.rb +73 -0
- data/spec/ramaze/view/ezamar/external.zmr +8 -0
- data/spec/ramaze/view/ezamar/sum.zmr +1 -0
- data/spec/ramaze/view/ezamar.rb +73 -0
- data/spec/ramaze/view/gestalt/external.ges +8 -0
- data/spec/ramaze/view/gestalt.rb +94 -0
- data/spec/ramaze/view/haml/external.haml +5 -0
- data/spec/ramaze/view/haml/sum.haml +2 -0
- data/spec/ramaze/view/haml.rb +114 -0
- data/spec/ramaze/view/liquid/external.liquid +8 -0
- data/spec/ramaze/view/liquid/sum.liquid +1 -0
- data/spec/ramaze/view/liquid.rb +73 -0
- data/spec/ramaze/view/lokar/external.lok +8 -0
- data/spec/ramaze/view/lokar/sum.lok +1 -0
- data/spec/ramaze/view/lokar.rb +78 -0
- data/spec/ramaze/view/mustache/external.mt +8 -0
- data/spec/ramaze/view/mustache/sum.mt +1 -0
- data/spec/ramaze/view/mustache.rb +77 -0
- data/spec/ramaze/view/nagoro/external.nag +8 -0
- data/spec/ramaze/view/nagoro/sum.nag +1 -0
- data/spec/ramaze/view/nagoro.rb +78 -0
- data/spec/ramaze/view/remarkably.rb +49 -0
- data/spec/ramaze/view/sass.rb +73 -0
- data/spec/ramaze/view/slim/external.slim +5 -0
- data/spec/ramaze/view/slim/external_vars.slim +5 -0
- data/spec/ramaze/view/slim.rb +49 -0
- data/spec/ramaze/view/slippers/external.st +8 -0
- data/spec/ramaze/view/slippers/sum.st +1 -0
- data/spec/ramaze/view/slippers.rb +49 -0
- data/spec/ramaze/{template → view}/tagz.rb +20 -31
- data/spec/ramaze/view/tenjin/external.rbhtml +8 -0
- data/spec/ramaze/view/tenjin/sum.rbhtml +1 -0
- data/spec/ramaze/view/tenjin.rb +57 -0
- data/spec/ramaze/view.rb +36 -0
- data/spec/snippets/object/__dir__.rb +17 -0
- data/spec/snippets/ramaze/lru_hash.rb +88 -0
- data/spec/snippets/string/camel_case.rb +4 -1
- data/spec/snippets/string/color.rb +4 -1
- data/spec/snippets/string/snake_case.rb +4 -1
- data/spec/snippets/string/unindent.rb +10 -1
- data/tasks/authors.rake +17 -0
- data/tasks/bacon.rake +81 -0
- data/tasks/changelog.rake +20 -0
- data/tasks/gems.rake +15 -0
- data/tasks/release.rake +38 -0
- data/tasks/todo.rake +31 -0
- data/tasks/yard.rake +13 -0
- metadata +813 -714
- data/doc/AUTHORS +0 -25
- data/doc/CHANGELOG +0 -5757
- data/doc/COPYING +0 -56
- data/doc/FAQ +0 -92
- data/doc/GPL +0 -339
- data/doc/INSTALL +0 -34
- data/doc/LEGAL +0 -26
- data/doc/ProjectInfo +0 -53
- data/doc/README +0 -435
- data/doc/TODO +0 -29
- data/doc/meta/announcement.txt +0 -126
- data/doc/meta/configuration.txt +0 -162
- data/doc/meta/internals.txt +0 -278
- data/doc/meta/users.kml +0 -64
- data/doc/migrate/1110_to_1111.txt +0 -131
- data/doc/readme_chunks/appendix.txt +0 -10
- data/doc/readme_chunks/examples.txt +0 -38
- data/doc/readme_chunks/features.txt +0 -148
- data/doc/readme_chunks/getting_help.txt +0 -5
- data/doc/readme_chunks/getting_started.txt +0 -18
- data/doc/readme_chunks/installing.txt +0 -46
- data/doc/readme_chunks/introduction.txt +0 -18
- data/doc/readme_chunks/thanks.txt +0 -59
- data/doc/tutorial/todolist.html +0 -816
- data/doc/tutorial/todolist.mkd +0 -736
- data/examples/auth/auth.rb +0 -54
- data/examples/auth/template/layout.haml +0 -20
- data/examples/auth/template/login.haml +0 -16
- data/examples/blog/README +0 -3
- data/examples/blog/controller/main.rb +0 -29
- data/examples/blog/model/entry.rb +0 -30
- data/examples/blog/public/styles/blog.css +0 -132
- data/examples/blog/spec/blog.rb +0 -87
- data/examples/blog/start.rb +0 -7
- data/examples/blog/view/edit.xhtml +0 -17
- data/examples/blog/view/index.xhtml +0 -17
- data/examples/blog/view/layout.xhtml +0 -11
- data/examples/blog/view/new.xhtml +0 -16
- data/examples/hello.rb +0 -15
- data/examples/linking.rb +0 -29
- data/examples/memleak_detector.rb +0 -32
- data/examples/nitro_form.rb +0 -23
- data/examples/rammit/spec/rammit.rb +0 -30
- data/examples/rammit/src/controller/main.rb +0 -3
- data/examples/rammit/src/controller/page.rb +0 -16
- data/examples/rammit/src/model.rb +0 -33
- data/examples/rammit/start.rb +0 -8
- data/examples/rammit/template/index.xhtml +0 -14
- data/examples/rammit/template/page/view.xhtml +0 -4
- data/examples/rapaste/Rakefile +0 -35
- data/examples/rapaste/controller/paste.rb +0 -94
- data/examples/rapaste/model/paste.rb +0 -55
- data/examples/rapaste/public/css/active4d.css +0 -114
- data/examples/rapaste/public/css/all_hallows_eve.css +0 -72
- data/examples/rapaste/public/css/amy.css +0 -147
- data/examples/rapaste/public/css/blackboard.css +0 -88
- data/examples/rapaste/public/css/brilliance_black.css +0 -605
- data/examples/rapaste/public/css/brilliance_dull.css +0 -599
- data/examples/rapaste/public/css/cobalt.css +0 -149
- data/examples/rapaste/public/css/dawn.css +0 -121
- data/examples/rapaste/public/css/display.css +0 -197
- data/examples/rapaste/public/css/eiffel.css +0 -121
- data/examples/rapaste/public/css/espresso_libre.css +0 -109
- data/examples/rapaste/public/css/idle.css +0 -62
- data/examples/rapaste/public/css/iplastic.css +0 -80
- data/examples/rapaste/public/css/lazy.css +0 -73
- data/examples/rapaste/public/css/mac_classic.css +0 -123
- data/examples/rapaste/public/css/magicwb_amiga.css +0 -104
- data/examples/rapaste/public/css/pastels_on_dark.css +0 -188
- data/examples/rapaste/public/css/slush_poppies.css +0 -85
- data/examples/rapaste/public/css/spacecadet.css +0 -51
- data/examples/rapaste/public/css/sunburst.css +0 -180
- data/examples/rapaste/public/css/twilight.css +0 -137
- data/examples/rapaste/public/css/zenburnesque.css +0 -91
- data/examples/rapaste/public/js/jquery.js +0 -11
- data/examples/rapaste/spec/rapaste.rb +0 -49
- data/examples/rapaste/start.rb +0 -24
- data/examples/rapaste/view/copy.xhtml +0 -10
- data/examples/rapaste/view/index.xhtml +0 -9
- data/examples/rapaste/view/layout.xhtml +0 -25
- data/examples/rapaste/view/list.xhtml +0 -29
- data/examples/rapaste/view/search.xhtml +0 -41
- data/examples/rapaste/view/view.xhtml +0 -37
- data/examples/simple_auth.rb +0 -23
- data/examples/sourceview/public/coderay.css +0 -104
- data/examples/sourceview/public/images/file.gif +0 -0
- data/examples/sourceview/public/images/folder.gif +0 -0
- data/examples/sourceview/public/images/tv-collapsable-last.gif +0 -0
- data/examples/sourceview/public/images/tv-collapsable.gif +0 -0
- data/examples/sourceview/public/images/tv-expandable-last.gif +0 -0
- data/examples/sourceview/public/images/tv-expandable.gif +0 -0
- data/examples/sourceview/public/images/tv-item-last.gif +0 -0
- data/examples/sourceview/public/images/tv-item.gif +0 -0
- data/examples/sourceview/public/jquery.js +0 -11
- data/examples/sourceview/public/jquery.treeview.css +0 -48
- data/examples/sourceview/public/jquery.treeview.js +0 -223
- data/examples/sourceview/public/sourceview.js +0 -52
- data/examples/sourceview/sourceview.rb +0 -77
- data/examples/sourceview/template/index.haml +0 -59
- data/examples/templates/template/external.amrita +0 -19
- data/examples/templates/template/external.xsl +0 -57
- data/examples/templates/template_amrita2.rb +0 -74
- data/examples/templates/template_xslt.rb +0 -49
- data/examples/todolist/README +0 -1
- data/examples/todolist/public/js/jquery.js +0 -1923
- data/examples/todolist/public/ramaze.png +0 -0
- data/examples/todolist/spec/todolist.rb +0 -132
- data/examples/todolist/src/controller/main.rb +0 -70
- data/examples/todolist/src/element/page.rb +0 -31
- data/examples/todolist/src/model.rb +0 -14
- data/examples/todolist/start.rb +0 -11
- data/examples/todolist/template/index.xhtml +0 -17
- data/examples/todolist/template/new.xhtml +0 -7
- data/examples/whywiki/spec/whywiki.rb +0 -58
- data/examples/whywiki/template/show.xhtml +0 -18
- data/examples/wikore/start.rb +0 -9
- data/examples/wiktacular/mkd/main/2007-07-20_19-23-10.mkd +0 -2
- data/examples/wiktacular/mkd/main/2007-07-20_19-45-07.mkd +0 -2
- data/examples/wiktacular/mkd/main/current.mkd +0 -2
- data/examples/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +0 -2
- data/lib/proto/public/css/ramaze_error.css +0 -90
- data/lib/proto/public/dispatch.fcgi +0 -11
- data/lib/proto/public/ramaze.png +0 -0
- data/lib/proto/spec/main.rb +0 -24
- data/lib/proto/start.rb +0 -8
- data/lib/proto/start.ru +0 -8
- data/lib/proto/view/error.xhtml +0 -64
- data/lib/proto/view/page.xhtml +0 -15
- data/lib/ramaze/action/render.rb +0 -163
- data/lib/ramaze/action.rb +0 -136
- data/lib/ramaze/adapter/base.rb +0 -59
- data/lib/ramaze/adapter/cgi.rb +0 -24
- data/lib/ramaze/adapter/ebb.rb +0 -32
- data/lib/ramaze/adapter/evented_mongrel.rb +0 -7
- data/lib/ramaze/adapter/fcgi.rb +0 -24
- data/lib/ramaze/adapter/lsws.rb +0 -23
- data/lib/ramaze/adapter/mongrel.rb +0 -25
- data/lib/ramaze/adapter/scgi.rb +0 -22
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +0 -7
- data/lib/ramaze/adapter/thin.rb +0 -22
- data/lib/ramaze/adapter/webrick.rb +0 -52
- data/lib/ramaze/adapter.rb +0 -101
- data/lib/ramaze/cache/memcached.rb +0 -70
- data/lib/ramaze/cache/memory.rb +0 -6
- data/lib/ramaze/cache/yaml_store.rb +0 -68
- data/lib/ramaze/contrib/auto_params/get_args.rb +0 -57
- data/lib/ramaze/contrib/auto_params.rb +0 -135
- data/lib/ramaze/contrib/email.rb +0 -84
- data/lib/ramaze/contrib/facebook/facebook.rb +0 -171
- data/lib/ramaze/contrib/facebook.rb +0 -23
- data/lib/ramaze/contrib/file_cache.rb +0 -65
- data/lib/ramaze/contrib/gettext/mo.rb +0 -155
- data/lib/ramaze/contrib/gettext/parser.rb +0 -46
- data/lib/ramaze/contrib/gettext/po.rb +0 -109
- data/lib/ramaze/contrib/gettext.rb +0 -113
- data/lib/ramaze/contrib/gzip_filter.rb +0 -56
- data/lib/ramaze/contrib/profiling.rb +0 -36
- data/lib/ramaze/contrib/route.rb +0 -22
- data/lib/ramaze/contrib/sequel/fill.rb +0 -12
- data/lib/ramaze/contrib/sequel_cache.rb +0 -92
- data/lib/ramaze/contrib.rb +0 -82
- data/lib/ramaze/controller/error.rb +0 -46
- data/lib/ramaze/controller/main.rb +0 -2
- data/lib/ramaze/controller/resolve.rb +0 -234
- data/lib/ramaze/current/request.rb +0 -181
- data/lib/ramaze/current/response.rb +0 -19
- data/lib/ramaze/current/session/flash.rb +0 -67
- data/lib/ramaze/current/session/hash.rb +0 -65
- data/lib/ramaze/current/session.rb +0 -153
- data/lib/ramaze/dispatcher/action.rb +0 -40
- data/lib/ramaze/dispatcher/directory.rb +0 -116
- data/lib/ramaze/dispatcher/error.rb +0 -108
- data/lib/ramaze/dispatcher/file.rb +0 -87
- data/lib/ramaze/dispatcher.rb +0 -124
- data/lib/ramaze/error.rb +0 -24
- data/lib/ramaze/global/dsl.rb +0 -39
- data/lib/ramaze/global/globalstruct.rb +0 -147
- data/lib/ramaze/global.rb +0 -116
- data/lib/ramaze/helper/aspect.rb +0 -100
- data/lib/ramaze/helper/cgi.rb +0 -43
- data/lib/ramaze/helper/inform.rb +0 -40
- data/lib/ramaze/helper/nitroform.rb +0 -14
- data/lib/ramaze/helper/pager.rb +0 -366
- data/lib/ramaze/helper/partial.rb +0 -96
- data/lib/ramaze/helper/redirect.rb +0 -73
- data/lib/ramaze/helper/sendfile.rb +0 -18
- data/lib/ramaze/helper/sequel.rb +0 -52
- data/lib/ramaze/inform.rb +0 -4
- data/lib/ramaze/log/analogger.rb +0 -37
- data/lib/ramaze/log/growl.rb +0 -35
- data/lib/ramaze/log/knotify.rb +0 -25
- data/lib/ramaze/log/xosd.rb +0 -88
- data/lib/ramaze/route.rb +0 -84
- data/lib/ramaze/snippets/array/put_within.rb +0 -37
- data/lib/ramaze/snippets/binding/locals.rb +0 -13
- data/lib/ramaze/snippets/dictionary.rb +0 -504
- data/lib/ramaze/snippets/divide.rb +0 -20
- data/lib/ramaze/snippets/kernel/__dir__.rb +0 -23
- data/lib/ramaze/snippets/kernel/acquire.rb +0 -39
- data/lib/ramaze/snippets/kernel/aquire.rb +0 -1
- data/lib/ramaze/snippets/kernel/constant.rb +0 -26
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +0 -15
- data/lib/ramaze/snippets/metaid.rb +0 -17
- data/lib/ramaze/snippets/numeric/filesize_format.rb +0 -19
- data/lib/ramaze/snippets/object/pretty.rb +0 -6
- data/lib/ramaze/snippets/object/scope.rb +0 -11
- data/lib/ramaze/snippets/object/thread_accessor.rb +0 -5
- data/lib/ramaze/snippets/object/traits.rb +0 -76
- data/lib/ramaze/snippets/ordered_set.rb +0 -36
- data/lib/ramaze/snippets/proc/locals.rb +0 -11
- data/lib/ramaze/snippets/ramaze/caller_info.rb +0 -30
- data/lib/ramaze/snippets/ramaze/caller_lines.rb +0 -51
- data/lib/ramaze/snippets/ramaze/thread_accessor.rb +0 -44
- data/lib/ramaze/snippets/string/each.rb +0 -8
- data/lib/ramaze/snippets/string/ord.rb +0 -15
- data/lib/ramaze/snippets/string/start_with.rb +0 -7
- data/lib/ramaze/snippets/struct/fill.rb +0 -23
- data/lib/ramaze/snippets/struct/values_at.rb +0 -23
- data/lib/ramaze/snippets/symbol/to_proc.rb +0 -24
- data/lib/ramaze/snippets/thread/into.rb +0 -18
- data/lib/ramaze/sourcereload.rb +0 -169
- data/lib/ramaze/spec/helper/browser.rb +0 -88
- data/lib/ramaze/spec/helper/mock_http.rb +0 -69
- data/lib/ramaze/spec/helper/requester.rb +0 -49
- data/lib/ramaze/spec/helper/simple_http.rb +0 -434
- data/lib/ramaze/spec/helper.rb +0 -122
- data/lib/ramaze/spec.rb +0 -1
- data/lib/ramaze/store/default.rb +0 -109
- data/lib/ramaze/template/amrita2.rb +0 -44
- data/lib/ramaze/template/builder.rb +0 -28
- data/lib/ramaze/template/erubis.rb +0 -35
- data/lib/ramaze/template/ezamar/element.rb +0 -169
- data/lib/ramaze/template/ezamar/engine.rb +0 -76
- data/lib/ramaze/template/ezamar/morpher.rb +0 -135
- data/lib/ramaze/template/ezamar/render_partial.rb +0 -31
- data/lib/ramaze/template/ezamar.rb +0 -42
- data/lib/ramaze/template/haml.rb +0 -37
- data/lib/ramaze/template/liquid.rb +0 -36
- data/lib/ramaze/template/markaby.rb +0 -52
- data/lib/ramaze/template/nagoro.rb +0 -51
- data/lib/ramaze/template/none.rb +0 -14
- data/lib/ramaze/template/redcloth.rb +0 -24
- data/lib/ramaze/template/remarkably.rb +0 -38
- data/lib/ramaze/template/sass.rb +0 -37
- data/lib/ramaze/template/tagz.rb +0 -79
- data/lib/ramaze/template/tenjin.rb +0 -34
- data/lib/ramaze/template/xslt.rb +0 -96
- data/lib/ramaze/template.rb +0 -81
- data/lib/ramaze/tool/create.rb +0 -74
- data/lib/ramaze/tool/localize.rb +0 -162
- data/lib/ramaze/tool/mime.rb +0 -25
- data/lib/ramaze/tool/mime_types.yaml +0 -615
- data/lib/ramaze/tool/record.rb +0 -6
- data/lib/ramaze/tool.rb +0 -9
- data/lib/ramaze/trinity.rb +0 -13
- data/lib/vendor/bacon.rb +0 -323
- data/rake_tasks/conf.rake +0 -73
- data/rake_tasks/coverage.rake +0 -46
- data/rake_tasks/darcs.rake +0 -5
- data/rake_tasks/gem.rake +0 -43
- data/rake_tasks/maintenance.rake +0 -384
- data/rake_tasks/spec.rake +0 -62
- data/spec/contrib/auto_params.rb +0 -121
- data/spec/contrib/profiling.rb +0 -26
- data/spec/contrib/route.rb +0 -36
- data/spec/contrib/sequel/fill.rb +0 -47
- data/spec/examples/simple_auth.rb +0 -32
- data/spec/examples/templates/template_amrita2.rb +0 -16
- data/spec/examples/templates/template_redcloth.rb +0 -28
- data/spec/ramaze/action/basics.rb +0 -36
- data/spec/ramaze/action/cache.rb +0 -43
- data/spec/ramaze/action/layout.rb +0 -190
- data/spec/ramaze/adapter/mongrel.rb +0 -12
- data/spec/ramaze/adapter/record.rb +0 -31
- data/spec/ramaze/adapter/webrick.rb +0 -12
- data/spec/ramaze/adapter.rb +0 -22
- data/spec/ramaze/cache.rb +0 -73
- data/spec/ramaze/controller.rb +0 -177
- data/spec/ramaze/current/request.rb +0 -30
- data/spec/ramaze/current/session.rb +0 -97
- data/spec/ramaze/dispatcher.rb +0 -31
- data/spec/ramaze/element.rb +0 -107
- data/spec/ramaze/helper/aspect.rb +0 -92
- data/spec/ramaze/helper/cgi.rb +0 -43
- data/spec/ramaze/helper/file.rb +0 -18
- data/spec/ramaze/helper/pager.rb +0 -99
- data/spec/ramaze/helper/partial.rb +0 -76
- data/spec/ramaze/helper/redirect.rb +0 -112
- data/spec/ramaze/localize.rb +0 -67
- data/spec/ramaze/morpher.rb +0 -111
- data/spec/ramaze/public/error404.xhtml +0 -1
- data/spec/ramaze/request/mongrel.rb +0 -9
- data/spec/ramaze/request/thin.rb +0 -9
- data/spec/ramaze/request/webrick.rb +0 -5
- data/spec/ramaze/route.rb +0 -130
- data/spec/ramaze/session.rb +0 -94
- data/spec/ramaze/store/default.rb +0 -71
- data/spec/ramaze/template/amrita2/external.amrita +0 -6
- data/spec/ramaze/template/amrita2/sum.amrita +0 -1
- data/spec/ramaze/template/amrita2.rb +0 -50
- data/spec/ramaze/template/builder/external.rxml +0 -3
- data/spec/ramaze/template/builder.rb +0 -55
- data/spec/ramaze/template/erubis/sum.rhtml +0 -1
- data/spec/ramaze/template/erubis.rb +0 -41
- data/spec/ramaze/template/ezamar/another/long/action.zmr +0 -1
- data/spec/ramaze/template/ezamar/combined.zmr +0 -1
- data/spec/ramaze/template/ezamar/file_only.zmr +0 -1
- data/spec/ramaze/template/ezamar/index.zmr +0 -1
- data/spec/ramaze/template/ezamar/nested.zmr +0 -1
- data/spec/ramaze/template/ezamar/other__index.xhtml +0 -1
- data/spec/ramaze/template/ezamar/some__long__action.zmr +0 -1
- data/spec/ramaze/template/ezamar/sum.zmr +0 -1
- data/spec/ramaze/template/ezamar.rb +0 -63
- data/spec/ramaze/template/haml/index.haml +0 -5
- data/spec/ramaze/template/haml/locals.haml +0 -2
- data/spec/ramaze/template/haml/with_vars.haml +0 -4
- data/spec/ramaze/template/haml.rb +0 -66
- data/spec/ramaze/template/liquid/index.liquid +0 -1
- data/spec/ramaze/template/liquid/products.liquid +0 -45
- data/spec/ramaze/template/liquid.rb +0 -99
- data/spec/ramaze/template/markaby/external.mab +0 -8
- data/spec/ramaze/template/markaby/sum.mab +0 -1
- data/spec/ramaze/template/markaby.rb +0 -61
- data/spec/ramaze/template/nagoro/another/long/action.nag +0 -1
- data/spec/ramaze/template/nagoro/combined.nag +0 -1
- data/spec/ramaze/template/nagoro/file_only.nag +0 -1
- data/spec/ramaze/template/nagoro/index.nag +0 -1
- data/spec/ramaze/template/nagoro/nested.nag +0 -1
- data/spec/ramaze/template/nagoro/some__long__action.nag +0 -1
- data/spec/ramaze/template/nagoro/sum.nag +0 -1
- data/spec/ramaze/template/nagoro.rb +0 -64
- data/spec/ramaze/template/redcloth/external.redcloth +0 -1
- data/spec/ramaze/template/redcloth.rb +0 -38
- data/spec/ramaze/template/remarkably.rb +0 -58
- data/spec/ramaze/template/sass.rb +0 -69
- data/spec/ramaze/template/tenjin/external.tenjin +0 -1
- data/spec/ramaze/template/tenjin.rb +0 -49
- data/spec/ramaze/template/xslt/concat_words.xsl +0 -16
- data/spec/ramaze/template/xslt/index.xsl +0 -14
- data/spec/ramaze/template/xslt/products.xsl +0 -32
- data/spec/ramaze/template/xslt/ruby_version.xsl +0 -14
- data/spec/ramaze/template/xslt.rb +0 -90
- data/spec/ramaze/template.rb +0 -128
- data/spec/snippets/array/put_within.rb +0 -33
- data/spec/snippets/divide.rb +0 -19
- data/spec/snippets/kernel/__dir__.rb +0 -8
- data/spec/snippets/kernel/acquire.rb +0 -71
- data/spec/snippets/kernel/constant.rb +0 -23
- data/spec/snippets/numeric/filesize_format.rb +0 -12
- data/spec/snippets/ordered_set.rb +0 -63
- data/spec/snippets/ramaze/caller_info.rb +0 -39
- data/spec/snippets/ramaze/caller_lines.rb +0 -30
- data/spec/snippets/struct/fill.rb +0 -26
- data/spec/snippets/struct/values_at.rb +0 -44
- data/spec/snippets/symbol/to_proc.rb +0 -13
- data/spec/snippets/thread/into.rb +0 -20
- /data/examples/{todolist → app/todolist}/public/favicon.ico +0 -0
- /data/examples/{upload → app/upload}/view/index.xhtml +0 -0
- /data/examples/{wikore/template → app/wikore/view}/index.xhtml +0 -0
- /data/examples/{wiktacular → app/wiktacular}/README +0 -0
- /data/examples/{wiktacular → app/wiktacular}/mkd/link/2007-07-20_19-45-51.mkd +0 -0
- /data/examples/{wiktacular → app/wiktacular}/mkd/link/current.mkd +0 -0
- /data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_16-31-33.mkd +0 -0
- /data/examples/{wiktacular → app/wiktacular}/public/favicon.ico +0 -0
- /data/examples/{wiktacular → app/wiktacular}/public/screen.css +0 -0
- /data/examples/{wiktacular/template → app/wiktacular/view}/index.xhtml +0 -0
- /data/examples/{identity.rb → helpers/identity.rb} +0 -0
- /data/examples/{facebook.rb → misc/facebook.rb} +0 -0
- /data/examples/templates/{template → view}/external.liquid +0 -0
- /data/spec/ramaze/action/{template → view}/bar.xhtml +0 -0
- /data/spec/ramaze/action/{template → view}/instancevars/layout.xhtml +0 -0
- /data/spec/ramaze/action/{template → view}/other_wrapper.xhtml +0 -0
- /data/spec/ramaze/action/{template → view}/single_wrapper.xhtml +0 -0
- /data/spec/ramaze/action/{template/sub/sub_wrapper.xhtml → view/sub/sub_wrapper.erb} +0 -0
- /data/spec/ramaze/controller/{template → view}/greet.xhtml +0 -0
- /data/spec/ramaze/controller/{template → view}/list.xhtml +0 -0
- /data/spec/ramaze/controller/{template → view}/other/greet/other.xhtml +0 -0
- /data/spec/ramaze/controller/{template → view}/other_wrapper.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/locals.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/loop.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/num.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/partial.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/recursive.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/recursive_local_ivars.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/recursive_locals.xhtml +0 -0
- /data/spec/ramaze/helper/{template → view}/test_template.xhtml +0 -0
- /data/spec/ramaze/{template → view}/remarkably/external.rem +0 -0
- /data/spec/ramaze/{template → view}/remarkably/sum.rem +0 -0
- /data/spec/ramaze/{template → view}/sass/file.css.sass +0 -0
- /data/spec/ramaze/{template → view}/tagz/external.tagz +0 -0
- /data/spec/ramaze/{template → view}/tagz/sum.tagz +0 -0
@@ -0,0 +1,219 @@
|
|
1
|
+
require 'dalli'
|
2
|
+
|
3
|
+
# Kgio gives a nice performance boost but it isn't required
|
4
|
+
begin; require 'kgio'; rescue LoadError => e; end
|
5
|
+
|
6
|
+
#:nodoc:
|
7
|
+
module Ramaze
|
8
|
+
#:nodoc:
|
9
|
+
class Cache
|
10
|
+
##
|
11
|
+
# Cache driver for the Memcache storage engine. Memcache is a key/value
|
12
|
+
# store that's extremely useful for caching data such as views or API
|
13
|
+
# responses. More information about Memcache can be found on it's website:
|
14
|
+
# <http://memcached.org/>.
|
15
|
+
#
|
16
|
+
# Note that this cache driver requires the Dalli gem rather than Memcache
|
17
|
+
# Client. The reason for this is that the Memcache client hasn't been
|
18
|
+
# updated in over a year and Memcache has changed quite a bit. Dalli is also
|
19
|
+
# supposed to be faster and better coded. This cache driver will also try to
|
20
|
+
# load the kgio Gem if it's installed, if it's not it will just continue to
|
21
|
+
# operate but you won't get the nice speed boost.
|
22
|
+
#
|
23
|
+
# This driver works similar to Ramaze::Cache::Sequel in that it allows you
|
24
|
+
# to specify instance specific options using the using() method:
|
25
|
+
#
|
26
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::MemCache.using(
|
27
|
+
# :compression => false
|
28
|
+
# )
|
29
|
+
#
|
30
|
+
# All options sent to the using() method will be sent to Dalli.
|
31
|
+
#
|
32
|
+
# @example Using the default options
|
33
|
+
# Ramaze::Cache.options.view = Ramaze::Cache::MemCache
|
34
|
+
# Ramaze.setup_dependencies
|
35
|
+
#
|
36
|
+
# Ramaze::Cache.view.store(:my_view, 'Hello Ramaze')
|
37
|
+
#
|
38
|
+
# @example Using custom options
|
39
|
+
# Ramaze::Cache.options.view = Ramaze::Cache::MemCache.using(
|
40
|
+
# :compression => false,
|
41
|
+
# :servers => ['localhost:11211', 'localhost:112112']
|
42
|
+
# )
|
43
|
+
#
|
44
|
+
# Ramaze.setup_dependencies
|
45
|
+
# Ramaze::Cache.view.store(:my_view, 'Hello Ramaze')
|
46
|
+
#
|
47
|
+
# @author Yorick Peterse
|
48
|
+
# @since 04-05-2011
|
49
|
+
#
|
50
|
+
class MemCache
|
51
|
+
include Cache::API
|
52
|
+
include Innate::Traited
|
53
|
+
|
54
|
+
# The maximum Time To Live that can be used in Memcache
|
55
|
+
MAX_TTL = 2592000
|
56
|
+
|
57
|
+
# Hash containing the default configuration options to use for Dalli
|
58
|
+
trait :default => {
|
59
|
+
# The default TTL for each item
|
60
|
+
:expires_in => 604800,
|
61
|
+
|
62
|
+
# Compresses everything with Gzip if it's over 1K
|
63
|
+
:compress => true,
|
64
|
+
|
65
|
+
# Array containing all default Memcache servers
|
66
|
+
:servers => ['localhost:11211']
|
67
|
+
}
|
68
|
+
|
69
|
+
# Hash containing all the default options merged with the user specified
|
70
|
+
# ones
|
71
|
+
attr_accessor :options
|
72
|
+
|
73
|
+
class << self
|
74
|
+
attr_accessor :options
|
75
|
+
|
76
|
+
##
|
77
|
+
# This method will create a subclass of Ramaze::Cache::MemCache with all
|
78
|
+
# the custom options set. All options set in this method will be sent to
|
79
|
+
# Dalli as well.
|
80
|
+
#
|
81
|
+
# Using this method allows you to use different memcache settings for
|
82
|
+
# various parts of Ramaze. For example, you might want to use servers A
|
83
|
+
# and B for storing the sessions but server C for only views. Most of
|
84
|
+
# the way this method works was inspired by Ramaze::Cache::Sequel which
|
85
|
+
# was contributed by Lars Olsson.
|
86
|
+
#
|
87
|
+
# @example
|
88
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::MemCache.using(
|
89
|
+
# :compression => false,
|
90
|
+
# :username => 'ramaze',
|
91
|
+
# :password => 'ramaze123',
|
92
|
+
# :servers => ['othermachine.com:12345']
|
93
|
+
# )
|
94
|
+
#
|
95
|
+
# @author Yorick Peterse
|
96
|
+
# @since 04-05-2011
|
97
|
+
# @param [Hash] options A hash containing all configuration options to
|
98
|
+
# use for Dalli. For more information on all the available options you
|
99
|
+
# can read the README in their repository. This repository can be found
|
100
|
+
# here: https://github.com/mperham/dalli
|
101
|
+
#
|
102
|
+
def using(options = {})
|
103
|
+
merged = Ramaze::Cache::MemCache.trait[:default].merge(options)
|
104
|
+
Class.new(self) { @options = merged }
|
105
|
+
end
|
106
|
+
end # class << self
|
107
|
+
|
108
|
+
##
|
109
|
+
# Creates a new instance of the cache class.
|
110
|
+
#
|
111
|
+
# @author Michael Fellinger
|
112
|
+
# @since 04-05-2011
|
113
|
+
# @param [Hash] options A hash with custom options, see
|
114
|
+
# Ramaze::Cache::MemCache.using for all available options.
|
115
|
+
#
|
116
|
+
def initialize(options = {})
|
117
|
+
self.class.options ||= Ramaze::Cache::MemCache.trait[:default].merge(
|
118
|
+
options
|
119
|
+
)
|
120
|
+
|
121
|
+
@options = options.merge(self.class.options)
|
122
|
+
end
|
123
|
+
|
124
|
+
##
|
125
|
+
# Prepares the cache by creating the namespace and an instance of a Dalli
|
126
|
+
# client.
|
127
|
+
#
|
128
|
+
# @author Yorick Peterse
|
129
|
+
# @since 04-05-2011
|
130
|
+
# @param [String] hostname The hostname of the machine running the
|
131
|
+
# application.
|
132
|
+
# @param [String] username The name of the user executing the process
|
133
|
+
# @param [String] appname Unique identifier for the application.
|
134
|
+
# @param [String] cachename The namespace to use for this cache instance.
|
135
|
+
#
|
136
|
+
def cache_setup(hostname, username, appname, cachename)
|
137
|
+
# Validate the maximum TTL
|
138
|
+
if options[:expires_in] > MAX_TTL
|
139
|
+
raise(ArgumentError, "The maximum TTL of Memcache is 30 days")
|
140
|
+
end
|
141
|
+
|
142
|
+
options[:namespace] = [
|
143
|
+
hostname, username, appname, cachename
|
144
|
+
].compact.join('-')
|
145
|
+
|
146
|
+
@client = ::Dalli::Client.new(options[:servers], options)
|
147
|
+
end
|
148
|
+
|
149
|
+
##
|
150
|
+
# Removes all items from the cache.
|
151
|
+
#
|
152
|
+
# @author Yorick Peterse
|
153
|
+
# @since 04-05-2011
|
154
|
+
#
|
155
|
+
def cache_clear
|
156
|
+
@client.flush
|
157
|
+
end
|
158
|
+
|
159
|
+
##
|
160
|
+
# Removes the specified keys from the cache.
|
161
|
+
#
|
162
|
+
# @author Yorick Peterse
|
163
|
+
# @since 04-05-2011
|
164
|
+
# @param [Array] keys The keys to remove from the cache.
|
165
|
+
#
|
166
|
+
def cache_delete(*keys)
|
167
|
+
keys.each do |key|
|
168
|
+
@client.delete(key)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
##
|
173
|
+
# Fetches the specified key from the cache. It the value was nil the
|
174
|
+
# default value will be returned instead.
|
175
|
+
#
|
176
|
+
# @author Yorick Peterse
|
177
|
+
# @since 04-05-2011
|
178
|
+
# @param [String] key The name of the key to retrieve.
|
179
|
+
# @param [Mixed] default The default value.
|
180
|
+
# @return [Mixed]
|
181
|
+
#
|
182
|
+
def cache_fetch(key, default = nil)
|
183
|
+
value = @client.get(key)
|
184
|
+
|
185
|
+
if value.nil?
|
186
|
+
return default
|
187
|
+
else
|
188
|
+
return value
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
##
|
193
|
+
# Sets the given key to the specified value. Optionally you can specify a
|
194
|
+
# hash with options specific to the key. Once a key has been stored it's
|
195
|
+
# value will be returned.
|
196
|
+
#
|
197
|
+
# @author Yorick Peterse
|
198
|
+
# @since 04-05-2011
|
199
|
+
# @param [String] key The name of the key to store.
|
200
|
+
# @param [Mixed] value The value to store in Memcache.
|
201
|
+
# @param [Fixnum] ttl The Time To Live to use for the current key.
|
202
|
+
# @param [Hash] options A hash containing options specific for the
|
203
|
+
# specified key.
|
204
|
+
# @return [Mixed]
|
205
|
+
#
|
206
|
+
def cache_store(key, value, options = {})
|
207
|
+
ttl = options.delete(:ttl) || @options[:expires_in]
|
208
|
+
|
209
|
+
if ttl > MAX_TTL
|
210
|
+
raise(ArgumentError, "The maximum TTL of Memcache is 30 days")
|
211
|
+
end
|
212
|
+
|
213
|
+
@client.set(key, value, ttl, options)
|
214
|
+
|
215
|
+
return value
|
216
|
+
end
|
217
|
+
end # MemCache
|
218
|
+
end # Cache
|
219
|
+
end # Ramaze
|
@@ -0,0 +1,143 @@
|
|
1
|
+
require 'moneta'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
class Cache
|
5
|
+
##
|
6
|
+
# The Moneta cache is a cache driver for Moneta (http://github.com/minad/moneta). Moneta is a
|
7
|
+
# unified interface to key/value stores.
|
8
|
+
#
|
9
|
+
# The usage of this cache is very similar to the Memcache driver. You load
|
10
|
+
# it by simply specifying the class:
|
11
|
+
#
|
12
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::Moneta
|
13
|
+
#
|
14
|
+
# If you want to specify custom options you can do so by calling {.using} on
|
15
|
+
# the class:
|
16
|
+
#
|
17
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::Moneta.using(...)
|
18
|
+
#
|
19
|
+
# @example Configuring the Moneta backend
|
20
|
+
# Ramaze::Cache.options.names.push(:moneta)
|
21
|
+
# Ramaze::Cache.options.moneta = Ramaze::Cache::Moneta.using(
|
22
|
+
# :adapter => :File,
|
23
|
+
# :dir => './ramaze-cache'
|
24
|
+
# )
|
25
|
+
#
|
26
|
+
# @author Daniel Mendler
|
27
|
+
#
|
28
|
+
class Moneta
|
29
|
+
include Cache::API
|
30
|
+
include Innate::Traited
|
31
|
+
|
32
|
+
# Hash containing all the default options to use when no custom ones are
|
33
|
+
# specified in .using().
|
34
|
+
trait :default => {
|
35
|
+
:expires_in => 604800,
|
36
|
+
:adapter => :Memory,
|
37
|
+
}
|
38
|
+
|
39
|
+
# Hash containing all the default options merged with the user specified
|
40
|
+
# ones.
|
41
|
+
attr_accessor :options
|
42
|
+
|
43
|
+
class << self
|
44
|
+
attr_accessor :options
|
45
|
+
|
46
|
+
##
|
47
|
+
# Creates a new instance of the cache class and merges the default
|
48
|
+
# options with the custom ones.
|
49
|
+
#
|
50
|
+
# Using this method you can specify custom options for various caches.
|
51
|
+
# For example, the Moneta cache for your sessions could be located at
|
52
|
+
# server #1 while a custom cache is located on server #2.
|
53
|
+
#
|
54
|
+
# @author Daniel Mendler
|
55
|
+
# @param [Hash] options A hash containing custom options.
|
56
|
+
# @option options [Fixnum] :expires_in The default time after which a
|
57
|
+
# key should expire.
|
58
|
+
# @option options [Symbol] :adapter Moneta adapter
|
59
|
+
#
|
60
|
+
def using(options = {})
|
61
|
+
merged = Ramaze::Cache::Moneta.trait[:default].merge(options)
|
62
|
+
Class.new(self) { @options = merged }
|
63
|
+
end
|
64
|
+
end # class << self
|
65
|
+
|
66
|
+
##
|
67
|
+
# Creates a new instance of the cache and merges the options if they
|
68
|
+
# haven't already been set.
|
69
|
+
#
|
70
|
+
# @author Daniel Mendler
|
71
|
+
# @param [Hash] options A hash with custom options. See
|
72
|
+
# Ramaze::Cache::Moneta.using() and the trait :default for more
|
73
|
+
# information.
|
74
|
+
#
|
75
|
+
def initialize(options = {})
|
76
|
+
self.class.options ||=
|
77
|
+
Ramaze::Cache::Moneta.trait[:default].merge(options)
|
78
|
+
|
79
|
+
@options = options.merge(self.class.options)
|
80
|
+
end
|
81
|
+
|
82
|
+
##
|
83
|
+
# Prepares the cache by setting up the prefix and loading Moneta.
|
84
|
+
#
|
85
|
+
# @author Daniel Mendler
|
86
|
+
#
|
87
|
+
def cache_setup(*args)
|
88
|
+
opts = options.dup
|
89
|
+
opts[:prefix] = ['ramaze', *args].compact.join(':')
|
90
|
+
opts[:expires] = opts.delete(:expires_in)
|
91
|
+
adapter = opts.delete(:adapter)
|
92
|
+
@moneta = ::Moneta.new(adapter, options)
|
93
|
+
end
|
94
|
+
|
95
|
+
##
|
96
|
+
# Clears the entire cache.
|
97
|
+
#
|
98
|
+
# @author Daniel Mendler
|
99
|
+
#
|
100
|
+
def cache_clear
|
101
|
+
@moneta.clear
|
102
|
+
end
|
103
|
+
|
104
|
+
##
|
105
|
+
# Removes a number of keys from the cache.
|
106
|
+
#
|
107
|
+
# @author Daniel Mendler
|
108
|
+
# @param [Array] keys An array of key names to remove.
|
109
|
+
#
|
110
|
+
def cache_delete(*keys)
|
111
|
+
keys.each {|key| @moneta.delete(key) }
|
112
|
+
end
|
113
|
+
|
114
|
+
##
|
115
|
+
# Retrieves the value of the given key. If no value could be retrieved the
|
116
|
+
# default value (set to nil by default) will be returned instead.
|
117
|
+
#
|
118
|
+
# @author Daniel Mendler
|
119
|
+
# @param [String] key The name of the key to retrieve.
|
120
|
+
# @param [Mixed] default The default value.
|
121
|
+
# @return [Mixed]
|
122
|
+
#
|
123
|
+
def cache_fetch(key, default = nil)
|
124
|
+
@moneta.fetch(key, default)
|
125
|
+
end
|
126
|
+
|
127
|
+
##
|
128
|
+
# Stores a new value under the given key.
|
129
|
+
#
|
130
|
+
# @author Daniel Mendler
|
131
|
+
# @param [String] key The name of the key to store.
|
132
|
+
# @param [Mixed] value The value of the key.
|
133
|
+
# @param [Fixnum] ttl The Time To Live of the key.
|
134
|
+
# @param [Hash] options A hash containing key specific options.
|
135
|
+
# @option options :expires_in The time after which the key should expire.
|
136
|
+
#
|
137
|
+
def cache_store(key, value, options = {})
|
138
|
+
options[:expires] = options.delete(:ttl) || @options[:expires_in]
|
139
|
+
@moneta.store(key, value, options)
|
140
|
+
end
|
141
|
+
end # Moneta
|
142
|
+
end # Cache
|
143
|
+
end # Ramaze
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'redis-namespace'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
class Cache
|
5
|
+
##
|
6
|
+
# The Redis cache is a cache driver for Redis (http://redis.io/). Redis is a
|
7
|
+
# key/value store similar to Memcached but with the ability to flush data to
|
8
|
+
# a file among various other features.
|
9
|
+
#
|
10
|
+
# The usage of this cache is very similar to the Memcache driver. You load
|
11
|
+
# it by simply specifying the class:
|
12
|
+
#
|
13
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::Redis
|
14
|
+
#
|
15
|
+
# If you want to specify custom options you can do so by calling {.using} on
|
16
|
+
# the class:
|
17
|
+
#
|
18
|
+
# Ramaze::Cache.options.session = Ramaze::Cache::Redis.using(...)
|
19
|
+
#
|
20
|
+
# @example Using a custom Redis host
|
21
|
+
# Ramaze::Cache.options.names.push(:redis)
|
22
|
+
# Ramaze::Cache.options.redis = Ramaze::Cache::Redis.using(
|
23
|
+
# :host => '123.124.125.126',
|
24
|
+
# :port => 6478
|
25
|
+
# )
|
26
|
+
#
|
27
|
+
# @author Michael Fellinger
|
28
|
+
# @since 09-10-2011
|
29
|
+
#
|
30
|
+
class Redis
|
31
|
+
include Cache::API
|
32
|
+
include Innate::Traited
|
33
|
+
|
34
|
+
# Hash containing all the default options to use when no custom ones are
|
35
|
+
# specified in .using().
|
36
|
+
trait :default => {
|
37
|
+
:expires_in => 604800,
|
38
|
+
:host => 'localhost',
|
39
|
+
:port => 6379
|
40
|
+
}
|
41
|
+
|
42
|
+
# Hash containing all the default options merged with the user specified
|
43
|
+
# ones.
|
44
|
+
attr_accessor :options
|
45
|
+
|
46
|
+
class << self
|
47
|
+
attr_accessor :options
|
48
|
+
|
49
|
+
##
|
50
|
+
# Creates a new instance of the cache class and merges the default
|
51
|
+
# options with the custom ones.
|
52
|
+
#
|
53
|
+
# Using this method you can specify custom options for various caches.
|
54
|
+
# For example, the Redis cache for your sessions could be located at
|
55
|
+
# server #1 while a custom cache is located on server #2.
|
56
|
+
#
|
57
|
+
# @author Yorick Peterse
|
58
|
+
# @since 09-10-2011
|
59
|
+
# @param [Hash] options A hash containing custom options.
|
60
|
+
# @option options [Fixnum] :expires_in The default time after which a
|
61
|
+
# key should expire.
|
62
|
+
# @option options [String] :host The hostname of the machine on which
|
63
|
+
# Redis is running.
|
64
|
+
# @option options [Fixnum] :port The port number to connect to.
|
65
|
+
#
|
66
|
+
def using(options = {})
|
67
|
+
merged = Ramaze::Cache::Redis.trait[:default].merge(options)
|
68
|
+
Class.new(self) { @options = merged }
|
69
|
+
end
|
70
|
+
end # class << self
|
71
|
+
|
72
|
+
##
|
73
|
+
# Creates a new instance of the cache and merges the options if they
|
74
|
+
# haven't already been set.
|
75
|
+
#
|
76
|
+
# @author Michael Fellinger
|
77
|
+
# @param [Hash] options A hash with custom options. See
|
78
|
+
# Ramaze::Cache::Redis.using() and the trait :default for more
|
79
|
+
# information.
|
80
|
+
#
|
81
|
+
def initialize(options = {})
|
82
|
+
self.class.options ||=
|
83
|
+
Ramaze::Cache::Redis.trait[:default].merge(options)
|
84
|
+
|
85
|
+
@options = options.merge(self.class.options)
|
86
|
+
end
|
87
|
+
|
88
|
+
##
|
89
|
+
# Prepares the cache by setting up the namespace and loading Redis.
|
90
|
+
#
|
91
|
+
# @author Michael Fellinger
|
92
|
+
# @since 09-10-2011
|
93
|
+
# @param [String] hostname The host of the machine that's running the
|
94
|
+
# Ramaze application.
|
95
|
+
# @param [String] username The name of the user that's running the
|
96
|
+
# application.
|
97
|
+
# @param [String] appname The name of the application (:pristine by
|
98
|
+
# default).
|
99
|
+
# @param [String] cachename The namespace to use for this cache instance.
|
100
|
+
#
|
101
|
+
def cache_setup(hostname, username, appname, cachename)
|
102
|
+
options[:namespace] = [
|
103
|
+
'ramaze', hostname, username, appname, cachename
|
104
|
+
].compact.join(':')
|
105
|
+
redis_connection = ::Redis.new
|
106
|
+
@client = ::Redis::Namespace.new(options[:namespace], redis: redis_connection)
|
107
|
+
end
|
108
|
+
|
109
|
+
##
|
110
|
+
# Clears the entire cache.
|
111
|
+
#
|
112
|
+
# @author Michael Fellinger
|
113
|
+
# @since 09-10-2011
|
114
|
+
#
|
115
|
+
def cache_clear
|
116
|
+
@client.flushall
|
117
|
+
end
|
118
|
+
|
119
|
+
##
|
120
|
+
# Removes a number of keys from the cache.
|
121
|
+
#
|
122
|
+
# @author Michael Fellinger
|
123
|
+
# @param [Array] keys An array of key names to remove.
|
124
|
+
#
|
125
|
+
def cache_delete(*keys)
|
126
|
+
@client.del(*keys)
|
127
|
+
end
|
128
|
+
|
129
|
+
##
|
130
|
+
# Retrieves the value of the given key. If no value could be retrieved the
|
131
|
+
# default value (set to nil by default) will be returned instead.
|
132
|
+
#
|
133
|
+
# @author Michael Fellinger
|
134
|
+
# @param [String] key The name of the key to retrieve.
|
135
|
+
# @param [Mixed] default The default value.
|
136
|
+
# @return [Mixed]
|
137
|
+
#
|
138
|
+
def cache_fetch(key, default = nil)
|
139
|
+
value = @client.get(key)
|
140
|
+
value.nil? ? default : ::Marshal.load(value)
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# Stores a new value under the given key.
|
145
|
+
#
|
146
|
+
# @author Michael Fellinger
|
147
|
+
# @param [String] key The name of the key to store.
|
148
|
+
# @param [Mixed] value The value of the key.
|
149
|
+
# @param [Fixnum] ttl The Time To Live of the key.
|
150
|
+
# @param [Hash] options A hash containing key specific options.
|
151
|
+
# @option options :expires_in The time after which the key should expire.
|
152
|
+
#
|
153
|
+
def cache_store(key, value, options = {})
|
154
|
+
ttl = options[:ttl] || @options[:expires_in]
|
155
|
+
|
156
|
+
@client.setex(key, ttl, ::Marshal.dump(value))
|
157
|
+
|
158
|
+
return value
|
159
|
+
end
|
160
|
+
|
161
|
+
end # Redis
|
162
|
+
end # Cache
|
163
|
+
end # Ramaze
|