Pistos-ramaze 2008.09
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.
- data/README.markdown +481 -0
- data/Rakefile +228 -0
- data/benchmark/results.txt +131 -0
- data/benchmark/run.rb +362 -0
- data/benchmark/suite/minimal.rb +13 -0
- data/benchmark/suite/no_informer.rb +9 -0
- data/benchmark/suite/no_sessions.rb +10 -0
- data/benchmark/suite/no_template.rb +9 -0
- data/benchmark/suite/simple.rb +7 -0
- data/benchmark/suite/template_amrita2.rb +17 -0
- data/benchmark/suite/template_builder.rb +12 -0
- data/benchmark/suite/template_erubis.rb +10 -0
- data/benchmark/suite/template_ezamar.rb +10 -0
- data/benchmark/suite/template_haml.rb +15 -0
- data/benchmark/suite/template_liquid.rb +13 -0
- data/benchmark/suite/template_markaby.rb +11 -0
- data/benchmark/suite/template_nagoro.rb +10 -0
- data/benchmark/suite/template_redcloth.rb +15 -0
- data/benchmark/suite/template_tenjin.rb +10 -0
- data/benchmark/test.rb +35 -0
- data/bin/ramaze +80 -0
- data/doc/AUTHORS +29 -0
- data/doc/CHANGELOG +19530 -0
- data/doc/COPYING +56 -0
- data/doc/FAQ +92 -0
- data/doc/GPL +339 -0
- data/doc/INSTALL +92 -0
- data/doc/LEGAL +26 -0
- data/doc/TODO +29 -0
- data/doc/meta/announcement.txt +99 -0
- data/doc/meta/configuration.txt +163 -0
- data/doc/meta/internals.txt +278 -0
- data/doc/meta/users.kml +64 -0
- data/doc/readme_chunks/appendix.txt +10 -0
- data/doc/readme_chunks/examples.txt +38 -0
- data/doc/readme_chunks/features.txt +148 -0
- data/doc/readme_chunks/getting_help.txt +5 -0
- data/doc/readme_chunks/getting_started.txt +18 -0
- data/doc/readme_chunks/installing.txt +92 -0
- data/doc/readme_chunks/introduction.txt +18 -0
- data/doc/readme_chunks/principles.txt +56 -0
- data/doc/readme_chunks/thanks.txt +59 -0
- data/doc/tutorial/todolist.html +742 -0
- data/doc/tutorial/todolist.mkd +787 -0
- data/examples/app/auth/auth.rb +54 -0
- data/examples/app/auth/template/layout.haml +20 -0
- data/examples/app/auth/template/login.haml +16 -0
- data/examples/app/blog/README +3 -0
- data/examples/app/blog/controller/main.rb +29 -0
- data/examples/app/blog/model/entry.rb +30 -0
- data/examples/app/blog/public/styles/blog.css +132 -0
- data/examples/app/blog/spec/blog.rb +87 -0
- data/examples/app/blog/start.rb +7 -0
- data/examples/app/blog/view/edit.xhtml +17 -0
- data/examples/app/blog/view/index.xhtml +17 -0
- data/examples/app/blog/view/layout.xhtml +11 -0
- data/examples/app/blog/view/new.xhtml +16 -0
- data/examples/app/chat/model/history.rb +36 -0
- data/examples/app/chat/model/message.rb +7 -0
- data/examples/app/chat/public/css/chat.css +13 -0
- data/examples/app/chat/public/js/chat.js +22 -0
- data/examples/app/chat/public/js/jquery.js +3436 -0
- data/examples/app/chat/start.rb +40 -0
- data/examples/app/chat/view/chat.xhtml +9 -0
- data/examples/app/chat/view/index.xhtml +7 -0
- data/examples/app/chat/view/layout.xhtml +13 -0
- data/examples/app/localization/start.rb +35 -0
- data/examples/app/rapaste/Rakefile +34 -0
- data/examples/app/rapaste/controller/paste.rb +101 -0
- data/examples/app/rapaste/model/paste.rb +58 -0
- data/examples/app/rapaste/public/css/active4d.css +114 -0
- data/examples/app/rapaste/public/css/all_hallows_eve.css +72 -0
- data/examples/app/rapaste/public/css/amy.css +147 -0
- data/examples/app/rapaste/public/css/blackboard.css +88 -0
- data/examples/app/rapaste/public/css/brilliance_black.css +605 -0
- data/examples/app/rapaste/public/css/brilliance_dull.css +599 -0
- data/examples/app/rapaste/public/css/cobalt.css +149 -0
- data/examples/app/rapaste/public/css/dawn.css +121 -0
- data/examples/app/rapaste/public/css/display.css +197 -0
- data/examples/app/rapaste/public/css/eiffel.css +121 -0
- data/examples/app/rapaste/public/css/espresso_libre.css +109 -0
- data/examples/app/rapaste/public/css/idle.css +62 -0
- data/examples/app/rapaste/public/css/iplastic.css +80 -0
- data/examples/app/rapaste/public/css/lazy.css +73 -0
- data/examples/app/rapaste/public/css/mac_classic.css +123 -0
- data/examples/app/rapaste/public/css/magicwb_amiga.css +104 -0
- data/examples/app/rapaste/public/css/pastels_on_dark.css +188 -0
- data/examples/app/rapaste/public/css/slush_poppies.css +85 -0
- data/examples/app/rapaste/public/css/spacecadet.css +51 -0
- data/examples/app/rapaste/public/css/sunburst.css +180 -0
- data/examples/app/rapaste/public/css/twilight.css +137 -0
- data/examples/app/rapaste/public/css/zenburnesque.css +91 -0
- data/examples/app/rapaste/public/js/jquery.js +11 -0
- data/examples/app/rapaste/spec/rapaste.rb +51 -0
- data/examples/app/rapaste/start.rb +25 -0
- data/examples/app/rapaste/view/copy.xhtml +10 -0
- data/examples/app/rapaste/view/index.xhtml +9 -0
- data/examples/app/rapaste/view/layout.xhtml +25 -0
- data/examples/app/rapaste/view/list.xhtml +29 -0
- data/examples/app/rapaste/view/search.xhtml +41 -0
- data/examples/app/rapaste/view/view.xhtml +37 -0
- data/examples/app/sourceview/public/coderay.css +104 -0
- data/examples/app/sourceview/public/images/file.gif +0 -0
- data/examples/app/sourceview/public/images/folder.gif +0 -0
- data/examples/app/sourceview/public/images/tv-collapsable-last.gif +0 -0
- data/examples/app/sourceview/public/images/tv-collapsable.gif +0 -0
- data/examples/app/sourceview/public/images/tv-expandable-last.gif +0 -0
- data/examples/app/sourceview/public/images/tv-expandable.gif +0 -0
- data/examples/app/sourceview/public/images/tv-item-last.gif +0 -0
- data/examples/app/sourceview/public/images/tv-item.gif +0 -0
- data/examples/app/sourceview/public/jquery.js +11 -0
- data/examples/app/sourceview/public/jquery.treeview.css +48 -0
- data/examples/app/sourceview/public/jquery.treeview.js +223 -0
- data/examples/app/sourceview/public/sourceview.js +52 -0
- data/examples/app/sourceview/sourceview.rb +77 -0
- data/examples/app/sourceview/template/index.haml +59 -0
- data/examples/app/todolist/README +1 -0
- data/examples/app/todolist/public/favicon.ico +0 -0
- data/examples/app/todolist/public/js/jquery.js +1923 -0
- data/examples/app/todolist/public/ramaze.png +0 -0
- data/examples/app/todolist/spec/todolist.rb +132 -0
- data/examples/app/todolist/src/controller/main.rb +70 -0
- data/examples/app/todolist/src/element/page.rb +31 -0
- data/examples/app/todolist/src/model.rb +14 -0
- data/examples/app/todolist/start.rb +11 -0
- data/examples/app/todolist/template/index.xhtml +17 -0
- data/examples/app/todolist/template/new.xhtml +7 -0
- data/examples/app/upload/start.rb +19 -0
- data/examples/app/upload/view/index.xhtml +25 -0
- data/examples/app/whywiki/spec/whywiki.rb +58 -0
- data/examples/app/whywiki/start.rb +46 -0
- data/examples/app/whywiki/template/edit.xhtml +14 -0
- data/examples/app/whywiki/template/show.xhtml +18 -0
- data/examples/app/wikore/spec/wikore.rb +111 -0
- data/examples/app/wikore/src/controller.rb +80 -0
- data/examples/app/wikore/src/model.rb +53 -0
- data/examples/app/wikore/start.rb +9 -0
- data/examples/app/wikore/template/index.xhtml +8 -0
- data/examples/app/wiktacular/README +2 -0
- data/examples/app/wiktacular/mkd/link/2007-07-20_19-45-51.mkd +1 -0
- data/examples/app/wiktacular/mkd/link/current.mkd +1 -0
- data/examples/app/wiktacular/mkd/main/2007-07-20_16-31-33.mkd +1 -0
- data/examples/app/wiktacular/mkd/main/2007-07-20_19-21-12.mkd +1 -0
- 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/app/wiktacular/mkd/markdown/current.mkd +3 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd +2 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-20_19-43-50.mkd +3 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-21_18-46-01.mkd +11 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-21_18-46-32.mkd +13 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-21_18-47-08.mkd +17 -0
- data/examples/app/wiktacular/mkd/testing/2007-07-21_18-47-54.mkd +17 -0
- data/examples/app/wiktacular/mkd/testing/current.mkd +17 -0
- data/examples/app/wiktacular/public/favicon.ico +0 -0
- data/examples/app/wiktacular/public/screen.css +72 -0
- data/examples/app/wiktacular/spec/wiktacular.rb +157 -0
- data/examples/app/wiktacular/src/controller.rb +55 -0
- data/examples/app/wiktacular/src/model.rb +102 -0
- data/examples/app/wiktacular/start.rb +8 -0
- data/examples/app/wiktacular/template/edit.xhtml +6 -0
- data/examples/app/wiktacular/template/html_layout.xhtml +27 -0
- data/examples/app/wiktacular/template/index.xhtml +9 -0
- data/examples/app/wiktacular/template/new.xhtml +6 -0
- data/examples/basic/element.rb +45 -0
- data/examples/basic/gestalt.rb +27 -0
- data/examples/basic/hello.rb +15 -0
- data/examples/basic/layout.rb +28 -0
- data/examples/basic/linking.rb +29 -0
- data/examples/basic/simple.rb +56 -0
- data/examples/helpers/cache.rb +31 -0
- data/examples/helpers/form_with_sequel.rb +24 -0
- data/examples/helpers/httpdigest.rb +50 -0
- data/examples/helpers/identity.rb +18 -0
- data/examples/helpers/nitro_form.rb +23 -0
- data/examples/helpers/paginate.rb +71 -0
- data/examples/helpers/provide.rb +23 -0
- data/examples/helpers/rest.rb +28 -0
- data/examples/helpers/simple_captcha.rb +29 -0
- data/examples/misc/css.rb +37 -0
- data/examples/misc/facebook.rb +159 -0
- data/examples/misc/memleak_detector.rb +32 -0
- data/examples/misc/nagoro_element.rb +43 -0
- data/examples/misc/ramaise.rb +132 -0
- data/examples/misc/rapp.rb +45 -0
- data/examples/misc/sequel_scaffolding.rb +34 -0
- data/examples/misc/simple_auth.rb +35 -0
- data/examples/templates/template/external.amrita +19 -0
- data/examples/templates/template/external.haml +22 -0
- data/examples/templates/template/external.liquid +28 -0
- data/examples/templates/template/external.mab +30 -0
- data/examples/templates/template/external.nag +28 -0
- data/examples/templates/template/external.redcloth +19 -0
- data/examples/templates/template/external.rem +30 -0
- data/examples/templates/template/external.rhtml +28 -0
- data/examples/templates/template/external.tenjin +28 -0
- data/examples/templates/template/external.xsl +57 -0
- data/examples/templates/template/external.zmr +28 -0
- data/examples/templates/template_amrita2.rb +74 -0
- data/examples/templates/template_erubis.rb +53 -0
- data/examples/templates/template_ezamar.rb +50 -0
- data/examples/templates/template_haml.rb +50 -0
- data/examples/templates/template_liquid.rb +65 -0
- data/examples/templates/template_markaby.rb +58 -0
- data/examples/templates/template_nagoro.rb +51 -0
- data/examples/templates/template_redcloth.rb +59 -0
- data/examples/templates/template_remarkably.rb +55 -0
- data/examples/templates/template_tenjin.rb +53 -0
- data/examples/templates/template_xslt.rb +49 -0
- data/lib/proto/controller/init.rb +10 -0
- data/lib/proto/controller/main.rb +20 -0
- data/lib/proto/model/init.rb +4 -0
- data/lib/proto/public/css/ramaze_error.css +90 -0
- data/lib/proto/public/dispatch.fcgi +11 -0
- data/lib/proto/public/favicon.ico +0 -0
- data/lib/proto/public/js/jquery.js +3549 -0
- data/lib/proto/public/ramaze.png +0 -0
- data/lib/proto/spec/main.rb +25 -0
- data/lib/proto/start.rb +8 -0
- data/lib/proto/start.ru +16 -0
- data/lib/proto/view/error.xhtml +64 -0
- data/lib/proto/view/index.xhtml +34 -0
- data/lib/proto/view/page.xhtml +27 -0
- data/lib/ramaze/action/render.rb +191 -0
- data/lib/ramaze/action.rb +153 -0
- data/lib/ramaze/adapter/base.rb +128 -0
- data/lib/ramaze/adapter/cgi.rb +20 -0
- data/lib/ramaze/adapter/ebb.rb +18 -0
- data/lib/ramaze/adapter/evented_mongrel.rb +7 -0
- data/lib/ramaze/adapter/fake.rb +12 -0
- data/lib/ramaze/adapter/fcgi.rb +18 -0
- data/lib/ramaze/adapter/lsws.rb +19 -0
- data/lib/ramaze/adapter/mongrel.rb +21 -0
- data/lib/ramaze/adapter/scgi.rb +18 -0
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +7 -0
- data/lib/ramaze/adapter/thin.rb +17 -0
- data/lib/ramaze/adapter/webrick.rb +43 -0
- data/lib/ramaze/adapter.rb +97 -0
- data/lib/ramaze/cache/memcached.rb +69 -0
- data/lib/ramaze/cache/memory.rb +6 -0
- data/lib/ramaze/cache/yaml_store.rb +68 -0
- data/lib/ramaze/cache.rb +113 -0
- data/lib/ramaze/contrib/auto_params/get_args.rb +58 -0
- data/lib/ramaze/contrib/auto_params.rb +135 -0
- data/lib/ramaze/contrib/email.rb +84 -0
- data/lib/ramaze/contrib/facebook/facebook.rb +171 -0
- data/lib/ramaze/contrib/facebook.rb +23 -0
- data/lib/ramaze/contrib/file_cache.rb +65 -0
- data/lib/ramaze/contrib/gems.rb +78 -0
- data/lib/ramaze/contrib/gettext/mo.rb +155 -0
- data/lib/ramaze/contrib/gettext/parser.rb +46 -0
- data/lib/ramaze/contrib/gettext/po.rb +109 -0
- data/lib/ramaze/contrib/gettext.rb +113 -0
- data/lib/ramaze/contrib/gzip_filter.rb +69 -0
- data/lib/ramaze/contrib/maruku_uv.rb +59 -0
- data/lib/ramaze/contrib/profiling.rb +36 -0
- data/lib/ramaze/contrib/rest.rb +17 -0
- data/lib/ramaze/contrib/sequel/create_join.rb +25 -0
- data/lib/ramaze/contrib/sequel/fill.rb +12 -0
- data/lib/ramaze/contrib/sequel/form_field.rb +129 -0
- data/lib/ramaze/contrib/sequel/image.rb +198 -0
- data/lib/ramaze/contrib/sequel/relation.rb +82 -0
- data/lib/ramaze/contrib/sequel_cache.rb +92 -0
- data/lib/ramaze/contrib.rb +82 -0
- data/lib/ramaze/controller/error.rb +46 -0
- data/lib/ramaze/controller/main.rb +2 -0
- data/lib/ramaze/controller/resolve.rb +273 -0
- data/lib/ramaze/controller.rb +280 -0
- data/lib/ramaze/current/request.rb +205 -0
- data/lib/ramaze/current/response.rb +39 -0
- data/lib/ramaze/current/session/flash.rb +87 -0
- data/lib/ramaze/current/session/hash.rb +66 -0
- data/lib/ramaze/current/session.rb +181 -0
- data/lib/ramaze/current.rb +110 -0
- data/lib/ramaze/dispatcher/action.rb +48 -0
- data/lib/ramaze/dispatcher/directory.rb +119 -0
- data/lib/ramaze/dispatcher/error.rb +108 -0
- data/lib/ramaze/dispatcher/file.rb +95 -0
- data/lib/ramaze/dispatcher.rb +145 -0
- data/lib/ramaze/error.rb +24 -0
- data/lib/ramaze/gestalt.rb +124 -0
- data/lib/ramaze/helper/aspect.rb +106 -0
- data/lib/ramaze/helper/auth.rb +125 -0
- data/lib/ramaze/helper/cache.rb +140 -0
- data/lib/ramaze/helper/cgi.rb +39 -0
- data/lib/ramaze/helper/flash.rb +59 -0
- data/lib/ramaze/helper/form.rb +281 -0
- data/lib/ramaze/helper/formatting.rb +158 -0
- data/lib/ramaze/helper/gestalt.rb +15 -0
- data/lib/ramaze/helper/gravatar.rb +15 -0
- data/lib/ramaze/helper/httpdigest.rb +59 -0
- data/lib/ramaze/helper/identity.rb +119 -0
- data/lib/ramaze/helper/link.rb +122 -0
- data/lib/ramaze/helper/markaby.rb +31 -0
- data/lib/ramaze/helper/maruku.rb +7 -0
- data/lib/ramaze/helper/nitroform.rb +14 -0
- data/lib/ramaze/helper/pager.rb +366 -0
- data/lib/ramaze/helper/paginate.rb +234 -0
- data/lib/ramaze/helper/partial.rb +105 -0
- data/lib/ramaze/helper/redirect.rb +82 -0
- data/lib/ramaze/helper/rest.rb +43 -0
- data/lib/ramaze/helper/sendfile.rb +16 -0
- data/lib/ramaze/helper/sequel.rb +55 -0
- data/lib/ramaze/helper/simple_captcha.rb +31 -0
- data/lib/ramaze/helper/stack.rb +77 -0
- data/lib/ramaze/helper/tagz.rb +19 -0
- data/lib/ramaze/helper/thread.rb +17 -0
- data/lib/ramaze/helper/ultraviolet.rb +44 -0
- data/lib/ramaze/helper/user.rb +110 -0
- data/lib/ramaze/helper/xhtml.rb +23 -0
- data/lib/ramaze/helper.rb +79 -0
- data/lib/ramaze/log/analogger.rb +40 -0
- data/lib/ramaze/log/growl.rb +38 -0
- data/lib/ramaze/log/hub.rb +41 -0
- data/lib/ramaze/log/informer.rb +128 -0
- data/lib/ramaze/log/knotify.rb +28 -0
- data/lib/ramaze/log/logger.rb +26 -0
- data/lib/ramaze/log/logging.rb +89 -0
- data/lib/ramaze/log/syslog.rb +51 -0
- data/lib/ramaze/log/xosd.rb +92 -0
- data/lib/ramaze/log.rb +27 -0
- data/lib/ramaze/option/dsl.rb +45 -0
- data/lib/ramaze/option/holder.rb +131 -0
- data/lib/ramaze/option/merger.rb +108 -0
- data/lib/ramaze/option.rb +156 -0
- data/lib/ramaze/reloader.rb +186 -0
- data/lib/ramaze/route.rb +97 -0
- data/lib/ramaze/setup.rb +50 -0
- data/lib/ramaze/snippets/array/put_within.rb +44 -0
- data/lib/ramaze/snippets/binding/locals.rb +25 -0
- data/lib/ramaze/snippets/blankslate.rb +7 -0
- data/lib/ramaze/snippets/dictionary.rb +504 -0
- data/lib/ramaze/snippets/divide.rb +20 -0
- data/lib/ramaze/snippets/fiber.rb +63 -0
- data/lib/ramaze/snippets/kernel/constant.rb +41 -0
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +21 -0
- data/lib/ramaze/snippets/metaid.rb +17 -0
- data/lib/ramaze/snippets/numeric/filesize_format.rb +32 -0
- data/lib/ramaze/snippets/numeric/time.rb +63 -0
- data/lib/ramaze/snippets/object/__dir__.rb +29 -0
- data/lib/ramaze/snippets/object/acquire.rb +40 -0
- data/lib/ramaze/snippets/object/instance_variable_defined.rb +19 -0
- data/lib/ramaze/snippets/object/pretty.rb +16 -0
- data/lib/ramaze/snippets/object/scope.rb +18 -0
- data/lib/ramaze/snippets/object/traits.rb +76 -0
- data/lib/ramaze/snippets/ordered_set.rb +51 -0
- data/lib/ramaze/snippets/proc/locals.rb +19 -0
- data/lib/ramaze/snippets/ramaze/caller_info.rb +30 -0
- data/lib/ramaze/snippets/ramaze/caller_lines.rb +51 -0
- data/lib/ramaze/snippets/ramaze/deprecated.rb +20 -0
- data/lib/ramaze/snippets/ramaze/fiber.rb +24 -0
- data/lib/ramaze/snippets/ramaze/state.rb +86 -0
- data/lib/ramaze/snippets/ramaze/struct.rb +45 -0
- data/lib/ramaze/snippets/string/camel_case.rb +21 -0
- data/lib/ramaze/snippets/string/color.rb +31 -0
- data/lib/ramaze/snippets/string/each.rb +19 -0
- data/lib/ramaze/snippets/string/end_with.rb +20 -0
- data/lib/ramaze/snippets/string/esc.rb +34 -0
- data/lib/ramaze/snippets/string/ord.rb +21 -0
- data/lib/ramaze/snippets/string/snake_case.rb +21 -0
- data/lib/ramaze/snippets/string/start_with.rb +19 -0
- data/lib/ramaze/snippets/string/unindent.rb +28 -0
- data/lib/ramaze/snippets/thread/into.rb +18 -0
- data/lib/ramaze/snippets.rb +22 -0
- data/lib/ramaze/spec/helper/bacon.rb +7 -0
- data/lib/ramaze/spec/helper/browser.rb +88 -0
- data/lib/ramaze/spec/helper/mock_http.rb +63 -0
- data/lib/ramaze/spec/helper/pretty_output.rb +82 -0
- data/lib/ramaze/spec/helper/requester.rb +63 -0
- data/lib/ramaze/spec/helper/simple_http.rb +434 -0
- data/lib/ramaze/spec/helper/snippets.rb +14 -0
- data/lib/ramaze/spec/helper.rb +135 -0
- data/lib/ramaze/spec.rb +1 -0
- data/lib/ramaze/store/default.rb +109 -0
- data/lib/ramaze/template/amrita2.rb +45 -0
- data/lib/ramaze/template/builder.rb +28 -0
- data/lib/ramaze/template/erubis.rb +41 -0
- data/lib/ramaze/template/ezamar/element.rb +169 -0
- data/lib/ramaze/template/ezamar/engine.rb +76 -0
- data/lib/ramaze/template/ezamar/morpher.rb +135 -0
- data/lib/ramaze/template/ezamar/render_partial.rb +31 -0
- data/lib/ramaze/template/ezamar/textpow.syntax +34 -0
- data/lib/ramaze/template/ezamar.rb +42 -0
- data/lib/ramaze/template/haml.rb +37 -0
- data/lib/ramaze/template/liquid.rb +36 -0
- data/lib/ramaze/template/markaby.rb +52 -0
- data/lib/ramaze/template/maruku.rb +34 -0
- data/lib/ramaze/template/nagoro.rb +52 -0
- data/lib/ramaze/template/none.rb +14 -0
- data/lib/ramaze/template/redcloth.rb +25 -0
- data/lib/ramaze/template/remarkably.rb +38 -0
- data/lib/ramaze/template/sass.rb +37 -0
- data/lib/ramaze/template/tagz.rb +79 -0
- data/lib/ramaze/template/tenjin.rb +74 -0
- data/lib/ramaze/template/xslt.rb +100 -0
- data/lib/ramaze/template.rb +87 -0
- data/lib/ramaze/tool/create.rb +48 -0
- data/lib/ramaze/tool/daemonize.rb +37 -0
- data/lib/ramaze/tool/localize.rb +202 -0
- data/lib/ramaze/tool/mime.rb +35 -0
- data/lib/ramaze/tool/mime_types.yaml +615 -0
- data/lib/ramaze/tool/project_creator.rb +110 -0
- data/lib/ramaze/tool/record.rb +6 -0
- data/lib/ramaze/tool.rb +9 -0
- data/lib/ramaze/trinity.rb +16 -0
- data/lib/ramaze/version.rb +6 -0
- data/lib/ramaze.rb +133 -0
- data/lib/vendor/bacon.rb +323 -0
- data/rake_tasks/conf.rake +71 -0
- data/rake_tasks/coverage.rake +46 -0
- data/rake_tasks/gem.rake +74 -0
- data/rake_tasks/git.rake +41 -0
- data/rake_tasks/maintenance.rake +386 -0
- data/rake_tasks/metric.rake +24 -0
- data/rake_tasks/release.rake +76 -0
- data/rake_tasks/spec.rake +61 -0
- data/ramaze.gemspec +773 -0
- data/spec/contrib/auto_params.rb +121 -0
- data/spec/contrib/profiling.rb +29 -0
- data/spec/contrib/sequel/fill.rb +47 -0
- data/spec/examples/caching.rb +19 -0
- data/spec/examples/css.rb +15 -0
- data/spec/examples/element.rb +15 -0
- data/spec/examples/hello.rb +11 -0
- data/spec/examples/linking.rb +18 -0
- data/spec/examples/simple.rb +45 -0
- data/spec/examples/simple_auth.rb +32 -0
- data/spec/examples/templates/template_amrita2.rb +16 -0
- data/spec/examples/templates/template_erubis.rb +23 -0
- data/spec/examples/templates/template_ezamar.rb +23 -0
- data/spec/examples/templates/template_haml.rb +23 -0
- data/spec/examples/templates/template_liquid.rb +29 -0
- data/spec/examples/templates/template_markaby.rb +23 -0
- data/spec/examples/templates/template_redcloth.rb +28 -0
- data/spec/examples/templates/template_remarkably.rb +23 -0
- data/spec/examples/templates/template_tenjin.rb +28 -0
- data/spec/helper.rb +3 -0
- data/spec/ramaze/action/basics.rb +36 -0
- data/spec/ramaze/action/cache.rb +87 -0
- data/spec/ramaze/action/file_cache.rb +70 -0
- data/spec/ramaze/action/layout.rb +190 -0
- data/spec/ramaze/action/render.rb +31 -0
- data/spec/ramaze/action/view/bar.xhtml +1 -0
- data/spec/ramaze/action/view/instancevars/layout.xhtml +1 -0
- data/spec/ramaze/action/view/other_wrapper.xhtml +1 -0
- data/spec/ramaze/action/view/single_wrapper.xhtml +1 -0
- data/spec/ramaze/action/view/sub/sub_wrapper.xhtml +1 -0
- data/spec/ramaze/adapter/ebb.rb +12 -0
- data/spec/ramaze/adapter/mongrel.rb +12 -0
- data/spec/ramaze/adapter/record.rb +31 -0
- data/spec/ramaze/adapter/webrick.rb +12 -0
- data/spec/ramaze/adapter.rb +49 -0
- data/spec/ramaze/cache.rb +140 -0
- data/spec/ramaze/controller/actionless_templates.rb +32 -0
- data/spec/ramaze/controller/resolve.rb +32 -0
- data/spec/ramaze/controller/subclass.rb +36 -0
- data/spec/ramaze/controller/template_resolving.rb +113 -0
- data/spec/ramaze/controller/view/bar.xhtml +1 -0
- data/spec/ramaze/controller/view/base/another.xhtml +1 -0
- data/spec/ramaze/controller/view/greet.xhtml +1 -0
- data/spec/ramaze/controller/view/list.xhtml +1 -0
- data/spec/ramaze/controller/view/other/greet/other.xhtml +1 -0
- data/spec/ramaze/controller/view/other_wrapper.xhtml +1 -0
- data/spec/ramaze/controller.rb +180 -0
- data/spec/ramaze/current/request.rb +30 -0
- data/spec/ramaze/current/session.rb +97 -0
- data/spec/ramaze/dispatcher/directory.rb +55 -0
- data/spec/ramaze/dispatcher/file.rb +60 -0
- data/spec/ramaze/dispatcher/public/favicon.ico +0 -0
- data/spec/ramaze/dispatcher/public/file name.txt +1 -0
- data/spec/ramaze/dispatcher/public/test_download.css +141 -0
- data/spec/ramaze/dispatcher.rb +31 -0
- data/spec/ramaze/element.rb +107 -0
- data/spec/ramaze/error.rb +94 -0
- data/spec/ramaze/gestalt.rb +131 -0
- data/spec/ramaze/helper/aspect.rb +101 -0
- data/spec/ramaze/helper/auth.rb +66 -0
- data/spec/ramaze/helper/cache.rb +160 -0
- data/spec/ramaze/helper/cgi.rb +43 -0
- data/spec/ramaze/helper/file.rb +18 -0
- data/spec/ramaze/helper/flash.rb +133 -0
- data/spec/ramaze/helper/form.rb +118 -0
- data/spec/ramaze/helper/formatting.rb +54 -0
- data/spec/ramaze/helper/link.rb +124 -0
- data/spec/ramaze/helper/pager.rb +99 -0
- data/spec/ramaze/helper/partial.rb +88 -0
- data/spec/ramaze/helper/redirect.rb +112 -0
- data/spec/ramaze/helper/simple_captcha.rb +22 -0
- data/spec/ramaze/helper/stack.rb +73 -0
- data/spec/ramaze/helper/user.rb +43 -0
- data/spec/ramaze/helper/view/locals.xhtml +1 -0
- data/spec/ramaze/helper/view/loop.xhtml +4 -0
- data/spec/ramaze/helper/view/num.xhtml +1 -0
- data/spec/ramaze/helper/view/partial.xhtml +1 -0
- data/spec/ramaze/helper/view/recursive.xhtml +8 -0
- data/spec/ramaze/helper/view/recursive_local_ivars.xhtml +7 -0
- data/spec/ramaze/helper/view/recursive_locals.xhtml +7 -0
- data/spec/ramaze/helper/view/test_template.xhtml +1 -0
- data/spec/ramaze/localize.rb +89 -0
- data/spec/ramaze/log/informer.rb +72 -0
- data/spec/ramaze/log/syslog.rb +73 -0
- data/spec/ramaze/morpher.rb +111 -0
- data/spec/ramaze/params.rb +157 -0
- data/spec/ramaze/public/error404.xhtml +1 -0
- data/spec/ramaze/public/favicon.ico +0 -0
- data/spec/ramaze/public/ramaze.png +0 -0
- data/spec/ramaze/public/test_download.css +141 -0
- data/spec/ramaze/request/ebb.rb +9 -0
- data/spec/ramaze/request/mongrel.rb +9 -0
- data/spec/ramaze/request/thin.rb +9 -0
- data/spec/ramaze/request/webrick.rb +5 -0
- data/spec/ramaze/request.rb +185 -0
- data/spec/ramaze/rewrite/file.css +1 -0
- data/spec/ramaze/rewrite.rb +36 -0
- data/spec/ramaze/route.rb +131 -0
- data/spec/ramaze/session.rb +94 -0
- data/spec/ramaze/store/default.rb +71 -0
- data/spec/ramaze/struct.rb +47 -0
- data/spec/ramaze/template/amrita2/external.amrita +6 -0
- data/spec/ramaze/template/amrita2/sum.amrita +1 -0
- data/spec/ramaze/template/amrita2.rb +50 -0
- data/spec/ramaze/template/builder/external.rxml +3 -0
- data/spec/ramaze/template/builder.rb +51 -0
- data/spec/ramaze/template/erubis/sum.rhtml +1 -0
- data/spec/ramaze/template/erubis.rb +41 -0
- data/spec/ramaze/template/ezamar/another/long/action.zmr +1 -0
- data/spec/ramaze/template/ezamar/combined.zmr +1 -0
- data/spec/ramaze/template/ezamar/file_only.zmr +1 -0
- data/spec/ramaze/template/ezamar/index.zmr +1 -0
- data/spec/ramaze/template/ezamar/nested.zmr +1 -0
- data/spec/ramaze/template/ezamar/other__index.xhtml +1 -0
- data/spec/ramaze/template/ezamar/some__long__action.zmr +1 -0
- data/spec/ramaze/template/ezamar/sum.zmr +1 -0
- data/spec/ramaze/template/ezamar.rb +63 -0
- data/spec/ramaze/template/haml/index.haml +5 -0
- data/spec/ramaze/template/haml/locals.haml +2 -0
- data/spec/ramaze/template/haml/with_vars.haml +4 -0
- data/spec/ramaze/template/haml.rb +66 -0
- data/spec/ramaze/template/liquid/index.liquid +1 -0
- data/spec/ramaze/template/liquid/products.liquid +45 -0
- data/spec/ramaze/template/liquid.rb +99 -0
- data/spec/ramaze/template/markaby/external.mab +8 -0
- data/spec/ramaze/template/markaby/sum.mab +1 -0
- data/spec/ramaze/template/markaby.rb +61 -0
- data/spec/ramaze/template/nagoro/another/long/action.nag +1 -0
- data/spec/ramaze/template/nagoro/combined.nag +1 -0
- data/spec/ramaze/template/nagoro/file_only.nag +1 -0
- data/spec/ramaze/template/nagoro/index.nag +1 -0
- data/spec/ramaze/template/nagoro/nested.nag +1 -0
- data/spec/ramaze/template/nagoro/some__long__action.nag +1 -0
- data/spec/ramaze/template/nagoro/sum.nag +1 -0
- data/spec/ramaze/template/nagoro.rb +64 -0
- data/spec/ramaze/template/ramaze/external.test +1 -0
- data/spec/ramaze/template/redcloth/external.redcloth +1 -0
- data/spec/ramaze/template/redcloth.rb +38 -0
- data/spec/ramaze/template/remarkably/external.rem +8 -0
- data/spec/ramaze/template/remarkably/sum.rem +1 -0
- data/spec/ramaze/template/remarkably.rb +58 -0
- data/spec/ramaze/template/sass/file.css.sass +5 -0
- data/spec/ramaze/template/sass.rb +69 -0
- data/spec/ramaze/template/tagz/external.tagz +8 -0
- data/spec/ramaze/template/tagz/sum.tagz +1 -0
- data/spec/ramaze/template/tagz.rb +62 -0
- data/spec/ramaze/template/tenjin/external.tenjin +1 -0
- data/spec/ramaze/template/tenjin.rb +47 -0
- data/spec/ramaze/template/xslt/concat_words.xsl +16 -0
- data/spec/ramaze/template/xslt/index.xsl +14 -0
- data/spec/ramaze/template/xslt/products.xsl +32 -0
- data/spec/ramaze/template/xslt/ruby_version.xsl +14 -0
- data/spec/ramaze/template/xslt.rb +90 -0
- data/spec/ramaze/template.rb +128 -0
- data/spec/snippets/array/put_within.rb +33 -0
- data/spec/snippets/binding/locals.rb +9 -0
- data/spec/snippets/divide.rb +19 -0
- data/spec/snippets/kernel/constant.rb +23 -0
- data/spec/snippets/numeric/filesize_format.rb +12 -0
- data/spec/snippets/numeric/time.rb +12 -0
- data/spec/snippets/object/__dir__.rb +8 -0
- data/spec/snippets/object/acquire.rb +71 -0
- data/spec/snippets/ordered_set.rb +63 -0
- data/spec/snippets/ramaze/caller_info.rb +39 -0
- data/spec/snippets/ramaze/caller_lines.rb +30 -0
- data/spec/snippets/string/camel_case.rb +25 -0
- data/spec/snippets/string/color.rb +11 -0
- data/spec/snippets/string/snake_case.rb +24 -0
- data/spec/snippets/string/unindent.rb +43 -0
- data/spec/snippets/thread/into.rb +20 -0
- metadata +823 -0
data/README.markdown
ADDED
@@ -0,0 +1,481 @@
|
|
1
|
+
Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
2
|
+
All files in this distribution are subject to the terms of the Ruby license.
|
3
|
+
|
4
|
+
# About Ramaze
|
5
|
+
|
6
|
+
Ramaze is a very simple and straight-forward web-framework.
|
7
|
+
The philosophy of it could be expressed in a mix of KISS and POLS, trying to
|
8
|
+
make simple things simple and complex things possible.
|
9
|
+
|
10
|
+
This of course is nothing new to anyone who knows some ruby, but is often
|
11
|
+
forgotten in a chase for new functionality and features. Ramaze only tries to
|
12
|
+
give you the ultimate tools, but you have to use them yourself to achieve
|
13
|
+
perfect custom-tailored results.
|
14
|
+
|
15
|
+
Another one of the goals during development of Ramaze was to make every part as
|
16
|
+
modular and therefor reuasable as possible, not only to provide a basic
|
17
|
+
understanding after the first glance, but also to make it as simple as possible
|
18
|
+
to reuse parts of the code.
|
19
|
+
|
20
|
+
The original purpose of Ramaze was to act as a kind of framework to build
|
21
|
+
web-frameworks, this was made obsolete by the introduction of rack, which
|
22
|
+
provides this feature at a better level without trying to enforce any structural
|
23
|
+
layout of the resulting framework.
|
24
|
+
|
25
|
+
|
26
|
+
# Features Overview
|
27
|
+
|
28
|
+
Ramaze offers following features at the moment:
|
29
|
+
|
30
|
+
* Adapters
|
31
|
+
|
32
|
+
Ramaze takes advantage of the rack library to provide a common way of
|
33
|
+
handling different ways to serve its content.
|
34
|
+
|
35
|
+
Rack supports at the moment:
|
36
|
+
|
37
|
+
* [Mongrel](http://mongrel.rubyforge.org/)
|
38
|
+
|
39
|
+
Mongrel is a fast HTTP library and server for Ruby that is intended for
|
40
|
+
hosting Ruby web applications of any kind using plain HTTP rather than
|
41
|
+
FastCGI or SCGI.
|
42
|
+
|
43
|
+
* [WEBrick](http://www.webrick.org/)
|
44
|
+
|
45
|
+
WEBrick is a Ruby library program to build HTTP servers.
|
46
|
+
|
47
|
+
* CGI
|
48
|
+
|
49
|
+
CGI is the Common Gateway Interface and is one of the most basic ways
|
50
|
+
to integrate into Webservers like Apache or Lighttpd.
|
51
|
+
|
52
|
+
* FCGI
|
53
|
+
|
54
|
+
Improvment of CGI as it doesn't start up a new connection to Ramaze on
|
55
|
+
every request.
|
56
|
+
|
57
|
+
|
58
|
+
* Templates
|
59
|
+
* [Amrita2](http://amrita2.rubyforge.org/)
|
60
|
+
|
61
|
+
Amrita2 is a xml/xhtml template library for Ruby. It makes html documents
|
62
|
+
from a template and a model data.
|
63
|
+
|
64
|
+
* [Erubis](http://rubyforge.org/projects/erubis)
|
65
|
+
|
66
|
+
Erubis is a fast, secure, and very extensible implementation of eRuby.
|
67
|
+
|
68
|
+
* [Haml](http://haml.hamptoncatlin.com/)
|
69
|
+
|
70
|
+
Haml takes your gross, ugly templates and replaces them with veritable Haiku.
|
71
|
+
|
72
|
+
* [Liquid](http://home.leetsoft.com/liquid)
|
73
|
+
|
74
|
+
Liquid's syntax and parse model are inspired by Django templates, as well
|
75
|
+
as PHP's smarty.
|
76
|
+
|
77
|
+
* [Remarkably](http://rubyforge.org/projects/remarkably)
|
78
|
+
|
79
|
+
Remarkably is a very tiny Markaby-like XML builder
|
80
|
+
|
81
|
+
* [Markaby](http://code.whytheluckystiff.net/markaby/)
|
82
|
+
|
83
|
+
Markaby means Markup as Ruby.
|
84
|
+
|
85
|
+
* [Sass](http://haml.hamptoncatlin.com/docs/sass)
|
86
|
+
|
87
|
+
Sass is a meta-language on top of CSS that‘s used to describe the style of
|
88
|
+
a document cleanly and structurally, with more power than flat CSS allows.
|
89
|
+
|
90
|
+
* Ezamar
|
91
|
+
|
92
|
+
A simple homage to [Nitro](http://nitroproject.org)s templating, is shipped
|
93
|
+
together with Ramaze.
|
94
|
+
|
95
|
+
* Cache
|
96
|
+
* Hash
|
97
|
+
* YAML::Store
|
98
|
+
* MemCache
|
99
|
+
|
100
|
+
* Helper
|
101
|
+
* Active by default
|
102
|
+
* CGI
|
103
|
+
|
104
|
+
Shortcuts for escape/unescape of the CGI module.
|
105
|
+
|
106
|
+
* File
|
107
|
+
|
108
|
+
Helps you serving files from your Controller.
|
109
|
+
|
110
|
+
* Flash
|
111
|
+
|
112
|
+
Store a couple of values for one request associated with a session.
|
113
|
+
|
114
|
+
* Link
|
115
|
+
|
116
|
+
Easier linking to the various parts of your applications Controllers and
|
117
|
+
Actions.
|
118
|
+
|
119
|
+
* Redirect
|
120
|
+
|
121
|
+
Easy redirection.
|
122
|
+
|
123
|
+
* Optional
|
124
|
+
* Aspect
|
125
|
+
|
126
|
+
Allows you to wrap different Actions on your Controller with code.
|
127
|
+
|
128
|
+
* Auth
|
129
|
+
|
130
|
+
Simple way to add basic authentication.
|
131
|
+
|
132
|
+
* Cache
|
133
|
+
|
134
|
+
Easy caching Actions and values.
|
135
|
+
|
136
|
+
* Identity
|
137
|
+
|
138
|
+
For ease of use of the OpenID authentication mechanism.
|
139
|
+
|
140
|
+
* Inform
|
141
|
+
|
142
|
+
Wrapping the functionality of Ramazes logging facilities.
|
143
|
+
|
144
|
+
* Markaby
|
145
|
+
|
146
|
+
Allows you to use Markaby in your Controller without having it as the
|
147
|
+
default templating engine.
|
148
|
+
|
149
|
+
* Nitroform
|
150
|
+
|
151
|
+
Hooks up on nitros form builder to help you creating forms from Og
|
152
|
+
objects.
|
153
|
+
|
154
|
+
* OpenID
|
155
|
+
|
156
|
+
Authentication via OpenID made easy.
|
157
|
+
|
158
|
+
* Pager
|
159
|
+
|
160
|
+
Displays a collection of entitities in multiple pages.
|
161
|
+
|
162
|
+
* Partial
|
163
|
+
|
164
|
+
Renders so-called partials.
|
165
|
+
|
166
|
+
* Stack
|
167
|
+
|
168
|
+
Allows you to use a call/answer mechanism for things like redirection to the
|
169
|
+
site a user entered login-forms from.
|
170
|
+
|
171
|
+
* Various
|
172
|
+
* Sessions
|
173
|
+
* Global configuration system
|
174
|
+
* Simple request/response handling
|
175
|
+
* Custom sophisticated Error-handling
|
176
|
+
|
177
|
+
|
178
|
+
# Basic Principles
|
179
|
+
|
180
|
+
There are some basic principles that Ramaze tries to follow:
|
181
|
+
|
182
|
+
* KISS (Keep It Super Simple)
|
183
|
+
|
184
|
+
Ramaze doesn't introduce any major change of paradigm for everyone familiar
|
185
|
+
with Ruby and the basics of Web-development.
|
186
|
+
|
187
|
+
* POLS (Principle Of Least Surprise)
|
188
|
+
|
189
|
+
Ramaze tries to be intuitive and easy to learn. Most functionality is built in
|
190
|
+
a way to help, not to obfuscate or confuse.
|
191
|
+
|
192
|
+
* Modular design
|
193
|
+
|
194
|
+
Use what you want and how you want it.
|
195
|
+
|
196
|
+
Through Ruby Ramaze provides one of the most powerful programming-languages
|
197
|
+
available, giving you full control over your system.
|
198
|
+
|
199
|
+
Even the most essential parts of Ramaze can easily be replaced and/or modified
|
200
|
+
without losing the advantage of the whole framework.
|
201
|
+
|
202
|
+
* Minimal dependencies
|
203
|
+
|
204
|
+
Nothing besides Ruby is required for the basic features.
|
205
|
+
|
206
|
+
Of course you can take advantage of several wonderful libraries, but Ramaze is
|
207
|
+
built in a way to be run on any basic setup.
|
208
|
+
|
209
|
+
* Documentation
|
210
|
+
|
211
|
+
Document everything, classes, modules, methods, configuration...
|
212
|
+
|
213
|
+
Through 100% documentation Ramaze gives the developer easy and solid
|
214
|
+
understanding of the underlying concepts and functionality.
|
215
|
+
|
216
|
+
* Open development
|
217
|
+
|
218
|
+
Everyone is welcome to contribute to Ramaze in the easiest way possible. The
|
219
|
+
repository is open for patches passing the Test-suite.
|
220
|
+
|
221
|
+
* Examples
|
222
|
+
|
223
|
+
Everyone learns different, some only read the source, others browse
|
224
|
+
documentation, but everyone loves examples for a quick and painless start.
|
225
|
+
|
226
|
+
Ramaze addresses this need and offers a wide variety of examples of usage,
|
227
|
+
basic functionality, project-layout and more advanced applications.
|
228
|
+
|
229
|
+
* Fully BDD (Behaviour Driven Design)
|
230
|
+
|
231
|
+
Ramaze has a very complete set of so-called specifications built by RSpec.
|
232
|
+
These specs define the way Ramaze has to behave.
|
233
|
+
|
234
|
+
The specs are checked every time a new patch is pushed into the repository,
|
235
|
+
deciding whether the changes the patch applies are valid and don't break the framework.
|
236
|
+
|
237
|
+
|
238
|
+
# Installation
|
239
|
+
|
240
|
+
* via RubyGems
|
241
|
+
|
242
|
+
The simplest way of installing Ramaze is via the gem.
|
243
|
+
|
244
|
+
[Rubygems](http://rubygems.org) is the package manager for ruby apps and
|
245
|
+
libraries and provides you with the last tagged version of Ramaze.
|
246
|
+
|
247
|
+
$ gem install ramaze
|
248
|
+
|
249
|
+
Versions are made as we see fit and get an announcment out (usually that's
|
250
|
+
the major obstacle as there is a lot to announce).
|
251
|
+
|
252
|
+
If you want to install the nightly gem of Ramaze you can do this with:
|
253
|
+
|
254
|
+
$ gem install ramaze --source=http://gem.ramaze.net/
|
255
|
+
|
256
|
+
We also use the gem building process on github, which locates gems at
|
257
|
+
http://gems.github.com - so you can get a version from there as well:
|
258
|
+
|
259
|
+
$ gem install manveru-ramaze --source=http://gems.github.com/
|
260
|
+
|
261
|
+
* via git
|
262
|
+
|
263
|
+
To get the latest and sweetest, you can just pull from the repository and run
|
264
|
+
Ramaze that way.
|
265
|
+
|
266
|
+
$ git clone git://github.com/manveru/ramaze.git
|
267
|
+
|
268
|
+
Please read the `man git` or `git help` for more information about updating
|
269
|
+
and creating your own patches.
|
270
|
+
This is at the moment the premier way to use Ramaze, since it is the way I
|
271
|
+
use it.
|
272
|
+
|
273
|
+
Some hints for the usage of Git.
|
274
|
+
|
275
|
+
* use `require 'ramaze'` from everywhere
|
276
|
+
|
277
|
+
Simply add the path to your repository to the RUBYLIB environment variable.
|
278
|
+
If you are using bash you can simply put following line into your .bashrc:
|
279
|
+
|
280
|
+
$ export RUBYLIB="$HOME/path/to/repo/lib/"
|
281
|
+
|
282
|
+
Of course you should put the real path instead, you can also add multiple
|
283
|
+
paths, or create your personal `site_ruby`:
|
284
|
+
|
285
|
+
$ export RUBYLIB="$HOME/ruby/ramaze/lib:$HOME/.site_ruby:$HOME/ruby/bacon/lib"
|
286
|
+
|
287
|
+
* use `require 'ramaze'` systemwide from everywhere
|
288
|
+
|
289
|
+
add a file to your `site_ruby` directory named 'ramaze.rb'
|
290
|
+
the content should be: `require '/path/to/git/repo/ramaze/lib/ramaze'`
|
291
|
+
|
292
|
+
* Pull the latest version
|
293
|
+
|
294
|
+
$ git pull
|
295
|
+
|
296
|
+
* Reset the repo to original state (if you screw up something)
|
297
|
+
|
298
|
+
$ git reset --hard # resets the whole repo
|
299
|
+
|
300
|
+
* Revert changes to (for example) lib/ramaze.rb only
|
301
|
+
|
302
|
+
$ git checkout master lib/ramaze.rb
|
303
|
+
|
304
|
+
* Add and commit all changes.
|
305
|
+
|
306
|
+
$ git commit -a
|
307
|
+
|
308
|
+
* Adding only specific changes.
|
309
|
+
|
310
|
+
# Add hunks you want to commit to the staging area (index)
|
311
|
+
$ git add -p
|
312
|
+
|
313
|
+
* Commit the changes into the history of your repository
|
314
|
+
|
315
|
+
# Create a commit from the hunks added
|
316
|
+
$ git commit
|
317
|
+
|
318
|
+
* output your patches into a bundle ready to be mailed (compress it before
|
319
|
+
sending to make sure it arrives in the way you sent it)
|
320
|
+
|
321
|
+
At the end of this process you will have a tar.bz2 for all your changes
|
322
|
+
that you can mail to ramaze@googlegroups.com
|
323
|
+
|
324
|
+
# make sure you are on latest revision to avoid conflicts
|
325
|
+
$ git pull
|
326
|
+
|
327
|
+
# create 00xx-blah.patch files against the remote repo
|
328
|
+
$ git format-patch origin/HEAD
|
329
|
+
|
330
|
+
# From here on you can use either git-send-email or go the manual route
|
331
|
+
$ tar -cjf ramaze_bundle.tar.bz2 *.patch
|
332
|
+
|
333
|
+
|
334
|
+
# Getting Started
|
335
|
+
|
336
|
+
Now that you have a vague idea of what you're about to get into you might just
|
337
|
+
want to get a way to get up and running ASAP.
|
338
|
+
Please read below for more information about installation.
|
339
|
+
|
340
|
+
Depending on what you are planning to do you can either just go and start
|
341
|
+
reading the source or directly get some hands-on experience by trying some of
|
342
|
+
the examples.
|
343
|
+
Most things will require dependencies though. The basic functionality is
|
344
|
+
provided by the WEBrick adapter and the Template::Ramaze, which just run out
|
345
|
+
of the box. For more features you will have to install some templating-engines
|
346
|
+
and mongrel (_very_ recommended). Ramaze will inform you when it needs further
|
347
|
+
dependencies, so just go and try some things.
|
348
|
+
|
349
|
+
Some places to get started are:
|
350
|
+
- Read the documentation.
|
351
|
+
- Run and read the test cases.
|
352
|
+
- Look at the examples and run/modify them.
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
# A couple of Examples
|
357
|
+
|
358
|
+
There are some examples for your instant pleasure inside the examples-directory
|
359
|
+
in the Ramaze-distribution.
|
360
|
+
To start up an example, you can use the Ramaze binary located in bin/ramaze
|
361
|
+
for example:
|
362
|
+
|
363
|
+
$ ramaze examples/hello.rb
|
364
|
+
|
365
|
+
Or:
|
366
|
+
|
367
|
+
$ cd examples/blog
|
368
|
+
$ ramaze
|
369
|
+
|
370
|
+
Since ramaze uses the start.rb by default if you don't pass anything else.
|
371
|
+
|
372
|
+
For more information about the usage of ramaze try:
|
373
|
+
|
374
|
+
$ ramaze --help
|
375
|
+
|
376
|
+
|
377
|
+
Examples include:
|
378
|
+
|
379
|
+
* examples/hello.rb
|
380
|
+
Hello, World!
|
381
|
+
|
382
|
+
* examples/simple.rb
|
383
|
+
A bit more advanced than the hello-example, but still very basic.
|
384
|
+
|
385
|
+
* examples/blog
|
386
|
+
Not yet fully functional, but coming along.
|
387
|
+
|
388
|
+
* examples/whywiki
|
389
|
+
A basic examples of a minimalistic application, based on the Wiki of \_why in
|
390
|
+
his camping-framework.
|
391
|
+
|
392
|
+
* examples/templates
|
393
|
+
examples of real usage of the templating-engines. Tries to implement the same
|
394
|
+
functionality in each `template_*.rb` file using a different engine.
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
# How to find Help
|
399
|
+
|
400
|
+
For help you can:
|
401
|
+
|
402
|
+
- Visit us in the channel #ramaze on irc.freenode.net
|
403
|
+
|
404
|
+
- Join the Mailinglist at http://ramaze.rubyforge.org
|
405
|
+
|
406
|
+
|
407
|
+
# Appendix
|
408
|
+
|
409
|
+
* Performance
|
410
|
+
* Serving
|
411
|
+
|
412
|
+
For best performance you should consider using Mongrel to host your
|
413
|
+
application.
|
414
|
+
|
415
|
+
* Caching
|
416
|
+
|
417
|
+
You can easily cache your pages using the CacheHelper.
|
418
|
+
Also, using MemCache gives you high-end performance and security.
|
419
|
+
|
420
|
+
|
421
|
+
# And thanks to...
|
422
|
+
|
423
|
+
There is a large number of people who made Ramaze possibe by their ongoing
|
424
|
+
efforts in the world of open source and by encouraging and helping me.
|
425
|
+
|
426
|
+
This list is by no means a full listing of all these people, but I try to
|
427
|
+
get a good coverage despite that.
|
428
|
+
|
429
|
+
I would like to thank:
|
430
|
+
|
431
|
+
* Yukihiro Matsumoto a.k.a matz
|
432
|
+
|
433
|
+
For giving the world Ruby and bringing fun back into programming.
|
434
|
+
|
435
|
+
* Zed Shawn a.k.a. zedas
|
436
|
+
|
437
|
+
For developing Mongrel, Ramaze started out as a simple Hello World based
|
438
|
+
on that awesome server.
|
439
|
+
|
440
|
+
* Christian Neukirchen a.k.a chris2
|
441
|
+
|
442
|
+
For building rack, which is just what the numerous web-developers had
|
443
|
+
anticipated and which will, with no doubt, change the world.
|
444
|
+
|
445
|
+
* Pistos
|
446
|
+
|
447
|
+
For continious encouragment and building the first real webpage on Ramaze.
|
448
|
+
His bugreports were invaluable.
|
449
|
+
|
450
|
+
* Jim Weirich
|
451
|
+
|
452
|
+
For Rake, which lifts off a lot of tasks from the shoulders of every
|
453
|
+
developer who uses it.
|
454
|
+
|
455
|
+
* Thomas Sawyer a.k.a Trans
|
456
|
+
|
457
|
+
Dragging me deep into the rabbit-hole and showing me how awesome Ruby
|
458
|
+
truely is through his work on facets, ratchets and tons of other projects.
|
459
|
+
|
460
|
+
* George Moschovitis a.k.a gmosx
|
461
|
+
|
462
|
+
For his tremendous efforts in the Nitro/Og framework, which is a source of
|
463
|
+
steady inspiration for Ramaze and brought me to Ruby in the first place.
|
464
|
+
|
465
|
+
* Rob Levin a.k.a. lilo
|
466
|
+
|
467
|
+
He founded the most excellent Freenode IRC-network, where the most important
|
468
|
+
channels for rubyists are located (as is #ramaze).
|
469
|
+
May he rest in peace.
|
470
|
+
|
471
|
+
* The guys (and gals) in the various channels on Freenode
|
472
|
+
|
473
|
+
As the people are way too many to be listed, here the channels that i call
|
474
|
+
my online home.
|
475
|
+
All the people in there deserve special thanks for getting me hooked to Ruby
|
476
|
+
and providing their help in a friendly and patient manner.
|
477
|
+
|
478
|
+
* #nitro
|
479
|
+
* #ruby-de
|
480
|
+
* #ruby-lang
|
481
|
+
* #rubyforce
|
data/Rakefile
ADDED
@@ -0,0 +1,228 @@
|
|
1
|
+
begin
|
2
|
+
require 'rubygems'
|
3
|
+
rescue LoadError
|
4
|
+
end
|
5
|
+
|
6
|
+
require 'rake'
|
7
|
+
require 'rake/clean'
|
8
|
+
require 'rake/packagetask'
|
9
|
+
require 'rake/gempackagetask'
|
10
|
+
require 'rake/rdoctask'
|
11
|
+
|
12
|
+
require 'pp'
|
13
|
+
require 'date'
|
14
|
+
require 'time'
|
15
|
+
require 'fileutils'
|
16
|
+
|
17
|
+
include FileUtils
|
18
|
+
|
19
|
+
$:.unshift File.join(File.dirname(__FILE__), "lib")
|
20
|
+
|
21
|
+
require 'ramaze/version'
|
22
|
+
load 'rake_tasks/conf.rake'
|
23
|
+
load 'rake_tasks/maintenance.rake'
|
24
|
+
load 'rake_tasks/spec.rake'
|
25
|
+
load 'rake_tasks/coverage.rake'
|
26
|
+
load 'rake_tasks/release.rake'
|
27
|
+
load 'rake_tasks/git.rake'
|
28
|
+
load 'rake_tasks/gem.rake'
|
29
|
+
load 'rake_tasks/metric.rake'
|
30
|
+
|
31
|
+
task :default => ['spec']
|
32
|
+
task :test => ['spec']
|
33
|
+
# task :package => ['jquery']
|
34
|
+
|
35
|
+
desc 'download latest jquery and put in /lib/proto/public/js/jquery.js'
|
36
|
+
task :jquery do
|
37
|
+
require 'open-uri'
|
38
|
+
$stdout.sync = true
|
39
|
+
|
40
|
+
File.open('lib/proto/public/js/jquery.js', 'w+') do |jquery|
|
41
|
+
remote = open('http://code.jquery.com/jquery-latest.js')
|
42
|
+
print "openend remote side, copying..."
|
43
|
+
while chunk = remote.read(4096)
|
44
|
+
print '.'
|
45
|
+
jquery.write(chunk)
|
46
|
+
end
|
47
|
+
puts " done."
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc 'Check gemspec file list against real file list'
|
52
|
+
task :check_gemspec do
|
53
|
+
base_dir = File.expand_path(File.dirname(__FILE__))
|
54
|
+
gemspec_files = eval(File.read(File.join(base_dir,'ramaze.gemspec'))).files.map{|file|File.join(base_dir,file)}
|
55
|
+
|
56
|
+
deleted_files = gemspec_files.select{|file|!File.exists?(file)}.map{|file|file[(base_dir.size+1)..-1]}
|
57
|
+
|
58
|
+
added_files = Dir.glob(File.join(File.dirname(__FILE__),'**/*')).select do |file|
|
59
|
+
!gemspec_files.index(file)
|
60
|
+
end.map do |file|
|
61
|
+
file[(base_dir.size+1)..-1]
|
62
|
+
end.select do |file|
|
63
|
+
!( file == 'pkg' or file =~ /.*\.gem/ )
|
64
|
+
end
|
65
|
+
|
66
|
+
unless deleted_files.empty?
|
67
|
+
puts "The following files appear in the gemspec but cannot be found:"
|
68
|
+
deleted_files.each do |file|
|
69
|
+
puts "\t#{file}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
unless added_files.empty?
|
73
|
+
puts "The following files exist, but cannot be found in the gemspec:"
|
74
|
+
added_files.each do |file|
|
75
|
+
puts "\t#{file}"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
task :rcov_dir do
|
81
|
+
mkdir_p 'doc/output/tools/rcov/'
|
82
|
+
end
|
83
|
+
|
84
|
+
desc "Generate HTML coverage report"
|
85
|
+
task :rcov_summary => :rcov_dir do
|
86
|
+
`rcov --version`
|
87
|
+
raise LoadError, "Please `gem install rcov` first" if $?.exitstatus == 127
|
88
|
+
raise "Run `rake coverage` to generate coverage data first" unless File.exists? 'coverage.data'
|
89
|
+
sh "rcov --aggregate coverage.data -o doc/output/tools/rcov/"
|
90
|
+
end
|
91
|
+
|
92
|
+
desc "generate rdoc"
|
93
|
+
task :rdoc => [:clean] do
|
94
|
+
sh "rdoc #{(RDOC_OPTS + RDOC_FILES).join(' ')}"
|
95
|
+
end
|
96
|
+
|
97
|
+
desc "generate improved allison-rdoc"
|
98
|
+
task :allison => :clean do
|
99
|
+
opts = RDOC_OPTS
|
100
|
+
path = `allison --path`.strip
|
101
|
+
raise LoadError, "Please `gem install allison` first" if $?.exitstatus == 127
|
102
|
+
opts << %W[--template '#{path}']
|
103
|
+
sh "rdoc #{(RDOC_OPTS + RDOC_FILES).join(' ')}"
|
104
|
+
end
|
105
|
+
|
106
|
+
desc "create bzip2 and tarball"
|
107
|
+
task :distribute => :gem do
|
108
|
+
sh "rm -rf pkg/ramaze-#{VERS}"
|
109
|
+
sh "mkdir -p pkg/ramaze-#{VERS}"
|
110
|
+
sh "cp -r {bin,doc,lib,examples,spec,Rakefile,README.markdown,rake_tasks} pkg/ramaze-#{VERS}/"
|
111
|
+
|
112
|
+
Dir.chdir('pkg') do |pwd|
|
113
|
+
sh "tar -zcvf ramaze-#{VERS}.tar.gz ramaze-#{VERS}"
|
114
|
+
sh "tar -jcvf ramaze-#{VERS}.tar.bz2 ramaze-#{VERS}"
|
115
|
+
end
|
116
|
+
|
117
|
+
sh "rm -rf pkg/ramaze-#{VERS}"
|
118
|
+
end
|
119
|
+
|
120
|
+
desc "show a todolist from all the TODO tags in the source"
|
121
|
+
task :todo do
|
122
|
+
files = Dir[File.join(BASEDIR, '{lib,spec}', '**/*.rb')]
|
123
|
+
|
124
|
+
files.each do |file|
|
125
|
+
lastline = todo = comment = long_comment = false
|
126
|
+
|
127
|
+
File.readlines(file).each_with_index do |line, lineno|
|
128
|
+
lineno += 1
|
129
|
+
comment = line =~ /^\s*?#.*?$/
|
130
|
+
long_comment = line =~ /^=begin/
|
131
|
+
long_comment = line =~ /^=end/
|
132
|
+
todo = true if line =~ /TODO/ and (long_comment or comment)
|
133
|
+
todo = false if line.gsub('#', '').strip.empty?
|
134
|
+
todo = false unless comment or long_comment
|
135
|
+
if todo
|
136
|
+
unless lastline and lastline + 1 == lineno
|
137
|
+
puts
|
138
|
+
puts "vim #{file} +#{lineno}"
|
139
|
+
end
|
140
|
+
|
141
|
+
l = line.strip.gsub(/^#\s*/, '')
|
142
|
+
print ' ' unless l =~ /^-/
|
143
|
+
puts l
|
144
|
+
lastline = lineno
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
desc "opens a simple readline that makes making requests easier"
|
151
|
+
task 'request' do
|
152
|
+
ARGV.clear
|
153
|
+
require 'open-uri'
|
154
|
+
require 'pp'
|
155
|
+
|
156
|
+
loop do
|
157
|
+
print 'do request? [enter] '
|
158
|
+
gets
|
159
|
+
begin
|
160
|
+
pp open('http://localhost:7000/xxx').read
|
161
|
+
rescue Object => ex
|
162
|
+
puts ex
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
desc 'listing of available traits per class/module'
|
168
|
+
task 'traits' do
|
169
|
+
nodes = Hash.new{|h,k| h[k] = []}
|
170
|
+
Dir['lib/**/*.rb'].each do |file|
|
171
|
+
content = File.read(file)
|
172
|
+
traits = content.grep(/^\s*trait\s*:/)
|
173
|
+
traits.each do |trait|
|
174
|
+
space = content[0..content.index(trait)].scan(/^\s*(?:class|module)\s+(.*)$/)
|
175
|
+
space = space.flatten.join('::')
|
176
|
+
nodes[space] << trait.strip
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
nodes.each do |space, traits|
|
181
|
+
puts space
|
182
|
+
traits.each do |trait|
|
183
|
+
print ' ', trait, "\n"
|
184
|
+
end
|
185
|
+
puts
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
desc "Update doc/CHANGELOG"
|
190
|
+
task 'doc/CHANGELOG' do
|
191
|
+
File.open('doc/CHANGELOG', 'w+') do |f|
|
192
|
+
f.puts `git log`
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
desc "#{README} to doc/README.html"
|
197
|
+
task 'doc/README.html' => [README] do
|
198
|
+
sh "maruku #{README}"
|
199
|
+
mv 'README.html', 'doc/README.html'
|
200
|
+
end
|
201
|
+
|
202
|
+
desc "Compile the #{README} from the parts of doc/readme"
|
203
|
+
task README do
|
204
|
+
require 'enumerator'
|
205
|
+
|
206
|
+
chapters = [
|
207
|
+
'About Ramaze', 'introduction',
|
208
|
+
'Features Overview', 'features',
|
209
|
+
'Basic Principles', 'principles',
|
210
|
+
'Installation', 'installing',
|
211
|
+
'Getting Started', 'getting_started',
|
212
|
+
'A couple of Examples', 'examples',
|
213
|
+
'How to find Help', 'getting_help',
|
214
|
+
'Appendix', 'appendix',
|
215
|
+
'And thanks to...', 'thanks',
|
216
|
+
]
|
217
|
+
|
218
|
+
File.open(README, 'w+') do |readme|
|
219
|
+
readme.puts COPYRIGHT.map{|l| l[1..-1]}, ''
|
220
|
+
|
221
|
+
chapters.each_slice(2) do |title, file|
|
222
|
+
file = File.join('doc', 'readme_chunks', "#{file}.txt")
|
223
|
+
chapter = File.read(file)
|
224
|
+
readme.puts "# #{title}", '', chapter
|
225
|
+
readme.puts '', '' unless title == chapters[-2]
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|