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,52 @@
|
|
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 'markaby'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Markaby templating engine.
|
10
|
+
# Can be found at: http://code.whytheluckystiff.net/markaby/
|
11
|
+
|
12
|
+
class Markaby < Template
|
13
|
+
include Ramaze::Helper::Methods
|
14
|
+
|
15
|
+
ENGINES[self] = %w[ mab ]
|
16
|
+
|
17
|
+
class << self
|
18
|
+
|
19
|
+
# Entry point for Action#render
|
20
|
+
|
21
|
+
def transform action
|
22
|
+
result, file = result_and_file(action)
|
23
|
+
|
24
|
+
result = transform_string(file, action) if file
|
25
|
+
result.to_s
|
26
|
+
end
|
27
|
+
|
28
|
+
# Takes a string and action, instance_evals the string inside a mab
|
29
|
+
# block that gets the instance_variables of the original
|
30
|
+
# action.instance passed.
|
31
|
+
|
32
|
+
def transform_string string, action
|
33
|
+
instance = action.instance
|
34
|
+
ivs = extract_ivs(instance)
|
35
|
+
|
36
|
+
instance.send(:mab, ivs) do
|
37
|
+
instance_eval(string)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Generate a hash from instance-variables
|
42
|
+
|
43
|
+
def extract_ivs(controller)
|
44
|
+
controller.instance_variables.inject({}) do |hash, iv|
|
45
|
+
sym = iv.gsub('@', '').to_sym
|
46
|
+
hash.merge! sym => controller.instance_variable_get(iv)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,34 @@
|
|
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 'maruku'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Ezamar templating engine.
|
10
|
+
|
11
|
+
class Maruku < Template
|
12
|
+
|
13
|
+
ENGINES[self] = %w[ mkd ]
|
14
|
+
|
15
|
+
class << self
|
16
|
+
|
17
|
+
# Transforms an action into the XHTML code for parsing and returns
|
18
|
+
# the result
|
19
|
+
def transform(action)
|
20
|
+
maruku = wrap_compile(action)
|
21
|
+
maruku.to_html
|
22
|
+
end
|
23
|
+
|
24
|
+
# Compile a template, applying all transformations from the pipeline
|
25
|
+
# and returning an instance of ::Ezamar::Template
|
26
|
+
|
27
|
+
def compile(action, template)
|
28
|
+
::Maruku.new(template)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,52 @@
|
|
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 'nagoro'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Nagoro templating engine.
|
10
|
+
|
11
|
+
class Nagoro < Template
|
12
|
+
|
13
|
+
ENGINES[self] = %w[ xhtml nag ]
|
14
|
+
|
15
|
+
PIPES = ::Nagoro::DEFAULT_PIPES.dup
|
16
|
+
|
17
|
+
class << self
|
18
|
+
|
19
|
+
# Transforms an action into the XHTML code for parsing and returns
|
20
|
+
# the result
|
21
|
+
def transform action
|
22
|
+
nagoro = wrap_compile(action)
|
23
|
+
file = action.template || action.method
|
24
|
+
nagoro.result(:file => file, :binding => action.binding)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Use file_or_result instead of reaction_or_file
|
28
|
+
def wrap_compile(action, template = nil)
|
29
|
+
template ||= file_or_result(action)
|
30
|
+
caching_compile(action, template)
|
31
|
+
end
|
32
|
+
|
33
|
+
def file_or_result(action)
|
34
|
+
result = render_method(action).to_s
|
35
|
+
|
36
|
+
if file = action.template
|
37
|
+
return File.new(file)
|
38
|
+
end
|
39
|
+
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
# Compile a template, applying all transformations from the pipeline
|
44
|
+
# and returning an instance of ::Nagoro::Template
|
45
|
+
|
46
|
+
def compile(action, template)
|
47
|
+
::Nagoro.compile(template)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,14 @@
|
|
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 Template
|
6
|
+
|
7
|
+
class None < Template
|
8
|
+
def self.transform action
|
9
|
+
render_method(action)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'redcloth'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
module Template
|
5
|
+
|
6
|
+
# Is responsible for compiling a template using the RedCloth templating engine.
|
7
|
+
# Can be found at: http://whytheluckystiff.net/ruby/redcloth/
|
8
|
+
|
9
|
+
class RedCloth < Erubis
|
10
|
+
ENGINES[self] = %w[ redcloth ]
|
11
|
+
|
12
|
+
class << self
|
13
|
+
# Take the action and directly transform it into html by RedCloth
|
14
|
+
def transform(action)
|
15
|
+
restrictions = action.controller.trait[:redcloth_options] || []
|
16
|
+
rules = action.controller.trait[:redcloth_options] || []
|
17
|
+
|
18
|
+
# Erubis -> RedCloth -> HTML
|
19
|
+
redcloth = ::RedCloth.new(super, restrictions)
|
20
|
+
redcloth.to_html(*rules)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,38 @@
|
|
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 'remarkably/engines/html'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Remarkably templating engine.
|
10
|
+
# Can be found at: http://rubyforge.org/projects/remarkably
|
11
|
+
|
12
|
+
class Remarkably < Template
|
13
|
+
ENGINES[self] = %w[ rem ]
|
14
|
+
|
15
|
+
class << self
|
16
|
+
|
17
|
+
# Entry point for Action#render
|
18
|
+
|
19
|
+
def transform action
|
20
|
+
result, file = result_and_file(action)
|
21
|
+
|
22
|
+
result = transform_string(file, action) if file
|
23
|
+
result.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
# Takes a string and action, sets args to action.args and then proceeds
|
27
|
+
# to instance_eval the string inside the action.instance
|
28
|
+
|
29
|
+
def transform_string(string, action)
|
30
|
+
action.instance.instance_eval do
|
31
|
+
args = action.params
|
32
|
+
instance_eval(string)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
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 'sass/engine'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Sass CSS templating engine.
|
10
|
+
# Can be found at: http://haml.hamptoncatlin.com/
|
11
|
+
|
12
|
+
class Sass < Template
|
13
|
+
|
14
|
+
ENGINES[self] = %w[ sass ]
|
15
|
+
|
16
|
+
class << self
|
17
|
+
|
18
|
+
# Transform via Sass templating engine
|
19
|
+
|
20
|
+
def transform action
|
21
|
+
if response = Response.current
|
22
|
+
response['Content-Type'] = "text/css"
|
23
|
+
end
|
24
|
+
sass = wrap_compile(action)
|
25
|
+
sass.to_css()
|
26
|
+
end
|
27
|
+
|
28
|
+
# Instantiates Sass::Engine with the template and sass_options trait from
|
29
|
+
# the controller.
|
30
|
+
|
31
|
+
def compile(action, template)
|
32
|
+
::Sass::Engine.new(template, action.controller.trait[:sass_options] || {})
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,79 @@
|
|
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 "tagz"
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Template
|
8
|
+
|
9
|
+
# Is responsible for compiling a template using the Tagz templating engine.
|
10
|
+
# Can be found at: http://rubyforge.org/projects/codeforpeople/
|
11
|
+
# gem install tagz
|
12
|
+
# be sure you get version 1.0 or higher
|
13
|
+
|
14
|
+
class Tagz < Template
|
15
|
+
ENGINES[self] = %w[ rb tagz ]
|
16
|
+
|
17
|
+
class << self
|
18
|
+
|
19
|
+
# Entry point for Action#render
|
20
|
+
|
21
|
+
def transform action
|
22
|
+
result, file = result_and_file(action)
|
23
|
+
if file
|
24
|
+
markup = "tagz{#{ file }}"
|
25
|
+
action.instance.extend Methods
|
26
|
+
result = eval markup, action.binding, file
|
27
|
+
end
|
28
|
+
result
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
# Methods defines a host of methods useful inside the context of a view
|
34
|
+
# including print style methods that output content rather that printing to
|
35
|
+
# STDOUT
|
36
|
+
|
37
|
+
module Methods
|
38
|
+
include ::Tagz
|
39
|
+
|
40
|
+
private
|
41
|
+
def << s
|
42
|
+
tagz << s; self
|
43
|
+
end
|
44
|
+
|
45
|
+
def concat *a
|
46
|
+
a.each{|s| tagz << s}; self
|
47
|
+
end
|
48
|
+
|
49
|
+
def puts *a
|
50
|
+
a.each{|elem| tagz << "#{ elem.to_s.chomp }#{ eol }"}
|
51
|
+
end
|
52
|
+
|
53
|
+
def print *a
|
54
|
+
a.each{|elem| tagz << elem}
|
55
|
+
end
|
56
|
+
|
57
|
+
def p *a
|
58
|
+
a.each{|elem| tagz << "#{ Rack::Utils.escape_html elem.inspect }#{ eol }"}
|
59
|
+
end
|
60
|
+
|
61
|
+
def pp *a
|
62
|
+
a.each{|elem| tagz << "#{ Rack::Utils.escape_html PP.pp(elem, '') }#{ eol }"}
|
63
|
+
end
|
64
|
+
|
65
|
+
def eol
|
66
|
+
if response.content_type =~ %r|text/plain|io
|
67
|
+
"\n"
|
68
|
+
else
|
69
|
+
"<br />"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def __ *a
|
74
|
+
concat eol
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require "tenjin"
|
2
|
+
require "tempfile"
|
3
|
+
|
4
|
+
# Tenjin does not work with a Binding, so helpers included by the controller
|
5
|
+
# will not be automatically available in templates. Instead we add support
|
6
|
+
# for popular helpers to its internal Context class to make them available.
|
7
|
+
class Tenjin::Context
|
8
|
+
include Ramaze::Helper::Methods
|
9
|
+
helper :link, :sendfile, :flash, :cgi
|
10
|
+
end
|
11
|
+
|
12
|
+
module Ramaze
|
13
|
+
module Template
|
14
|
+
|
15
|
+
# Is responsible for compiling a template using the Tenjin templating engine.
|
16
|
+
# Can be found at: http://www.kuwata-lab.com/tenjin/
|
17
|
+
#
|
18
|
+
# Instance variables in your action method are automatically available in
|
19
|
+
# the template:
|
20
|
+
#
|
21
|
+
# class MainController < Ramaze::Controller
|
22
|
+
# engine :Tenjin
|
23
|
+
# def index
|
24
|
+
# @names = ['Alice', 'Bob', 'Charlie']
|
25
|
+
# @greeting = 'Hello'
|
26
|
+
# %q{
|
27
|
+
# <html><body>
|
28
|
+
# <h1><?rb for name in @names ?><p>#{@greeting} #{name}</p><?rb end ?></h1>
|
29
|
+
# </body></html>
|
30
|
+
# }
|
31
|
+
# end
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# Note that only instance vars are available and methods (including helper methods)
|
35
|
+
# are not available in the template. A few common helpers are made generally available
|
36
|
+
# though by virtue of the modifications to Tenjin::Context at the top of this file.
|
37
|
+
|
38
|
+
class Tenjin < Template
|
39
|
+
|
40
|
+
ENGINES[self] = %w[ rbhtml tenjin ]
|
41
|
+
|
42
|
+
class << self
|
43
|
+
# Transforms an action into the XHTML code for parsing and returns
|
44
|
+
# the result.
|
45
|
+
def transform(action)
|
46
|
+
tenjin = wrap_compile(action)
|
47
|
+
# Tenjin can't deal with a Binding so we construct a hash for it.
|
48
|
+
tenjin.render(context(action))
|
49
|
+
end
|
50
|
+
|
51
|
+
# Return a hash of all instance variables from the action.
|
52
|
+
# For each instance var @foo, we put :foo => @foo in the hash.
|
53
|
+
def context action
|
54
|
+
hash = {}
|
55
|
+
action_binding = action.binding
|
56
|
+
var_names = action.instance.instance_variables
|
57
|
+
var_names.each do |var_name|
|
58
|
+
# Strip the @ from the front of the var name to use as hash key,
|
59
|
+
# then simply use the value of the instance var as the hash value.
|
60
|
+
hash[var_name[1..-1]] = eval(var_name, action_binding)
|
61
|
+
end
|
62
|
+
hash
|
63
|
+
end
|
64
|
+
|
65
|
+
# Compile a template, returning an instance of ::Tenjin::Template.
|
66
|
+
def compile(action, template)
|
67
|
+
tenjin = ::Tenjin::Template.new
|
68
|
+
tenjin.convert(template)
|
69
|
+
return tenjin
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# Copyright (c) 2007 Stephan Maka stephan@spaceboyz.net
|
2
|
+
# All files in this distribution are subject to the terms of the Ruby license.
|
3
|
+
|
4
|
+
require 'xml/libxml'
|
5
|
+
require 'xml/xslt'
|
6
|
+
require 'thread'
|
7
|
+
|
8
|
+
module Ramaze
|
9
|
+
|
10
|
+
# Use the Gestalt helper to put your controller result
|
11
|
+
# into proper XML form
|
12
|
+
#
|
13
|
+
# TODO:
|
14
|
+
# * Error handling
|
15
|
+
# * Maybe prevent extFunction to be called by HTTP
|
16
|
+
module Template
|
17
|
+
class XSLT < Template
|
18
|
+
ENGINES[self] = %w[ xsl ]
|
19
|
+
|
20
|
+
XSLT_EXT_FUNCTIONS_LOCK = Mutex.new
|
21
|
+
|
22
|
+
class << self
|
23
|
+
|
24
|
+
# Entry point for Action#render
|
25
|
+
|
26
|
+
def transform action
|
27
|
+
|
28
|
+
if options = action.instance.ancestral_trait[:xslt_options] and
|
29
|
+
fun_xmlns = options[:fun_xmlns]
|
30
|
+
# If a controller uses extFunctions, lock the whole
|
31
|
+
# transform action with a Mutex to prevent mixing
|
32
|
+
# extFunction binding and callback of two controller
|
33
|
+
# instances with one fun_xmlns.
|
34
|
+
ext_functions_synchronize do
|
35
|
+
register_ext_functions action.instance, fun_xmlns
|
36
|
+
do_transform action
|
37
|
+
end
|
38
|
+
|
39
|
+
else
|
40
|
+
do_transform action
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
# further abstraction for the transform
|
48
|
+
def do_transform(action)
|
49
|
+
result, file = result_and_file(action)
|
50
|
+
|
51
|
+
xslt = XML::XSLT.new
|
52
|
+
xslt.xsl = action.template
|
53
|
+
xslt.xml = result
|
54
|
+
xslt.serve
|
55
|
+
end
|
56
|
+
|
57
|
+
# Synchronize the block to run with the mutex
|
58
|
+
def ext_functions_synchronize(&block)
|
59
|
+
XSLT_EXT_FUNCTIONS_LOCK.synchronize(&block)
|
60
|
+
end
|
61
|
+
|
62
|
+
# Expose functors
|
63
|
+
def register_ext_functions instance, fun_xmlns
|
64
|
+
|
65
|
+
instance.methods.each do |method|
|
66
|
+
if method =~ /^xslt_.+/
|
67
|
+
method_name = method[5..-1]
|
68
|
+
|
69
|
+
proxy_instance = make_functor(method_name.intern) { |*a|
|
70
|
+
instance.send method.intern, *a
|
71
|
+
}
|
72
|
+
|
73
|
+
XML::XSLT.extFunction method_name.gsub('_', '-'), fun_xmlns, proxy_instance
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
# Can be replaced by Ruby Facets' Functor pattern
|
80
|
+
def make_functor(m, &block)
|
81
|
+
# Create anonymous class and instantiate;
|
82
|
+
# anonymous because only this one object with this
|
83
|
+
# particular custom method should call &block
|
84
|
+
o = Class.new.new
|
85
|
+
|
86
|
+
class << o
|
87
|
+
# Delayed creation of method
|
88
|
+
def create_method(name, &block)
|
89
|
+
self.class.send(:define_method, name, &block)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
o.create_method(m, &block)
|
94
|
+
o
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,87 @@
|
|
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
|
+
# This module serves as a namespace for all templates, it will autoload
|
5
|
+
# Amrita2, Erubis, Haml, Liquid and Markaby if you refer to them.
|
6
|
+
|
7
|
+
module Ramaze
|
8
|
+
|
9
|
+
# Namespace for templating.
|
10
|
+
|
11
|
+
module Template
|
12
|
+
|
13
|
+
COMPILED = {} unless defined?(COMPILED)
|
14
|
+
|
15
|
+
# Place register_engine puts the class and extensions for templating engines
|
16
|
+
|
17
|
+
ENGINES = {} unless defined?(ENGINES)
|
18
|
+
|
19
|
+
AVAILABLE_ENGINES = %w[
|
20
|
+
Amrita2 Builder Erubis Haml Liquid Markaby Maruku Nagoro None RedCloth
|
21
|
+
Remarkably Sass Tagz Tenjin XSLT
|
22
|
+
]
|
23
|
+
|
24
|
+
AVAILABLE_ENGINES.each do |const|
|
25
|
+
autoload(const, "ramaze/template/#{const.downcase}")
|
26
|
+
end
|
27
|
+
|
28
|
+
# The superclass for all templates, contains the shared behaviour of
|
29
|
+
# the templates and includes Ramaze::Helper::Methods
|
30
|
+
|
31
|
+
class Template
|
32
|
+
include Ramaze::Helper::Methods
|
33
|
+
|
34
|
+
class << self
|
35
|
+
|
36
|
+
# calls result_and_file with the given action and returns the first of
|
37
|
+
# the result of the controller or content of the file.
|
38
|
+
|
39
|
+
def reaction_or_file action
|
40
|
+
result_and_file(action).reverse.compact.first
|
41
|
+
end
|
42
|
+
|
43
|
+
# Takes an Action and returns the result from sending the action.method
|
44
|
+
# to the controller via render_method and reads the contents of the file
|
45
|
+
# if given.
|
46
|
+
|
47
|
+
def result_and_file(action)
|
48
|
+
result = render_method(action)
|
49
|
+
|
50
|
+
if file = action.template
|
51
|
+
content = File.read(file)
|
52
|
+
end
|
53
|
+
|
54
|
+
[result, content]
|
55
|
+
end
|
56
|
+
|
57
|
+
# returns nil if no method is on the action, otherwise it will send the
|
58
|
+
# action and optional parameters to the controller via __send__ and
|
59
|
+
# return the unaltered result
|
60
|
+
|
61
|
+
def render_method(action)
|
62
|
+
return unless method = action.method
|
63
|
+
action.instance.__send__(method, *action.params)
|
64
|
+
end
|
65
|
+
|
66
|
+
# This is a wrapper to use Global.compile without even thinking about
|
67
|
+
# it. Don't use it if your engine is not based on a compile/eval
|
68
|
+
# principle.
|
69
|
+
|
70
|
+
def wrap_compile(action, template = nil)
|
71
|
+
template ||= reaction_or_file(action).to_s
|
72
|
+
caching_compile(action, template)
|
73
|
+
end
|
74
|
+
|
75
|
+
# If Global.compile is enabled try to find the action in the cache,
|
76
|
+
# otherwise give a new compiled object back.
|
77
|
+
def caching_compile(action, template)
|
78
|
+
if Global.compile && action.template
|
79
|
+
Cache.compiled[action.relaxed_hash] ||= compile(action, template)
|
80
|
+
else
|
81
|
+
compile(action, template)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,48 @@
|
|
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/tool/project_creator'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module Tool
|
8
|
+
|
9
|
+
# Create is a simple class used to create new projects based on the proto
|
10
|
+
# directory.
|
11
|
+
#
|
12
|
+
# It is primarly used for this command:
|
13
|
+
#
|
14
|
+
# ramaze --create project
|
15
|
+
#
|
16
|
+
# where project is the directory you want the content put into.
|
17
|
+
|
18
|
+
class Create
|
19
|
+
|
20
|
+
# Default options passed to Create::create
|
21
|
+
# :proto is the directory to duplicate
|
22
|
+
# :amend no files may be overwritten but missing files will be added
|
23
|
+
# :force will overwrite existing files
|
24
|
+
# :layout copy one subdirectory in +proto+
|
25
|
+
|
26
|
+
DEFAULT = {
|
27
|
+
:proto => File.join(::Ramaze::BASEDIR, 'proto'),
|
28
|
+
:amend => false,
|
29
|
+
:force => false,
|
30
|
+
:layout => '/',
|
31
|
+
}
|
32
|
+
|
33
|
+
# Using ProjectCreator to copy all files and directories from lib/proto
|
34
|
+
# to another location.
|
35
|
+
# +options+ are described in the DEFAULT constant and should be:
|
36
|
+
# :force => (true|false|nil)
|
37
|
+
# :amend => (true|false|nil)
|
38
|
+
# :layout => (String|nil)
|
39
|
+
# :proto => String
|
40
|
+
|
41
|
+
def self.create(project, options = {})
|
42
|
+
options = DEFAULT.merge(options)
|
43
|
+
creator = ProjectCreator.new(project, options)
|
44
|
+
creator.create
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
def self.daemonize(runner, instruction, options = {})
|
5
|
+
puts "Instructing daemonize to: #{instruction}"
|
6
|
+
require 'daemons'
|
7
|
+
|
8
|
+
pids = File.join(Dir.tmpdir, 'ramaze.pids')
|
9
|
+
FileUtils.mkdir_p(pids)
|
10
|
+
|
11
|
+
# FIXME: there's a much better way, gotta search irc logs.
|
12
|
+
unless File.executable?(runner)
|
13
|
+
mode = File.stat(runner).mode.to_s(8)
|
14
|
+
mode[3,1] = '7'
|
15
|
+
File.chmod(mode.to_i(8), runner)
|
16
|
+
end
|
17
|
+
|
18
|
+
content = File.readlines(runner)
|
19
|
+
content.unshift('#!/usr/bin/env ruby') unless content[0] =~ /#!/
|
20
|
+
File.open(runner, 'w+'){|io| io.puts(content) }
|
21
|
+
|
22
|
+
options = {
|
23
|
+
:app_name => File.basename(File.dirname(runner)),
|
24
|
+
:ARGV => [instruction],
|
25
|
+
:script => runner,
|
26
|
+
:dir_mode => :normal,
|
27
|
+
:dir => pids,
|
28
|
+
:multiple => false,
|
29
|
+
:ontop => false,
|
30
|
+
:mode => :exec,
|
31
|
+
:backtrace => true,
|
32
|
+
:monitor => true,
|
33
|
+
}.merge(options)
|
34
|
+
|
35
|
+
Daemons.run(runner, options)
|
36
|
+
end
|
37
|
+
end
|