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
@@ -0,0 +1,92 @@
|
|
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
|
+
Ramaze::Log.log( :warn, "Both xosd gems are currently known to be broken" )
|
5
|
+
require 'xosd'
|
6
|
+
require 'thread'
|
7
|
+
|
8
|
+
module Ramaze
|
9
|
+
module Logger
|
10
|
+
|
11
|
+
# Informer for the XOSD notification system for X11.
|
12
|
+
#
|
13
|
+
# You can install the ruby-bindings with:
|
14
|
+
# gem install xosd.
|
15
|
+
|
16
|
+
class Xosd < ::Xosd
|
17
|
+
attr_accessor :options
|
18
|
+
|
19
|
+
include Logging
|
20
|
+
|
21
|
+
DEFAULT = {
|
22
|
+
:font_size => 20,
|
23
|
+
:font => "-*-*-*-*-*-*-%d-*-*-*-*-*-*-*",
|
24
|
+
:align => 'center',
|
25
|
+
:color => '#FFFFFF',
|
26
|
+
:lines => 3,
|
27
|
+
:valign => 'top',
|
28
|
+
:timeout => 3,
|
29
|
+
:outline_color => "#000000",
|
30
|
+
:outline_width => 1,
|
31
|
+
:vertical_offset => 20,
|
32
|
+
:colors => {
|
33
|
+
:error => "#FF0000",
|
34
|
+
:info => "#00FF00",
|
35
|
+
:warn => "#EAA61E",
|
36
|
+
:debug => "#FFFF00"
|
37
|
+
},
|
38
|
+
}
|
39
|
+
|
40
|
+
# keys to ignore when setting the options to the instance.
|
41
|
+
IGNORE = [:colors, :font_size, :lines]
|
42
|
+
|
43
|
+
# Here new messages are pushed to eventually displaying them.
|
44
|
+
QUEUE = Queue.new
|
45
|
+
|
46
|
+
# Create a new instance, valid options are in DEFAULT.
|
47
|
+
# In the background a new thread will be running that checks the QUEUE
|
48
|
+
# and processes all messages that are being sent to it.
|
49
|
+
# This is done to make output nicer and readable.
|
50
|
+
|
51
|
+
def initialize(options = {})
|
52
|
+
@options = DEFAULT.merge(options)
|
53
|
+
|
54
|
+
super(@options[:lines])
|
55
|
+
|
56
|
+
@options.each do |key, value|
|
57
|
+
next if IGNORE.include?(key)
|
58
|
+
value %= @options[:font_size] if key == :font
|
59
|
+
send("#{key}=", value)
|
60
|
+
end
|
61
|
+
|
62
|
+
Thread.new(self) do |xosd|
|
63
|
+
loop do
|
64
|
+
items = []
|
65
|
+
lines = xosd.options[:lines]
|
66
|
+
items << QUEUE.shift until QUEUE.empty? or items.size >= lines
|
67
|
+
|
68
|
+
unless items.empty?
|
69
|
+
# pad up with empty lines to avoid dragging around old messages.
|
70
|
+
items << [:info, ' '] until items.size >= lines
|
71
|
+
|
72
|
+
items.each_with_index do |(tag, message), i|
|
73
|
+
xosd.color = xosd.options[:colors][tag.to_sym]
|
74
|
+
xosd.display(message, i)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
sleep xosd.options[:timeout]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# pushes all messages it gets on the QUEUE for further processing.
|
83
|
+
|
84
|
+
def log(tag, *messages)
|
85
|
+
messages.each do |message|
|
86
|
+
QUEUE << [tag, message]
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
data/lib/ramaze/log.rb
ADDED
@@ -0,0 +1,27 @@
|
|
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
|
+
require 'ramaze/log/logging'
|
5
|
+
require 'ramaze/log/hub'
|
6
|
+
require 'ramaze/log/informer'
|
7
|
+
|
8
|
+
begin
|
9
|
+
require 'win32console' if RUBY_PLATFORM =~ /win32/i
|
10
|
+
rescue LoadError => ex
|
11
|
+
puts ex
|
12
|
+
puts "For nice colors on windows, please `gem install win32console`"
|
13
|
+
Ramaze::Logger::Informer.trait[:colorize] = false
|
14
|
+
end
|
15
|
+
|
16
|
+
module Ramaze
|
17
|
+
autoload :Analogger, "ramaze/log/analogger.rb"
|
18
|
+
autoload :Knotify, "ramaze/log/knotify.rb"
|
19
|
+
autoload :Syslog, "ramaze/log/syslog.rb"
|
20
|
+
autoload :Growl, "ramaze/log/growl.rb"
|
21
|
+
autoload :Xosd, "ramaze/log/xosd.rb"
|
22
|
+
autoload :Logger, "ramaze/log/logger.rb"
|
23
|
+
|
24
|
+
unless defined?(Log)
|
25
|
+
Log = Logger::LogHub.new(Logger::Informer)
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,45 @@
|
|
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
|
+
module Ramaze
|
5
|
+
module Option
|
6
|
+
class DSL
|
7
|
+
attr_reader :holder
|
8
|
+
|
9
|
+
def initialize(holder, &block)
|
10
|
+
@holder = holder
|
11
|
+
@config = {}
|
12
|
+
instance_eval(&block) if block_given?
|
13
|
+
end
|
14
|
+
|
15
|
+
def o(doc, key, value, options = {})
|
16
|
+
@config[key] = [doc, value, options]
|
17
|
+
|
18
|
+
holder.add_option(key, value, complain = false)
|
19
|
+
holder.trait[key] = options.merge(:doc => doc)
|
20
|
+
end
|
21
|
+
|
22
|
+
# to generate a new sorted source file from the config, was only used to
|
23
|
+
# merge new and old DSL.
|
24
|
+
def output
|
25
|
+
@config.keys.sort_by{|k,v| k.to_s }.each do |key|
|
26
|
+
doc, value, options = @config[key]
|
27
|
+
puts "o %s," % doc.dump
|
28
|
+
|
29
|
+
if options.empty?
|
30
|
+
puts " %p, %p" % [key, value]
|
31
|
+
else
|
32
|
+
format = options.map{|(k,v)| '%p => %p' % [k,v]}.join(', ')
|
33
|
+
puts " %p, %p, %s" % [key, value, format]
|
34
|
+
end
|
35
|
+
|
36
|
+
puts
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.dsl(&block)
|
42
|
+
Option::DSL.new(&block)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,131 @@
|
|
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
|
+
require 'ramaze/option/merger'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Option
|
8
|
+
class Holder
|
9
|
+
include Merger
|
10
|
+
|
11
|
+
def initialize(options = {})
|
12
|
+
@members = Set.new
|
13
|
+
|
14
|
+
options.each do |key, value|
|
15
|
+
add_option(key, value, complain = false)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_option(key, value, complain = true)
|
20
|
+
Log.warn("Adding #{key} to #{self}") if complain
|
21
|
+
|
22
|
+
self.class.class_eval do
|
23
|
+
attr_reader key unless method_defined?(key)
|
24
|
+
attr_writer key unless method_defined?("#{key}=")
|
25
|
+
end
|
26
|
+
|
27
|
+
self[key] = value
|
28
|
+
end
|
29
|
+
|
30
|
+
def [](key)
|
31
|
+
__send__(key)
|
32
|
+
end
|
33
|
+
|
34
|
+
def []=(key, value)
|
35
|
+
@members << key.to_s.to_sym
|
36
|
+
__send__("#{key}=", value)
|
37
|
+
end
|
38
|
+
|
39
|
+
include Enumerable
|
40
|
+
|
41
|
+
def each
|
42
|
+
@members.each do |member|
|
43
|
+
yield member, self[member]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def startup(options)
|
48
|
+
options.each do |key, value|
|
49
|
+
self[key] = value
|
50
|
+
end
|
51
|
+
|
52
|
+
merge!(ARGV)
|
53
|
+
merge!(ENV)
|
54
|
+
|
55
|
+
self.root ||= File.dirname(File.expand_path(runner))
|
56
|
+
[self.load_engines].flatten.compact.each do |engine|
|
57
|
+
Ramaze::Template.const_get(engine)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# batch-assignment of key/value from hash, yields self if a block is given.
|
62
|
+
def setup(hash = {})
|
63
|
+
merge!(hash)
|
64
|
+
yield(self) if block_given?
|
65
|
+
end
|
66
|
+
|
67
|
+
# Modified options
|
68
|
+
|
69
|
+
def port=(number)
|
70
|
+
@port = number.to_i
|
71
|
+
end
|
72
|
+
|
73
|
+
def public_root=(pr)
|
74
|
+
@public_root = pr
|
75
|
+
end
|
76
|
+
|
77
|
+
# Find a suitable public_root, if none of these is a directory just use the
|
78
|
+
# currently set one.
|
79
|
+
def public_root
|
80
|
+
[ @public_root,
|
81
|
+
root/@public_root
|
82
|
+
].find{|path| File.directory?(path) } || @public_root
|
83
|
+
end
|
84
|
+
|
85
|
+
def view_root=(vr)
|
86
|
+
@view_root = vr
|
87
|
+
end
|
88
|
+
|
89
|
+
# Find a suitable view_root, if none of these is a directory just use
|
90
|
+
# the currently set one.
|
91
|
+
def view_root
|
92
|
+
[ @view_root,
|
93
|
+
root/@view_root,
|
94
|
+
root/'template',
|
95
|
+
].find{|path| File.directory?(path) } || @view_root
|
96
|
+
end
|
97
|
+
|
98
|
+
def adapter
|
99
|
+
find_from_aliases(@adapter, :adapter_aliases, Ramaze::Adapter, "ramaze/adapter")
|
100
|
+
end
|
101
|
+
|
102
|
+
def cache
|
103
|
+
find_from_aliases(@cache, :cache_aliases, Ramaze, "ramaze/cache")
|
104
|
+
end
|
105
|
+
|
106
|
+
def sourcereload=(interval)
|
107
|
+
Ramaze::Reloader::OPTIONS[:cooldown] = interval
|
108
|
+
end
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
def find_from_aliases(name, alias_key, mod, path)
|
113
|
+
case name
|
114
|
+
when String, Symbol
|
115
|
+
name = name.to_s
|
116
|
+
class_name = self[alias_key][name] || name
|
117
|
+
find_require(name, class_name, mod, path)
|
118
|
+
else
|
119
|
+
name
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
def find_require(name, class_name, mod, path)
|
124
|
+
file_path = File.join(path, name)
|
125
|
+
require(file_path) unless mod.const_defined?(class_name)
|
126
|
+
|
127
|
+
mod.const_get(class_name)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
module Ramaze
|
2
|
+
module Option
|
3
|
+
module Merger
|
4
|
+
|
5
|
+
# Pass it anything that may work as option: ENV, hashes, ARGV...
|
6
|
+
# it will figure out how to get config from it and modify Global.
|
7
|
+
def merge!(obj, &block)
|
8
|
+
case obj
|
9
|
+
when ENV
|
10
|
+
merge_prefixed!(obj)
|
11
|
+
else
|
12
|
+
if obj.respond_to?(:each_pair)
|
13
|
+
obj.each_pair do |key, value|
|
14
|
+
self[key] = value
|
15
|
+
end
|
16
|
+
elsif obj.respond_to?(:each)
|
17
|
+
merge_cli!(obj, &block)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
# Prefixed options, mostly useful for filtering out from ENV.
|
25
|
+
# by default the prefix is case-insensitive and set to ramaze_ - that
|
26
|
+
# works for keys like:
|
27
|
+
# $ RAMAZE_PORT=80 ruby start.rb
|
28
|
+
# $ ramaze_port=80 ruby start.rb
|
29
|
+
# $ Ramaze_Port=80 ruby start.rb
|
30
|
+
def merge_prefixed!(obj, prefix = 'ramaze_')
|
31
|
+
opts = {}
|
32
|
+
obj.each do |key, value|
|
33
|
+
next unless key =~ /^#{prefix}(.*)/i
|
34
|
+
opts[$1.downcase] = value
|
35
|
+
end
|
36
|
+
merge! opts
|
37
|
+
end
|
38
|
+
|
39
|
+
# Only destructive for now, should non-destructive keep both Global and
|
40
|
+
# the obj original?
|
41
|
+
|
42
|
+
def merge_cli!(obj, &block)
|
43
|
+
option_parser(&block).parse!(obj)
|
44
|
+
end
|
45
|
+
|
46
|
+
def option_parser(bin = 'ramaze')
|
47
|
+
require 'optparse'
|
48
|
+
require 'abbrev'
|
49
|
+
|
50
|
+
OptionParser.new{|opt|
|
51
|
+
ruby_version = "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
52
|
+
ramaze_version = "Ramaze Version #{VERSION}"
|
53
|
+
version = "#{ramaze_version}, on #{ruby_version}"
|
54
|
+
|
55
|
+
opt.banner = "Usage: #{bin} start.rb [OPTIONS]"
|
56
|
+
opt.define_head version
|
57
|
+
|
58
|
+
yield(opt) if block_given?
|
59
|
+
|
60
|
+
opt.separator ''
|
61
|
+
opt.separator 'Global options, value in [] shows default.'
|
62
|
+
|
63
|
+
Global.each do |key, value|
|
64
|
+
long_option = "--#{key}"
|
65
|
+
options = Global.trait.fetch(key, {})
|
66
|
+
doc, cli, short = options.values_at(:doc, :cli, :short)
|
67
|
+
short_option = "-#{short}" if short
|
68
|
+
|
69
|
+
next unless cli or short
|
70
|
+
|
71
|
+
case cli || value
|
72
|
+
when Integer
|
73
|
+
option = [short_option, "#{long_option} NUM", Integer, doc]
|
74
|
+
when String, Symbol
|
75
|
+
option = [short_option, "#{long_option} STRING", String, doc]
|
76
|
+
when Array
|
77
|
+
next unless cli
|
78
|
+
cli = cli.map{|c| c.to_s }
|
79
|
+
list = " " << cli.join(', ')
|
80
|
+
doc = "[#{value}] #{doc}"
|
81
|
+
aliases = cli.abbrev
|
82
|
+
option = [short_option, "#{long_option} CHOICE", cli, doc, list]
|
83
|
+
else
|
84
|
+
option = [short_option, long_option, doc]
|
85
|
+
end
|
86
|
+
|
87
|
+
option.delete(nil)
|
88
|
+
|
89
|
+
opt.on(*option){|o| Ramaze::Global[key] = o }
|
90
|
+
end
|
91
|
+
|
92
|
+
opt.separator ''
|
93
|
+
opt.separator 'Common options:'
|
94
|
+
|
95
|
+
opt.on('-h', '--help', 'Show this message') do
|
96
|
+
puts opt
|
97
|
+
exit
|
98
|
+
end
|
99
|
+
|
100
|
+
opt.on('-v', '--version', "Show version") do
|
101
|
+
puts version
|
102
|
+
exit
|
103
|
+
end
|
104
|
+
}
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'ramaze/option/dsl'
|
2
|
+
require 'ramaze/option/holder'
|
3
|
+
|
4
|
+
module Ramaze
|
5
|
+
Global = Option::Holder.new
|
6
|
+
|
7
|
+
Option::DSL.new Global do
|
8
|
+
o "List of aliases for adapters",
|
9
|
+
:adapter_aliases, {
|
10
|
+
"mongrel" => "Mongrel",
|
11
|
+
"evented_mongrel" => "Mongrel",
|
12
|
+
"fcgi" => "Fcgi",
|
13
|
+
"thin" => "Thin",
|
14
|
+
"ebb" => "Ebb",
|
15
|
+
"cgi" => "Cgi",
|
16
|
+
"lsws" => "LSWS",
|
17
|
+
"scgi" => "SCGI",
|
18
|
+
"webrick" => "WEBrick",
|
19
|
+
"swiftiplied_mongrel" => "Mongrel",
|
20
|
+
}
|
21
|
+
|
22
|
+
o "Hash of aliases for caches",
|
23
|
+
:cache_aliases, {
|
24
|
+
"memory" => "MemoryCache",
|
25
|
+
"yaml" => "YAMLStoreCache",
|
26
|
+
"memcache" => "MemcachedCache",
|
27
|
+
"memcached" => "MemcachedCache",
|
28
|
+
}
|
29
|
+
|
30
|
+
o "Disable templates without actions",
|
31
|
+
:actionless_templates, true, :cli => true
|
32
|
+
|
33
|
+
o "Set adapter Ramaze will run on.",
|
34
|
+
:adapter, :webrick, :cli => @config[:adapter_aliases][1].keys, :short => :a
|
35
|
+
|
36
|
+
o "Set the size of Backtrace shown.",
|
37
|
+
:backtrace_size, 10, :cli => 10
|
38
|
+
|
39
|
+
o "Turn benchmarking every request on.",
|
40
|
+
:benchmarking, false, :short => :b, :cli => false
|
41
|
+
|
42
|
+
o "Do not log about these requests to static files, values as in Global.ignore",
|
43
|
+
:boring, ["/favicon.ico"]
|
44
|
+
|
45
|
+
o "Use this for general caching and as base for Cache.new.",
|
46
|
+
:cache, :memory, :cli => [:memory, :memcached, :yaml]
|
47
|
+
|
48
|
+
o "Turn on naive caching of all requests.",
|
49
|
+
:cache_all, false, :cli => false
|
50
|
+
|
51
|
+
o "Alternative caches",
|
52
|
+
:cache_alternative, {}
|
53
|
+
|
54
|
+
o "Don't cache action if session flash data is present for a request.",
|
55
|
+
:no_cache_flash, true, :cli => true
|
56
|
+
|
57
|
+
o "Compile Templates",
|
58
|
+
:compile, false, :cli => false
|
59
|
+
|
60
|
+
o "Start Ramaze within an IRB session",
|
61
|
+
:console, false, :short => :c
|
62
|
+
|
63
|
+
o "Active contribs",
|
64
|
+
:contribs, Set.new
|
65
|
+
|
66
|
+
o "Set default Content-Type for responses",
|
67
|
+
:content_type, "text/html"
|
68
|
+
|
69
|
+
o "Set default Accept-Charset for responses. No header set if nil.",
|
70
|
+
:accept_charset, nil
|
71
|
+
|
72
|
+
o "All subclasses of Controller are collected here.",
|
73
|
+
:controllers, Set.new
|
74
|
+
|
75
|
+
o "Instruction for daemonize, only works with bin/ramaze for now",
|
76
|
+
:daemonize, '', :cli => [:start, :stop]
|
77
|
+
|
78
|
+
o "Turn on customized error pages. Use Rack::ShowException otherwise.",
|
79
|
+
:error_page, true, :cli => true
|
80
|
+
|
81
|
+
o "Caching actions to the filesystem in Global.public_root",
|
82
|
+
:file_cache, false, :cli => false
|
83
|
+
|
84
|
+
o "Specify what IP Ramaze will respond to - 0.0.0.0 for all",
|
85
|
+
:host, "0.0.0.0", :cli => "0.0.0.0"
|
86
|
+
|
87
|
+
o "Ignore requests to these paths if no file in public_root exists, absolute path or regex",
|
88
|
+
:ignore, ["/favicon.ico"]
|
89
|
+
|
90
|
+
o "Body set on ignored paths",
|
91
|
+
:ignore_body, "File not found"
|
92
|
+
|
93
|
+
o "Status set on ignored paths",
|
94
|
+
:ignore_status, 404
|
95
|
+
|
96
|
+
o "Enable directory listing",
|
97
|
+
:list_directories, false
|
98
|
+
|
99
|
+
o "Templating engines to load on startup",
|
100
|
+
:load_engines, nil
|
101
|
+
|
102
|
+
o "All paths to controllers are mapped here.",
|
103
|
+
:mapping, {}
|
104
|
+
|
105
|
+
o "Activate middleware",
|
106
|
+
:middleware, true
|
107
|
+
|
108
|
+
o "For your own modes to decide on",
|
109
|
+
:mode, :live, :cli => [:live, :dev, :spec]
|
110
|
+
|
111
|
+
o "The place ramaze was started from, useful mostly for debugging",
|
112
|
+
:origin, :main
|
113
|
+
|
114
|
+
o "Specify port",
|
115
|
+
:port, 7000, :short => :p, :cli => 7000
|
116
|
+
|
117
|
+
o "Specify directory to serve static files",
|
118
|
+
:public_root, "public", :cli => "public"
|
119
|
+
|
120
|
+
o "Prefix for incoming and outgoing links",
|
121
|
+
:prefix, '/'
|
122
|
+
|
123
|
+
o "Record all Request objects by assigning a filtering Proc to me.",
|
124
|
+
:record, false
|
125
|
+
|
126
|
+
o "root directory of your application (former APPDIR)",
|
127
|
+
:root, File.dirname(File.expand_path($0))
|
128
|
+
|
129
|
+
o "Don't wait until all adapter-threads are finished or killed.",
|
130
|
+
:run_loose, false, :cli => false
|
131
|
+
|
132
|
+
o "The runner of your application (start.rb)",
|
133
|
+
:runner, "/home/manveru/c/ramaze/examples/hello.rb"
|
134
|
+
|
135
|
+
o "The running server will be put here from Adapter.",
|
136
|
+
:server, nil
|
137
|
+
|
138
|
+
o "Turn on session for all requests.",
|
139
|
+
:sessions, true, :cli => true
|
140
|
+
|
141
|
+
o "Turn on BF/DoS protection for error-responses",
|
142
|
+
:shield, false, :cli => false
|
143
|
+
|
144
|
+
o "What signal to trap to call Ramaze::shutdown",
|
145
|
+
:shutdown_trap, "SIGINT"
|
146
|
+
|
147
|
+
o "Interval in seconds of the Reloader",
|
148
|
+
:sourcereload, 3, :cli => 3
|
149
|
+
|
150
|
+
o "Test before start if adapters will be able to connect",
|
151
|
+
:test_connections, true, :cli => true
|
152
|
+
|
153
|
+
o "Specify directory to serve dynamic files",
|
154
|
+
:view_root, "view", :cli => "view"
|
155
|
+
end
|
156
|
+
end
|