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
data/guide/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2006 - 2012, Michael Fellinger
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
Binary file
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1"
|
5
|
+
id="svg2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" sodipodi:docname="ramaze_circle_logo.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" inkscape:version="0.48.1 r9760"
|
6
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px"
|
7
|
+
viewBox="-64.75 -65.013 300 300" enable-background="new -64.75 -65.013 300 300" xml:space="preserve">
|
8
|
+
<sodipodi:namedview id="base" fit-margin-bottom="0" fit-margin-right="0" fit-margin-left="0" fit-margin-top="0" inkscape:window-y="19" inkscape:window-x="0" showgrid="false" inkscape:current-layer="layer1" inkscape:document-units="px" inkscape:cy="304.76131" inkscape:pageopacity="0.0" borderopacity="1.0" bordercolor="#666666" pagecolor="#ffffff" inkscape:cx="174.2785" inkscape:zoom="0.35355339" inkscape:window-height="747" inkscape:pageshadow="2" inkscape:window-width="1364" inkscape:window-maximized="0">
|
9
|
+
</sodipodi:namedview>
|
10
|
+
<g id="layer1" transform="translate(-48.0832, -566.213)" inkscape:groupmode="layer" inkscape:label="Layer 1">
|
11
|
+
<g id="g3090" transform="matrix(0.382148, 0, 0, 0.382148, 29.7083, 471.954)">
|
12
|
+
<path id="path2985-0-2-9" inkscape:connector-curvature="0" fill="#4D4D4D" d="M478.606,340.975L377.809,399.19
|
13
|
+
c9.905,17.125,15.573,37.008,15.573,58.215c0,32.151-13.043,61.245-34.115,82.315l82.347,82.344
|
14
|
+
C516.135,547.542,531.305,432.248,478.606,340.975z"/>
|
15
|
+
|
16
|
+
<radialGradient id="path4022_1_" cx="1471.6052" cy="-11840.3555" r="258.7954" gradientTransform="matrix(0.3821 0 0 -0.0439 -299.9709 175.6774)" gradientUnits="userSpaceOnUse">
|
17
|
+
<stop offset="0" style="stop-color:#000000"/>
|
18
|
+
<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
|
19
|
+
</radialGradient>
|
20
|
+
|
21
|
+
<path id="path4022" sodipodi:type="arc" sodipodi:cx="148.49242" sodipodi:cy="779.41895" sodipodi:rx="258.80109" sodipodi:ry="29.698484" fill="url(#path4022_1_)" d="
|
22
|
+
M521.2,694.912c0,16.404-115.87,29.697-258.801,29.697S3.598,711.316,3.598,694.912c0-16.403,115.87-29.697,258.801-29.697
|
23
|
+
S521.2,678.509,521.2,694.912z"/>
|
24
|
+
<path id="path2985-0-1" inkscape:connector-curvature="0" fill="#B3B3B3" d="M359.266,539.719
|
25
|
+
c-21.067,21.07-50.164,34.113-82.314,34.113v116.429c61.758,0,120.988-24.53,164.661-68.197L359.266,539.719z"/>
|
26
|
+
<path id="path2985-3" inkscape:connector-curvature="0" fill="#FF0000" d="M276.952,224.547
|
27
|
+
c-128.603,0-232.857,104.254-232.857,232.857c0,128.602,104.254,232.857,232.857,232.857V573.832
|
28
|
+
c-64.302,0-116.429-52.126-116.429-116.428s52.128-116.429,116.429-116.429c43.095,0,80.724,23.413,100.856,58.215l100.797-58.215
|
29
|
+
C437.011,268.929,360.145,224.547,276.952,224.547z"/>
|
30
|
+
|
31
|
+
<linearGradient id="path2985-2-4_1_" gradientUnits="userSpaceOnUse" x1="1924.123" y1="-878.1219" x2="1924.123" y2="-1276.0308" gradientTransform="matrix(0.3821 0 0 -0.3821 -458.3633 -76.8066)">
|
32
|
+
<stop offset="0" style="stop-color:#000000;stop-opacity:0.4902"/>
|
33
|
+
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.4902"/>
|
34
|
+
</linearGradient>
|
35
|
+
<path id="path2985-2-4" inkscape:connector-curvature="0" fill="url(#path2985-2-4_1_)" d="M276.95,258.097
|
36
|
+
c-110.061,0-199.305,89.244-199.305,199.306c0,110.064,89.244,199.277,199.305,199.277c110.063,0,199.28-89.214,199.28-199.277
|
37
|
+
C476.229,347.341,387.013,258.097,276.95,258.097z M276.95,340.764c64.418,0,116.641,52.221,116.641,116.639
|
38
|
+
S341.368,574.042,276.95,574.042c-64.417,0-116.637-52.221-116.637-116.639S212.533,340.764,276.95,340.764z"/>
|
39
|
+
<path id="path2985-0-2" inkscape:connector-curvature="0" fill="#4D4D4D" d="M493.453,332.404l-108.219,62.5
|
40
|
+
c10.633,18.385,16.718,39.732,16.718,62.5c0,34.518-14.004,65.753-36.625,88.374l88.406,88.409
|
41
|
+
C533.743,554.176,550.029,430.397,493.453,332.404z"/>
|
42
|
+
<path id="path2985" inkscape:connector-curvature="0" fill="#FF0000" d="M276.952,207.404c-138.071,0-250,111.929-250,250
|
43
|
+
c0,138.073,111.929,250.002,250,250.002V582.403c-69.036,0-125-55.964-125-124.999c0-69.036,55.964-125,125-125
|
44
|
+
c46.266,0,86.668,25.137,108.282,62.5l108.219-62.5C448.794,255.054,366.268,207.404,276.952,207.404z"/>
|
45
|
+
<path id="path2985-0" inkscape:connector-curvature="0" fill="#B3B3B3" d="M365.328,545.778
|
46
|
+
c-22.621,22.621-53.859,36.625-88.375,36.625v125.003c66.304,0,129.896-26.337,176.781-73.219L365.328,545.778z"/>
|
47
|
+
</g>
|
48
|
+
</g>
|
49
|
+
</svg>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
body
|
2
|
+
{
|
3
|
+
font-size: 14px;
|
4
|
+
line-height: 1.6;
|
5
|
+
margin: 0 auto;
|
6
|
+
max-width: 960px;
|
7
|
+
}
|
8
|
+
|
9
|
+
code
|
10
|
+
{
|
11
|
+
background: #f2f2f2;
|
12
|
+
padding-left: 3px;
|
13
|
+
padding-right: 3px;
|
14
|
+
}
|
15
|
+
|
16
|
+
pre.code
|
17
|
+
{
|
18
|
+
font-size: 13px;
|
19
|
+
line-height: 1.4;
|
20
|
+
}
|
@@ -0,0 +1,168 @@
|
|
1
|
+
# @title Caching Data
|
2
|
+
# Caching Data
|
3
|
+
|
4
|
+
Caching data such as API responses, compiled templates or database results can
|
5
|
+
give your application a big performance boost. Ramaze tries to make this as easy
|
6
|
+
as possible by providing an API that allows you to use different cache
|
7
|
+
mechanisms such as Memcache or Sequel using the same syntax.
|
8
|
+
|
9
|
+
## Available Drivers
|
10
|
+
|
11
|
+
* {Ramaze::Cache::Sequel}
|
12
|
+
* {Ramaze::Cache::LRU}
|
13
|
+
* {Ramaze::Cache::MemCache}
|
14
|
+
* {Ramaze::Cache::Redis}
|
15
|
+
* {Ramaze::Cache::LocalMemCache}
|
16
|
+
* {Innate::Cache::FileBased}
|
17
|
+
* {Innate::Cache::DRb}
|
18
|
+
* {Innate::Cache::Marshal}
|
19
|
+
* {Innate::Cache::Memory}
|
20
|
+
* {Innate::Cache::YAML}
|
21
|
+
|
22
|
+
## Manually Caching Data
|
23
|
+
|
24
|
+
Besides making it easy to automatically cache various forms of data Ramaze also
|
25
|
+
allows you to manually cache something using your favorite storage engine. In
|
26
|
+
order to do this you'll first have to configure Ramaze so that it knows that you
|
27
|
+
want to cache something, this can be done as following:
|
28
|
+
|
29
|
+
Ramaze::Cache.options.names.push(:custom)
|
30
|
+
Ramaze::Cache.options.custom = Ramaze::Cache::MemCache
|
31
|
+
|
32
|
+
# Now we can cache the data
|
33
|
+
Ramaze::Cache.custom.store('usernames', ['Pistos', 'Michael Fellinger'])
|
34
|
+
|
35
|
+
From this point on you can cache your data by calling methods on
|
36
|
+
``Ramaze::Cache.custom``.
|
37
|
+
|
38
|
+
## Creating Drivers
|
39
|
+
|
40
|
+
Odds are there's a cache driver out there that's not supported out of the box.
|
41
|
+
Don't worry, adding your own cache driver is pretty easy and I'll try to explain
|
42
|
+
it as best as I can.
|
43
|
+
|
44
|
+
The first step is creating a basic skeleton for our cache class. In it's most
|
45
|
+
basic form it looks like the following:
|
46
|
+
|
47
|
+
# It's not required to declare the cache under the Ramaze namespace, feel free
|
48
|
+
# to use a different name.
|
49
|
+
module Ramaze
|
50
|
+
# Note that Ramaze::Cache is a class, not a module.
|
51
|
+
class Cache
|
52
|
+
# This is our own custom cache class
|
53
|
+
class CustomCache
|
54
|
+
# Pre defines the required methods. This ensures all cache drivers can
|
55
|
+
# be used in the same way
|
56
|
+
include Cache::API
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
The next step is to override the methods that were created by including
|
63
|
+
Ramaze::Cache::API. The first step is adding the method that prepares the cache
|
64
|
+
by loading the driver provided by an external Rubygem (e.g. Dalli::Client for
|
65
|
+
the Memcache driver) and creating the namespace for the cache. Assuming our gem
|
66
|
+
is called "custom-cache" and the class it provides CustomCacheGem our
|
67
|
+
cache_setup (that's the name of the setup method) method would look like the
|
68
|
+
following:
|
69
|
+
|
70
|
+
def cache_setup(hostname, username, appname, cachename)
|
71
|
+
@namespace = [hostname, username, appname, cachename].compact.join('-')
|
72
|
+
@client = CustomCacheGem.new(:namespace => @namespace)
|
73
|
+
end
|
74
|
+
|
75
|
+
The next step is to add the remaining methods so that we can actually use the
|
76
|
+
cache.
|
77
|
+
|
78
|
+
# Removes *all* keys from the cache
|
79
|
+
def cache_clear
|
80
|
+
@client.delete_all
|
81
|
+
end
|
82
|
+
|
83
|
+
# Removes the specified keys from the cache
|
84
|
+
def cache_delete(*keys)
|
85
|
+
keys.each do |k|
|
86
|
+
@client.delete(k)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Retrieves the specified key or returns the default value
|
91
|
+
def cache_fetch(key, default = nil)
|
92
|
+
value = @client.get(key)
|
93
|
+
|
94
|
+
if !value.nil?
|
95
|
+
return value
|
96
|
+
else
|
97
|
+
return default
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Stores the data in the cache and return the value
|
102
|
+
def cache_store(key, value)
|
103
|
+
@client.set(key, value)
|
104
|
+
return value
|
105
|
+
end
|
106
|
+
|
107
|
+
Depending on the API of your cache mechanism the method names and the way
|
108
|
+
they're used may vary.
|
109
|
+
|
110
|
+
The entire cache class now looks like the following:
|
111
|
+
|
112
|
+
# It's not required to declare the cache under the Ramaze namespace, feel free
|
113
|
+
# to use a different name.
|
114
|
+
module Ramaze
|
115
|
+
# Note that Ramaze::Cache is a class, not a module.
|
116
|
+
class Cache
|
117
|
+
# This is our own custom cache class
|
118
|
+
class CustomCache
|
119
|
+
# Pre defines the required methods. This ensures all cache drivers can
|
120
|
+
# be used in the same way
|
121
|
+
include Cache::API
|
122
|
+
|
123
|
+
# Prepares the cache
|
124
|
+
def cache_setup(hostname, username, appname, cachename)
|
125
|
+
@namespace = [hostname, username, appname, cachename].compact.join('-')
|
126
|
+
@client = CustomCacheGem.new(:namespace => @namespace)
|
127
|
+
end
|
128
|
+
|
129
|
+
# Removes *all* keys from the cache
|
130
|
+
def cache_clear
|
131
|
+
@client.delete_all
|
132
|
+
end
|
133
|
+
|
134
|
+
# Removes the specified keys from the cache
|
135
|
+
def cache_delete(*keys)
|
136
|
+
keys.each do |k|
|
137
|
+
@client.delete(k)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
# Retrieves the specified key or returns the default value
|
142
|
+
def cache_fetch(key, default = nil)
|
143
|
+
value = @client.get(key)
|
144
|
+
|
145
|
+
if !value.nil?
|
146
|
+
return value
|
147
|
+
else
|
148
|
+
return default
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
# Stores the data in the cache and return the value
|
153
|
+
def cache_store(key, value)
|
154
|
+
@client.set(key, value)
|
155
|
+
return value
|
156
|
+
end
|
157
|
+
end # CustomCache
|
158
|
+
end # Cache
|
159
|
+
end # Ramaze
|
160
|
+
|
161
|
+
There really isn't that much to it when it comes to creating a cache driver. The
|
162
|
+
important thing to remember is that the following methods are always required:
|
163
|
+
|
164
|
+
* cache_setup
|
165
|
+
* cache_clear
|
166
|
+
* cache_delete
|
167
|
+
* cache_fetch
|
168
|
+
* cache_store
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# @title Configuration
|
2
|
+
# Configuration
|
3
|
+
|
4
|
+
Ramaze provides two ways of setting configuration options, using
|
5
|
+
``Ramaze::Optioned`` and ``Ramaze::Traited``.
|
6
|
+
|
7
|
+
Both Ramaze::Optioned and Ramaze::Traited are aliases for Innate::Optioned and
|
8
|
+
Innate::Traited respectively.
|
9
|
+
|
10
|
+
## Traits using Ramaze::Traited
|
11
|
+
|
12
|
+
Traits provide a way of setting configuration options in a class similar to
|
13
|
+
class variables. The advantage of using traits is that they are inherited in
|
14
|
+
classes which allows you to use different values for a trait in a parent and
|
15
|
+
child class. On top of that you can access traits outside of a class' scope
|
16
|
+
(class variables are private). Ramaze uses traits for various configuration
|
17
|
+
settings that are specific to a certain class' instance or module.
|
18
|
+
``Ramaze::Optioned`` can't be used for this since the options set would be the
|
19
|
+
same for all instances whereas traits can have their own values.
|
20
|
+
|
21
|
+
Using traits is quite simple and can be done by including the module
|
22
|
+
Ramaze::Traited into your class:
|
23
|
+
|
24
|
+
class Something
|
25
|
+
include Ramaze::Traited
|
26
|
+
end
|
27
|
+
|
28
|
+
This module can be included into controllers, models or any other class. Once
|
29
|
+
this module has been included into a class you can define a trait using the
|
30
|
+
method ``trait()``. This method takes a hash where the key is the name of the
|
31
|
+
trait and the value the value for that trait:
|
32
|
+
|
33
|
+
class Something
|
34
|
+
include Ramaze::Traited
|
35
|
+
|
36
|
+
trait :language => 'ruby'
|
37
|
+
end
|
38
|
+
|
39
|
+
Inside a class instance traits can also be retrieved using this method by simply
|
40
|
+
specifying the name of the trait:
|
41
|
+
|
42
|
+
class Something
|
43
|
+
include Ramaze::Traited
|
44
|
+
|
45
|
+
trait :language => 'ruby'
|
46
|
+
|
47
|
+
def language
|
48
|
+
puts "Language: #{trait[:language]}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
Outside of a class' instance you can still retrieve a trait but you need to call
|
53
|
+
``class_trait()`` instead:
|
54
|
+
|
55
|
+
Something.class_trait[:language] # => "ruby"
|
56
|
+
|
57
|
+
Another cool feature of ``Ramaze::Traited`` is that you can get a list of all
|
58
|
+
traits of a class and all it's parent classes using ``ancestral_trait()``. This
|
59
|
+
method retrieves all traits where each trait that's redefined will overwrite the
|
60
|
+
existing one. Example:
|
61
|
+
|
62
|
+
class Foo
|
63
|
+
include Ramaze::Traited
|
64
|
+
trait :one => :eins, :first => :erstes
|
65
|
+
end
|
66
|
+
|
67
|
+
class Bar < Foo
|
68
|
+
trait :two => :zwei
|
69
|
+
end
|
70
|
+
|
71
|
+
class Foobar < Bar
|
72
|
+
trait :three => :drei, :first => :overwritten
|
73
|
+
end
|
74
|
+
|
75
|
+
Foobar.ancestral_trait
|
76
|
+
# => {:three => :drei, :two => :zwei, :one => :eins, :first => :overwritten}
|
77
|
+
|
78
|
+
## Options using Ramaze::Optioned
|
79
|
+
|
80
|
+
Ramaze::Optioned can be used to set global options regardless of the instance of
|
81
|
+
a class. Options set using this module are also inherited but you can't set
|
82
|
+
different values for different instances. A good use case for Ramaze::Optioned
|
83
|
+
is the helper ``Ramaze::Helper::Email``. This helper specifies certain options
|
84
|
+
such as the SMTP host and username. These options don't change in a request or
|
85
|
+
in an instance of a controller so using traits would be useless. It's also quite
|
86
|
+
rare that you want to use different settings in a sub controller.
|
87
|
+
|
88
|
+
Settings options using Ramaze::Optioned works a bit different compared to traits
|
89
|
+
but don't worry, it's very easy. First you must include the module and then call
|
90
|
+
``options.dsl()`` as shown below.
|
91
|
+
|
92
|
+
class Something
|
93
|
+
include Ramaze::Optioned
|
94
|
+
|
95
|
+
options.dsl do
|
96
|
+
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
Inside the block passed to ``options.dsl()`` you can call the ``option`` method
|
101
|
+
(aliased as ``o`` so you have to write less code). This method has the following
|
102
|
+
syntax:
|
103
|
+
|
104
|
+
option(description, name, default value)
|
105
|
+
|
106
|
+
Say we want to define a option that allows the user to change a username, this
|
107
|
+
can be done as following:
|
108
|
+
|
109
|
+
class Something
|
110
|
+
include Ramaze::Optioned
|
111
|
+
|
112
|
+
options.dsl do
|
113
|
+
o 'Defines the username', :username, 'ramaze'
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
Once an option is set it can be retrieved by calling ``options`` on the class
|
118
|
+
(regardless of whether or not the call was made inside an instance):
|
119
|
+
|
120
|
+
# Outside of the class
|
121
|
+
Something.options.username # => "ramaze"
|
122
|
+
|
123
|
+
# Inside the class
|
124
|
+
options.username # => "ramaze"
|
125
|
+
|
126
|
+
Dumping the entire options object to the command line using ``puts`` (or
|
127
|
+
something similar) will also show the description of each option, the default
|
128
|
+
value, etc:
|
129
|
+
|
130
|
+
Something.options # => {:username=>{:doc=>"Defines the username", :value=>"ramaze"}}
|
131
|
+
|
132
|
+
## Configuring Paths
|
133
|
+
|
134
|
+
While Ramaze is a very flexible framework it requires some basic information
|
135
|
+
about the location of your views, layouts and so on. Ramaze does not
|
136
|
+
automatically try to locate these but instead uses a set of defined locations
|
137
|
+
to look for. These paths are set using ``Ramaze::Optioned`` and can be found in
|
138
|
+
the following options:
|
139
|
+
|
140
|
+
* Ramaze.options.views
|
141
|
+
* Ramaze.options.publics
|
142
|
+
* Ramaze.options.layouts
|
143
|
+
* Ramaze.options.roots
|
144
|
+
|
145
|
+
Helpers aren't defined in these paths as they're considered a separate part of
|
146
|
+
Ramaze. Instead of using ``Ramaze.options`` you'll have to update
|
147
|
+
``Ramaze::HelpersHelper.options.paths``.
|
148
|
+
|
149
|
+
Note that ``Ramaze.options.roots`` and ``Ramaze::HelpersHelper.options.paths``
|
150
|
+
are the only two options that use absolute paths, all other paths are relative
|
151
|
+
to the root directories.
|
152
|
+
|
153
|
+
Let's say you want to have an extra view directory called "templates", this
|
154
|
+
directory can be added as following:
|
155
|
+
|
156
|
+
Ramaze.options.views.push('templates')
|
157
|
+
|
158
|
+
If the "templates" directory is located a level above the application root you'd
|
159
|
+
do the following instead:
|
160
|
+
|
161
|
+
Ramaze.options.views.push('../templates')
|
162
|
+
|
163
|
+
As mentioned before the root directories are absolute, this means that if you
|
164
|
+
want to add a root directory you have to specify the full path to it:
|
165
|
+
|
166
|
+
Ramaze.options.roots.push('/path/to/another/root/directory')
|
167
|
+
|
168
|
+
Technically you can specify relative paths but this might lead to unexpected
|
169
|
+
behavior so it's not recommended.
|
@@ -0,0 +1,182 @@
|
|
1
|
+
# @title Contributing to Ramaze
|
2
|
+
# Contributing To Ramaze
|
3
|
+
|
4
|
+
Everybody is welcome to contribute to Ramaze and/or the guide. This guide is
|
5
|
+
meant to be a starting point for those interested in contributing code, writing
|
6
|
+
documentation or advertising Ramaze.
|
7
|
+
|
8
|
+
A small guide containing details about the general workflow of Github projects
|
9
|
+
can be found [here][workflow]. If you're new to Github/Git it's recommended to
|
10
|
+
read this guide (as well as the various Github help pages).
|
11
|
+
|
12
|
+
## Coding Standards
|
13
|
+
|
14
|
+
* 2 spaces per indentation level for Ruby code.
|
15
|
+
* Document your code as much as you can.
|
16
|
+
* Write Bacon specifications for each change you make, especially when adding
|
17
|
+
new features.
|
18
|
+
* Use Markdown for markup, both when documenting source code as well as when
|
19
|
+
writing pages for the guide.
|
20
|
+
* Code should be hard wrapped at 80 characters.
|
21
|
+
* Variables and methods are ``lower_cased`` while constants such as those used
|
22
|
+
to store version numbers use ``SCREAMING_SNAKE_CASE``. An example of this is
|
23
|
+
``Ramaze::VERSION``. Class names and the like are ``PascalCased``.
|
24
|
+
|
25
|
+
## Git Usage and Standards
|
26
|
+
|
27
|
+
Ramaze uses [Git][git] as it's version control system. In order to contribute to
|
28
|
+
Ramaze using Git there are a few things to keep in mind and a few standards to
|
29
|
+
follow.
|
30
|
+
|
31
|
+
### Commit Messages
|
32
|
+
|
33
|
+
Commit messages should be splitted up in two parts, a short description of the
|
34
|
+
commit in 50 characters or less. This short description should be followed by an
|
35
|
+
empty line which in turn is followed by a long description. The short
|
36
|
+
description can be seen as an Email subject while the long description would be
|
37
|
+
the actual Email body. An example of such a commit message is the following:
|
38
|
+
|
39
|
+
Moved some chapters around.
|
40
|
+
|
41
|
+
The chapters on helpers and logging data have been moved to their own file
|
42
|
+
instead of being displayed in the README. Next up is writing the actual
|
43
|
+
documentation on logging data.
|
44
|
+
|
45
|
+
Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
|
46
|
+
|
47
|
+
Each commit should only contain a related set of changes. If you're adding a
|
48
|
+
feature but found a bug and fixed it it's easier to keep track of changes if the
|
49
|
+
bug and the feature are divided into two separate commits (if possible). This
|
50
|
+
makes it easier to revert certain changes when needed or pick specific commits
|
51
|
+
from a branch (using ``git cherry-pick``).
|
52
|
+
|
53
|
+
### Branching
|
54
|
+
|
55
|
+
When working on code your changes should be made in a separate branch. The name
|
56
|
+
of this branch should be related to the changes you're making and should be
|
57
|
+
short. For example, if you're working on a chapter for the guide you could name
|
58
|
+
it "documentation". Or maybe you're working on a helper, in that case you could
|
59
|
+
name it "example-helper". In the end it doesn't really matter, just keep the
|
60
|
+
length down a bit. Putting your changes in a separate branch makes it easier to
|
61
|
+
manage them and pull them into the main (master) branch.
|
62
|
+
|
63
|
+
### Pull Requests
|
64
|
+
|
65
|
+
Once you've finished working on your changes you should notify us about the
|
66
|
+
changes. The easiest way to do this is to send a pull request on Github.
|
67
|
+
Information about sending and handling pull requests can be found on the [Pull
|
68
|
+
request][pull requests] page on Github.
|
69
|
+
|
70
|
+
## Writing Documentation
|
71
|
+
|
72
|
+
The documentation (both the guides and the API documentation) uses
|
73
|
+
[Markdown][markdown] as its markup engine. All the text should be written in
|
74
|
+
English. Try writing as clear as possible and remove as much spelling/grammar
|
75
|
+
errors as you can find before submitting it to Ramaze.
|
76
|
+
|
77
|
+
When writing guides (or modifying existing ones) make sure that each line is no
|
78
|
+
longer than 80 characters and that there is no trailing whitespace in the file.
|
79
|
+
If you're using Vim you can configure it to automatically insert
|
80
|
+
characters/words on new lines using the following settings:
|
81
|
+
|
82
|
+
set nowrap
|
83
|
+
set tw=80
|
84
|
+
|
85
|
+
Other editors will have different settings so refer to the documentation of your
|
86
|
+
editor for more information.
|
87
|
+
|
88
|
+
Linking to classes and methods can be done by wrapping the namespace/method in
|
89
|
+
``{}``:
|
90
|
+
|
91
|
+
{Ramaze::VERSION}
|
92
|
+
|
93
|
+
If you want to link to an internal file you should use the following syntax
|
94
|
+
instead:
|
95
|
+
|
96
|
+
{file:path/to/file Title}
|
97
|
+
|
98
|
+
<div class="note todo">
|
99
|
+
<p>
|
100
|
+
Keep in mind that the above syntax for linking to files does not work
|
101
|
+
for files located outside of the guide/ directory.
|
102
|
+
</p>
|
103
|
+
</div>
|
104
|
+
|
105
|
+
Markdown files should be lower cased, spaces should be replaced with
|
106
|
+
underscores. Examples of this are ``ramaze_command.md`` and
|
107
|
+
``special_thanks.md``. Just like the Ruby code the text for the guide should be
|
108
|
+
wrapped at 80 characters.
|
109
|
+
|
110
|
+
### Testing Documentation
|
111
|
+
|
112
|
+
After you've made some changes you'll have to test it. Building the
|
113
|
+
documentation can be done in two different ways, either by building the Ramaze
|
114
|
+
only documentation or the documentation of both Ramaze and Innate.
|
115
|
+
|
116
|
+
Lets assume that you don't have a local copy of Ramaze' Git repository yet, you
|
117
|
+
can add such a copy by running the following Git command:
|
118
|
+
|
119
|
+
$ git clone git://github.com/Ramaze/ramaze.git
|
120
|
+
|
121
|
+
Once the cloning process has been completed you'll have to ``cd`` into the
|
122
|
+
"ramaze" directory. If you happen to have RVM installed doing this will most
|
123
|
+
likely trigger a warning about an untrusted .rvmrc file being detected. If you
|
124
|
+
decide to trust this file RVM will load it and automatically install all the
|
125
|
+
required gems (these can be found in the .gems file in the root directory of the
|
126
|
+
repository).
|
127
|
+
|
128
|
+
If you don't have RVM installed you'll have to install the dependencies of
|
129
|
+
Ramaze yourself, but fear not for it is very easy and only requires you to run
|
130
|
+
the following command:
|
131
|
+
|
132
|
+
$ rake setup
|
133
|
+
|
134
|
+
Similar to using RVM this command installs all required gems with a small
|
135
|
+
difference: it only installs what is supported by your platform. For example, on
|
136
|
+
OS X the "localmemcache" gem is not installed since it doesn't support this
|
137
|
+
operating system.
|
138
|
+
|
139
|
+
Once installed you can build the documentaton using the command ``rake yard``.
|
140
|
+
This command optionally takes a parameter that can be used to specify the path
|
141
|
+
to the **lib** directory of Innate. When specifying this path Innate's
|
142
|
+
documentation will be included as well (this is what we use for
|
143
|
+
<http://ramaze.net/>).
|
144
|
+
|
145
|
+
Of course for this to work you'll need to have a local copy of Innate as well.
|
146
|
+
Assuming you're still in the "ramaze" directory you can get a local copy of
|
147
|
+
Innate by running the following commands:
|
148
|
+
|
149
|
+
$ cd ..
|
150
|
+
$ git clone git://github.com/Ramaze/innate.git
|
151
|
+
$ cd ramaze
|
152
|
+
|
153
|
+
Now run the ``rake yard`` task as following:
|
154
|
+
|
155
|
+
$ rake yard[../innate/lib]
|
156
|
+
|
157
|
+
Once the documentation has been built (either by including or excluding Innate)
|
158
|
+
you can simply point your browser to the "doc" directory to view it.
|
159
|
+
|
160
|
+
## Spreading The Word
|
161
|
+
|
162
|
+
Maybe you're not familiar with Git or perhaps you just don't have the time to
|
163
|
+
contribute code. In both cases there are things you can do to help Ramaze grow.
|
164
|
+
The easiest way is to just tell people about it. Talk to co-workers, give
|
165
|
+
presentations or just suggest it whenever you think it could be useful for
|
166
|
+
people.
|
167
|
+
|
168
|
+
If you like to use the Ramaze logo for a presentation or something else you can
|
169
|
+
freely use the official Ramaze logo displayed below. The logo is licensed under
|
170
|
+
a [Creative Commons][cc license] license. The logo comes in two formats, a SVG
|
171
|
+
file and a PNG of which both are displayed below.
|
172
|
+
|
173
|
+
![Logo SVG][logo svg]
|
174
|
+
![Logo PNG][logo png]
|
175
|
+
|
176
|
+
[git]: http://git-scm.com/
|
177
|
+
[pull requests]: http://help.github.com/send-pull-requests/
|
178
|
+
[markdown]: http://daringfireball.net/projects/markdown/
|
179
|
+
[cc license]: http://creativecommons.org/licenses/by-sa/3.0/
|
180
|
+
[logo svg]: _static/logo.svg "The logo in SVG format"
|
181
|
+
[logo png]: _static/logo.png "The logo in PNG format"
|
182
|
+
[workflow]: https://github.com/thessaloniki/rb/wiki/Workflow
|