ramaze 0.3.9.1 → 2008.06
Sign up to get free protection for your applications and to get access to all the features.
- data/{doc/README → README.markdown} +78 -32
- data/Rakefile +53 -50
- 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 +32 -122
- data/cache.yaml +7 -0
- data/doc/AUTHORS +26 -22
- data/doc/CHANGELOG +16720 -3907
- data/doc/INSTALL +77 -19
- data/doc/LEGAL +0 -4
- data/doc/meta/announcement.txt +43 -54
- data/doc/meta/configuration.txt +3 -2
- data/doc/readme_chunks/examples.txt +2 -2
- data/doc/readme_chunks/installing.txt +66 -20
- data/doc/tutorial/todolist.html +338 -520
- data/doc/tutorial/todolist.mkd +36 -2
- data/examples/{auth → app/auth}/auth.rb +0 -0
- data/examples/{auth → app/auth}/template/layout.haml +0 -0
- data/examples/{auth → app/auth}/template/login.haml +0 -0
- data/examples/{blog → app/blog}/README +0 -0
- data/examples/{blog → app/blog}/controller/main.rb +1 -1
- data/examples/{blog → app/blog}/model/entry.rb +1 -1
- data/examples/{blog → app/blog}/public/styles/blog.css +0 -0
- data/examples/{blog → app/blog}/spec/blog.rb +2 -2
- data/examples/{blog → app/blog}/start.rb +0 -0
- data/examples/{blog → app/blog}/view/edit.xhtml +0 -0
- data/examples/{blog → app/blog}/view/index.xhtml +0 -0
- data/examples/{blog → app/blog}/view/layout.xhtml +0 -0
- data/examples/{blog → app/blog}/view/new.xhtml +0 -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/{rammit → app/rammit}/spec/rammit.rb +2 -1
- data/examples/{rammit → app/rammit}/src/controller/main.rb +0 -0
- data/examples/{rammit → app/rammit}/src/controller/page.rb +0 -0
- data/examples/{rammit → app/rammit}/src/model.rb +0 -0
- data/examples/{rammit → app/rammit}/start.rb +0 -0
- data/examples/{rammit → app/rammit}/template/index.xhtml +0 -0
- data/examples/{rammit → app/rammit}/template/page/view.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/Rakefile +0 -1
- data/examples/{rapaste → app/rapaste}/controller/paste.rb +3 -3
- data/examples/{rapaste → app/rapaste}/model/paste.rb +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/active4d.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/all_hallows_eve.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/amy.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/blackboard.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/brilliance_black.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/brilliance_dull.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/cobalt.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/dawn.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/display.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/eiffel.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/espresso_libre.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/idle.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/iplastic.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/lazy.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/mac_classic.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/magicwb_amiga.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/pastels_on_dark.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/slush_poppies.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/spacecadet.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/sunburst.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/twilight.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/css/zenburnesque.css +0 -0
- data/examples/{rapaste → app/rapaste}/public/js/jquery.js +0 -0
- data/examples/{rapaste → app/rapaste}/spec/rapaste.rb +2 -2
- data/examples/{rapaste → app/rapaste}/start.rb +0 -0
- data/examples/{rapaste → app/rapaste}/view/copy.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/view/index.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/view/layout.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/view/list.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/view/search.xhtml +0 -0
- data/examples/{rapaste → app/rapaste}/view/view.xhtml +0 -0
- data/examples/{sourceview → app/sourceview}/public/coderay.css +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/file.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/folder.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-collapsable-last.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-collapsable.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-expandable-last.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-expandable.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-item-last.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/images/tv-item.gif +0 -0
- data/examples/{sourceview → app/sourceview}/public/jquery.js +0 -0
- data/examples/{sourceview → app/sourceview}/public/jquery.treeview.css +0 -0
- data/examples/{sourceview → app/sourceview}/public/jquery.treeview.js +0 -0
- data/examples/{sourceview → app/sourceview}/public/sourceview.js +0 -0
- data/examples/{sourceview → app/sourceview}/sourceview.rb +1 -1
- data/examples/{sourceview → app/sourceview}/template/index.haml +0 -0
- data/examples/{todolist → app/todolist}/README +0 -0
- data/examples/{todolist → app/todolist}/public/favicon.ico +0 -0
- data/examples/{todolist → app/todolist}/public/js/jquery.js +0 -0
- data/examples/{todolist → app/todolist}/public/ramaze.png +0 -0
- data/examples/{todolist → app/todolist}/spec/todolist.rb +2 -2
- data/examples/{todolist → app/todolist}/src/controller/main.rb +0 -0
- data/examples/{todolist → app/todolist}/src/element/page.rb +0 -0
- data/examples/{todolist → app/todolist}/src/model.rb +0 -0
- data/examples/{todolist → app/todolist}/start.rb +0 -0
- data/examples/{todolist → app/todolist}/template/index.xhtml +0 -0
- data/examples/{todolist → app/todolist}/template/new.xhtml +0 -0
- data/examples/{upload → app/upload}/start.rb +0 -0
- data/examples/{upload → app/upload}/view/index.xhtml +0 -0
- data/examples/{whywiki → app/whywiki}/spec/whywiki.rb +3 -3
- data/examples/{whywiki → app/whywiki}/start.rb +0 -0
- data/examples/{whywiki → app/whywiki}/template/edit.xhtml +0 -0
- data/examples/{whywiki → app/whywiki}/template/show.xhtml +0 -0
- data/examples/{wikore → app/wikore}/spec/wikore.rb +2 -2
- data/examples/{wikore → app/wikore}/src/controller.rb +0 -0
- data/examples/{wikore → app/wikore}/src/model.rb +0 -0
- data/examples/{wikore → app/wikore}/start.rb +0 -0
- data/examples/{wikore → app/wikore}/template/index.xhtml +0 -0
- data/examples/{wiktacular → app/wiktacular}/README +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/link/2007-07-20_19-45-51.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/link/current.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_16-31-33.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_19-21-12.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_19-23-10.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/main/2007-07-20_19-45-07.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/main/current.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/markdown/current.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-20_16-43-46.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-20_19-43-50.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-01.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-46-32.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-08.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/2007-07-21_18-47-54.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/mkd/testing/current.mkd +0 -0
- data/examples/{wiktacular → app/wiktacular}/public/favicon.ico +0 -0
- data/examples/{wiktacular → app/wiktacular}/public/screen.css +0 -0
- data/examples/{wiktacular → app/wiktacular}/spec/wiktacular.rb +4 -5
- data/examples/{wiktacular → app/wiktacular}/src/controller.rb +0 -0
- data/examples/{wiktacular → app/wiktacular}/src/model.rb +0 -0
- data/examples/{wiktacular → app/wiktacular}/start.rb +0 -0
- data/examples/{wiktacular → app/wiktacular}/template/edit.xhtml +0 -0
- data/examples/{wiktacular → app/wiktacular}/template/html_layout.xhtml +0 -0
- data/examples/{wiktacular → app/wiktacular}/template/index.xhtml +0 -0
- data/examples/{wiktacular → app/wiktacular}/template/new.xhtml +0 -0
- data/examples/{element.rb → basic/element.rb} +0 -0
- data/examples/basic/gestalt.rb +27 -0
- data/examples/{hello.rb → basic/hello.rb} +0 -0
- data/examples/{layout.rb → basic/layout.rb} +0 -0
- data/examples/{linking.rb → basic/linking.rb} +0 -0
- data/examples/{simple.rb → basic/simple.rb} +3 -3
- data/examples/{caching.rb → helpers/cache.rb} +0 -0
- data/examples/helpers/form_with_sequel.rb +24 -0
- data/examples/helpers/httpdigest.rb +50 -0
- data/examples/{identity.rb → helpers/identity.rb} +0 -0
- data/examples/{nitro_form.rb → helpers/nitro_form.rb} +0 -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/{css.rb → misc/css.rb} +0 -0
- data/examples/{facebook.rb → misc/facebook.rb} +0 -0
- data/examples/{memleak_detector.rb → misc/memleak_detector.rb} +0 -0
- data/examples/misc/nagoro_element.rb +43 -0
- data/examples/{ramaise.rb → misc/ramaise.rb} +0 -0
- data/examples/misc/rapp.rb +45 -0
- data/examples/misc/sequel_scaffolding.rb +34 -0
- data/examples/{simple_auth.rb → misc/simple_auth.rb} +0 -0
- data/examples/templates/template_amrita2.rb +1 -1
- data/examples/templates/template_erubis.rb +2 -2
- data/examples/templates/template_ezamar.rb +1 -1
- data/examples/templates/template_haml.rb +2 -2
- data/examples/templates/template_liquid.rb +2 -2
- data/examples/templates/template_markaby.rb +1 -1
- data/examples/templates/template_nagoro.rb +1 -1
- data/examples/templates/template_redcloth.rb +2 -2
- data/examples/templates/template_remarkably.rb +1 -1
- data/examples/templates/template_tenjin.rb +5 -9
- data/examples/templates/template_xslt.rb +1 -1
- data/lib/proto/public/dispatch.fcgi +0 -0
- data/lib/proto/public/js/jquery.js +750 -577
- data/lib/proto/spec/main.rb +1 -1
- data/lib/proto/start.ru +8 -0
- data/lib/proto/view/page.xhtml +13 -1
- data/lib/ramaze.rb +32 -15
- data/lib/ramaze/action.rb +18 -1
- data/lib/ramaze/action/render.rb +45 -17
- data/lib/ramaze/adapter.rb +8 -7
- data/lib/ramaze/adapter/base.rb +79 -13
- data/lib/ramaze/adapter/cgi.rb +5 -10
- data/lib/ramaze/adapter/ebb.rb +6 -20
- data/lib/ramaze/adapter/fake.rb +12 -0
- data/lib/ramaze/adapter/fcgi.rb +5 -11
- data/lib/ramaze/adapter/lsws.rb +5 -9
- data/lib/ramaze/adapter/mongrel.rb +5 -9
- data/lib/ramaze/adapter/scgi.rb +4 -8
- data/lib/ramaze/adapter/thin.rb +6 -11
- data/lib/ramaze/adapter/webrick.rb +13 -22
- data/lib/ramaze/cache.rb +36 -10
- data/lib/ramaze/cache/memcached.rb +3 -2
- data/lib/ramaze/contrib.rb +1 -1
- data/lib/ramaze/contrib/email.rb +1 -1
- data/lib/ramaze/contrib/file_cache.rb +1 -1
- data/lib/ramaze/contrib/gems.rb +79 -0
- data/lib/ramaze/contrib/gettext/po.rb +0 -0
- data/lib/ramaze/contrib/profiling.rb +1 -1
- data/lib/ramaze/contrib/rest.rb +14 -0
- data/lib/ramaze/controller.rb +45 -12
- data/lib/ramaze/controller/error.rb +4 -4
- data/lib/ramaze/controller/resolve.rb +61 -42
- data/lib/ramaze/current.rb +2 -2
- data/lib/ramaze/current/request.rb +25 -2
- data/lib/ramaze/current/response.rb +8 -0
- data/lib/ramaze/current/session.rb +64 -36
- data/lib/ramaze/current/session/flash.rb +14 -2
- data/lib/ramaze/current/session/hash.rb +3 -2
- data/lib/ramaze/dispatcher.rb +25 -12
- data/lib/ramaze/dispatcher/action.rb +12 -3
- data/lib/ramaze/dispatcher/directory.rb +4 -1
- data/lib/ramaze/dispatcher/error.rb +3 -3
- data/lib/ramaze/dispatcher/file.rb +11 -3
- data/lib/ramaze/gestalt.rb +1 -1
- data/lib/ramaze/helper.rb +17 -21
- data/lib/ramaze/helper/aspect.rb +20 -14
- data/lib/ramaze/helper/auth.rb +1 -1
- data/lib/ramaze/helper/cache.rb +3 -6
- data/lib/ramaze/helper/cgi.rb +6 -2
- data/lib/ramaze/helper/flash.rb +7 -7
- data/lib/ramaze/helper/form.rb +281 -0
- data/lib/ramaze/helper/formatting.rb +76 -0
- data/lib/ramaze/helper/gestalt.rb +15 -0
- data/lib/ramaze/helper/gravatar.rb +15 -0
- data/lib/ramaze/helper/httpdigest.rb +48 -0
- data/lib/ramaze/helper/identity.rb +87 -62
- data/lib/ramaze/helper/partial.rb +11 -2
- data/lib/ramaze/helper/redirect.rb +12 -3
- data/lib/ramaze/helper/rest.rb +43 -0
- data/lib/ramaze/helper/sendfile.rb +1 -3
- data/lib/ramaze/helper/sequel.rb +3 -0
- data/lib/ramaze/helper/simple_captcha.rb +31 -0
- data/lib/ramaze/helper/stack.rb +14 -5
- data/lib/ramaze/helper/user.rb +86 -34
- data/lib/ramaze/helper/xhtml.rb +23 -0
- data/lib/ramaze/log.rb +1 -2
- data/lib/ramaze/log/analogger.rb +24 -19
- data/lib/ramaze/log/growl.rb +24 -19
- data/lib/ramaze/log/hub.rb +25 -22
- data/lib/ramaze/log/informer.rb +104 -99
- data/lib/ramaze/log/knotify.rb +17 -12
- data/lib/ramaze/log/logger.rb +14 -8
- data/lib/ramaze/log/logging.rb +63 -60
- data/lib/ramaze/log/syslog.rb +24 -19
- data/lib/ramaze/log/xosd.rb +77 -71
- data/lib/ramaze/option.rb +153 -0
- data/lib/ramaze/option/dsl.rb +45 -0
- data/lib/ramaze/option/holder.rb +153 -0
- data/lib/ramaze/option/merger.rb +108 -0
- data/lib/ramaze/route.rb +15 -2
- data/lib/ramaze/setup.rb +50 -0
- data/lib/ramaze/snippets/binding/locals.rb +1 -1
- data/lib/ramaze/snippets/dictionary.rb +3 -3
- data/lib/ramaze/snippets/divide.rb +7 -7
- data/lib/ramaze/snippets/kernel/__dir__.rb +1 -1
- data/lib/ramaze/snippets/kernel/acquire.rb +0 -5
- data/lib/ramaze/snippets/metaid.rb +1 -1
- data/lib/ramaze/snippets/numeric/filesize_format.rb +11 -5
- data/lib/ramaze/snippets/object/instance_variable_defined.rb +8 -0
- data/lib/ramaze/snippets/object/scope.rb +1 -1
- data/lib/ramaze/snippets/object/thread_accessor.rb +1 -1
- data/lib/ramaze/snippets/ordered_set.rb +5 -1
- data/lib/ramaze/snippets/ramaze/deprecated.rb +7 -0
- data/lib/ramaze/snippets/ramaze/thread_accessor.rb +15 -1
- data/lib/ramaze/snippets/string/esc.rb +2 -2
- data/lib/ramaze/snippets/string/start_with.rb +1 -0
- data/lib/ramaze/snippets/string/unindent.rb +9 -1
- data/lib/ramaze/snippets/struct/values_at.rb +17 -1
- data/lib/ramaze/snippets/thread/into.rb +1 -1
- data/lib/ramaze/sourcereload.rb +83 -76
- data/lib/ramaze/spec/helper.rb +39 -26
- data/lib/ramaze/spec/helper/bacon.rb +5 -5
- data/lib/ramaze/spec/helper/mock_http.rb +1 -7
- data/lib/ramaze/spec/helper/pretty_output.rb +10 -2
- data/lib/ramaze/spec/helper/requester.rb +14 -0
- data/lib/ramaze/template.rb +6 -3
- data/lib/ramaze/template/amrita2.rb +1 -0
- data/lib/ramaze/template/erubis.rb +7 -1
- data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
- data/lib/ramaze/template/nagoro.rb +1 -0
- data/lib/ramaze/template/redcloth.rb +1 -0
- data/lib/ramaze/template/tagz.rb +8 -8
- data/lib/ramaze/template/tenjin.rb +42 -2
- data/lib/ramaze/template/xslt.rb +4 -0
- data/lib/ramaze/tool/daemonize.rb +37 -0
- data/lib/ramaze/tool/localize.rb +142 -106
- data/lib/ramaze/version.rb +2 -10
- data/rake_tasks/conf.rake +11 -13
- data/rake_tasks/gem.rake +59 -37
- data/rake_tasks/git.rake +41 -0
- data/rake_tasks/maintenance.rake +263 -299
- data/rake_tasks/release.rake +63 -0
- data/rake_tasks/spec.rake +1 -1
- data/ramaze.gemspec +731 -0
- data/spec/contrib/profiling.rb +5 -2
- data/spec/examples/caching.rb +1 -1
- data/spec/examples/css.rb +1 -1
- data/spec/examples/element.rb +1 -1
- data/spec/examples/hello.rb +1 -1
- data/spec/examples/linking.rb +1 -1
- data/spec/examples/simple.rb +1 -1
- data/spec/examples/simple_auth.rb +1 -1
- data/spec/ramaze/action/cache.rb +58 -14
- data/spec/ramaze/action/file_cache.rb +48 -0
- data/spec/ramaze/action/layout.rb +2 -2
- data/spec/ramaze/action/render.rb +1 -2
- data/spec/ramaze/action/{template → view}/bar.xhtml +0 -0
- data/spec/ramaze/action/{template → view}/instancevars/layout.xhtml +0 -0
- data/spec/ramaze/action/{template → view}/other_wrapper.xhtml +0 -0
- data/spec/ramaze/action/{template → view}/single_wrapper.xhtml +0 -0
- data/spec/ramaze/action/{template → view}/sub/sub_wrapper.xhtml +0 -0
- data/spec/ramaze/adapter.rb +29 -2
- data/spec/ramaze/adapter/ebb.rb +12 -0
- data/spec/ramaze/cache.rb +82 -15
- data/spec/ramaze/controller.rb +6 -3
- data/spec/ramaze/controller/actionless_templates.rb +2 -2
- data/spec/ramaze/controller/resolve.rb +1 -1
- data/spec/ramaze/controller/template_resolving.rb +4 -6
- data/spec/ramaze/controller/{template → view}/greet.xhtml +0 -0
- data/spec/ramaze/controller/{template → view}/list.xhtml +0 -0
- data/spec/ramaze/controller/{template → view}/other/greet/other.xhtml +0 -0
- data/spec/ramaze/controller/{template → view}/other_wrapper.xhtml +0 -0
- data/spec/ramaze/error.rb +1 -1
- data/spec/ramaze/helper/aspect.rb +4 -4
- data/spec/ramaze/helper/cache.rb +56 -39
- data/spec/ramaze/helper/flash.rb +14 -1
- data/spec/ramaze/helper/form.rb +118 -0
- data/spec/ramaze/helper/formatting.rb +21 -0
- data/spec/ramaze/helper/link.rb +2 -2
- data/spec/ramaze/helper/pager.rb +2 -2
- data/spec/ramaze/helper/partial.rb +13 -1
- data/spec/ramaze/helper/simple_captcha.rb +22 -0
- data/spec/ramaze/helper/user.rb +7 -10
- data/spec/ramaze/helper/{template → view}/locals.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/loop.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/num.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/partial.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/recursive.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/recursive_local_ivars.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/recursive_locals.xhtml +0 -0
- data/spec/ramaze/helper/{template → view}/test_template.xhtml +0 -0
- data/spec/ramaze/localize.rb +22 -0
- data/spec/ramaze/log/informer.rb +10 -10
- data/spec/ramaze/log/syslog.rb +1 -1
- data/spec/ramaze/request.rb +13 -1
- data/spec/ramaze/request/ebb.rb +9 -0
- data/spec/ramaze/rewrite.rb +36 -0
- data/spec/ramaze/rewrite/file.css +1 -0
- data/spec/ramaze/route.rb +1 -0
- data/spec/ramaze/template.rb +5 -5
- data/spec/ramaze/template/amrita2.rb +1 -1
- data/spec/ramaze/template/builder.rb +18 -22
- data/spec/ramaze/template/erubis.rb +1 -1
- data/spec/ramaze/template/ezamar.rb +1 -1
- data/spec/ramaze/template/haml.rb +2 -2
- data/spec/ramaze/template/liquid.rb +1 -1
- data/spec/ramaze/template/markaby.rb +1 -1
- data/spec/ramaze/template/nagoro.rb +1 -1
- data/spec/ramaze/template/redcloth.rb +1 -1
- data/spec/ramaze/template/remarkably.rb +1 -1
- data/spec/ramaze/template/sass.rb +1 -1
- data/spec/ramaze/template/tagz.rb +1 -1
- data/spec/ramaze/template/tenjin.rb +4 -6
- data/spec/ramaze/template/xslt.rb +1 -1
- data/spec/snippets/string/unindent.rb +6 -0
- data/spec/snippets/struct/values_at.rb +8 -0
- metadata +522 -487
- data/doc/ProjectInfo +0 -53
- data/doc/migrate/1110_to_1111.txt +0 -131
- data/lib/ramaze/contrib/route.rb +0 -22
- data/lib/ramaze/global.rb +0 -116
- data/lib/ramaze/global/dsl.rb +0 -39
- data/lib/ramaze/global/globalstruct.rb +0 -147
- data/lib/ramaze/helper/inform.rb +0 -40
- data/lib/ramaze/inform.rb +0 -4
- data/lib/ramaze/snippets/kernel/aquire.rb +0 -1
- data/lib/vendor/bacon.rb +0 -323
- data/rake_tasks/darcs.rake +0 -5
- data/spec/contrib/route.rb +0 -36
data/lib/ramaze/spec/helper.rb
CHANGED
@@ -9,22 +9,25 @@ end
|
|
9
9
|
require 'ramaze'
|
10
10
|
require 'ramaze/spec/helper/bacon'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
12
|
+
# Invoke ramaze with a set of default options suitable for testing.
|
13
|
+
# you may pass your options that will override the defaults.
|
14
|
+
class Bacon::Context
|
15
|
+
# Skip start from required files
|
16
|
+
Ramaze.trait[:started] = true
|
17
|
+
|
18
|
+
def ramaze(options = {})
|
19
|
+
options = {
|
20
|
+
:adapter => false,
|
21
|
+
:run_loose => true,
|
22
|
+
:error_page => false,
|
23
|
+
:port => 7007,
|
24
|
+
:host => '127.0.0.1',
|
25
|
+
:sourcereload => false,
|
26
|
+
:origin => :spec,
|
27
|
+
}.merge(options)
|
28
|
+
|
29
|
+
Ramaze.start!(options)
|
30
|
+
end
|
28
31
|
end
|
29
32
|
|
30
33
|
SPEC_REQUIRE_DEPENDENCY = {
|
@@ -45,11 +48,6 @@ rescue LoadError => ex
|
|
45
48
|
exit
|
46
49
|
end
|
47
50
|
|
48
|
-
def testcase_requires(*following)
|
49
|
-
warn "'testcase_requires' is being deprecated, please use 'spec_require' instead"
|
50
|
-
spec_require(*following)
|
51
|
-
end
|
52
|
-
|
53
51
|
shared "http" do
|
54
52
|
require 'ramaze/spec/helper/mock_http'
|
55
53
|
extend MockHTTP
|
@@ -61,9 +59,14 @@ shared 'browser' do
|
|
61
59
|
end
|
62
60
|
|
63
61
|
shared 'requester' do
|
62
|
+
require 'ramaze/spec/helper/mock_http'
|
64
63
|
require 'ramaze/spec/helper/requester'
|
64
|
+
extend Requester
|
65
|
+
extend MockHTTP
|
65
66
|
end
|
66
67
|
|
68
|
+
# make it easier to use XPATH on the MockResponse#body - in cases you can't use
|
69
|
+
# Hpricot or if you want to keep dependencies down
|
67
70
|
shared 'xpath' do
|
68
71
|
behaves_like 'http'
|
69
72
|
|
@@ -71,36 +74,44 @@ shared 'xpath' do
|
|
71
74
|
require 'rexml/xpath'
|
72
75
|
|
73
76
|
class Rack::MockResponse
|
77
|
+
# Delegate to REXML::XPath::match
|
74
78
|
def match(xpath = '*')
|
75
79
|
REXML::XPath::match(REXML::Document.new(body), xpath)
|
76
80
|
end
|
77
81
|
alias / match
|
78
82
|
alias search match
|
79
83
|
|
84
|
+
# Delegate to REXML::XPath::first
|
80
85
|
def first(xpath = '*')
|
81
86
|
REXML::XPath::first(REXML::Document.new(body), xpath)
|
82
87
|
end
|
83
88
|
alias at first
|
84
89
|
|
90
|
+
# Delegate to REXML::XPath::each
|
85
91
|
def each(xpath = '*', &block)
|
86
92
|
REXML::XPath::each(REXML::Document.new(body), xpath, &block)
|
87
93
|
end
|
88
94
|
end
|
89
95
|
|
90
|
-
|
91
|
-
|
96
|
+
# Delegate to REXML::XPath::match
|
97
|
+
def xp_match(obj, xpath = '*', &block)
|
98
|
+
REXML::XPath::match(rexml_doc(obj), xpath, &block)
|
92
99
|
end
|
93
100
|
alias xp_search xp_match
|
94
101
|
|
95
|
-
|
96
|
-
|
102
|
+
# Delegate to REXML::XPath::first
|
103
|
+
def xp_first(obj, xpath = '*', &block)
|
104
|
+
REXML::XPath::first(rexml_doc(obj), xpath, &block)
|
97
105
|
end
|
98
106
|
alias xp_at xp_first
|
99
107
|
|
108
|
+
# Delegate to REXML::XPath::each
|
100
109
|
def xp_each(obj, xpath = '*', &block)
|
101
|
-
XPath::each(rexml_doc(
|
110
|
+
REXML::XPath::each(rexml_doc(obj), xpath, &block)
|
102
111
|
end
|
103
112
|
|
113
|
+
# Delegate to REXML::Document.new - return the obj if it's already an
|
114
|
+
# instance.
|
104
115
|
def rexml_doc(obj)
|
105
116
|
case obj
|
106
117
|
when REXML::Document, REXML::Element
|
@@ -112,10 +123,12 @@ shared 'xpath' do
|
|
112
123
|
end
|
113
124
|
|
114
125
|
shared 'resolve' do
|
126
|
+
# shortcut for Ramaze::Controller::resolve
|
115
127
|
def resolve(url)
|
116
128
|
Ramaze::Controller::resolve(url)
|
117
129
|
end
|
118
130
|
|
131
|
+
# Shortcut to stack on the instance of Action return from resolve
|
119
132
|
def stack(url, &block)
|
120
133
|
resolve(url).stack(&block)
|
121
134
|
end
|
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require '
|
1
|
+
require 'bacon'
|
2
|
+
|
3
|
+
dir = File.dirname(__FILE__)
|
4
|
+
require File.join(File.dirname(__FILE__), 'pretty_output')
|
5
|
+
|
5
6
|
Bacon.extend Bacon::PrettyOutput
|
6
|
-
# Bacon.extend Bacon::TestUnitOutput
|
7
7
|
Bacon.summary_on_exit
|
@@ -2,15 +2,9 @@
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
3
3
|
|
4
4
|
require 'ramaze'
|
5
|
+
require 'ramaze/adapter/fake'
|
5
6
|
require 'rack/mock'
|
6
7
|
|
7
|
-
module Ramaze
|
8
|
-
module Adapter
|
9
|
-
class Fake < Base
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
8
|
module MockHTTP
|
15
9
|
DEFAULTS = {
|
16
10
|
'REMOTE_ADDR' => '127.0.0.1'
|
@@ -2,6 +2,7 @@ module Bacon
|
|
2
2
|
module PrettyOutput
|
3
3
|
NAME = ''
|
4
4
|
|
5
|
+
# store name and run
|
5
6
|
def handle_specification(name)
|
6
7
|
NAME.replace name
|
7
8
|
puts NAME
|
@@ -9,14 +10,15 @@ module Bacon
|
|
9
10
|
puts
|
10
11
|
end
|
11
12
|
|
13
|
+
# Core, yields the requirement and outputs problems
|
12
14
|
def handle_requirement(description)
|
13
15
|
print "- #{description}\n"
|
14
16
|
error = yield
|
15
17
|
|
16
18
|
unless error.empty?
|
17
|
-
if defined?(Ramaze::Logging)
|
19
|
+
if defined?(Ramaze::Logging::Logging)
|
18
20
|
puts '', " #{NAME} -- #{description} [FAILED]".center(70, '-'), ''
|
19
|
-
colors = Ramaze::Informer::COLORS
|
21
|
+
colors = Ramaze::Logging::Logger::Informer::COLORS
|
20
22
|
|
21
23
|
until RamazeLogger.history.empty?
|
22
24
|
tag, line = RamazeLogger.history.shift
|
@@ -29,6 +31,7 @@ module Bacon
|
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
34
|
+
# Show nicer output on error
|
32
35
|
def general_error
|
33
36
|
puts "", ErrorLog
|
34
37
|
ErrorLog.scan(/^\s*(.*?):(\d+): #{NAME} - (.*?)$/) do
|
@@ -37,6 +40,7 @@ module Bacon
|
|
37
40
|
ErrorLog.replace ''
|
38
41
|
end
|
39
42
|
|
43
|
+
# output summary
|
40
44
|
def handle_summary
|
41
45
|
puts
|
42
46
|
puts "%d tests, %d assertions, %d failures, %d errors" %
|
@@ -47,20 +51,24 @@ end
|
|
47
51
|
|
48
52
|
if defined?(Ramaze::Logging)
|
49
53
|
module Ramaze
|
54
|
+
# Special Logger, stores everything in its history
|
50
55
|
class SpecLogger
|
51
56
|
include Ramaze::Logging
|
52
57
|
include Enumerable
|
53
58
|
|
54
59
|
attr_accessor :history
|
55
60
|
|
61
|
+
# Create new history
|
56
62
|
def initialize
|
57
63
|
@history = []
|
58
64
|
end
|
59
65
|
|
66
|
+
# Yield the history
|
60
67
|
def each
|
61
68
|
@history.each{|e| yield(e) }
|
62
69
|
end
|
63
70
|
|
71
|
+
# general log
|
64
72
|
def log(tag, str)
|
65
73
|
@history << [tag, str]
|
66
74
|
end
|
@@ -37,6 +37,20 @@ module Requester
|
|
37
37
|
ex.message
|
38
38
|
end
|
39
39
|
|
40
|
+
def hget(url = '/', hash = {})
|
41
|
+
@response = get(url, hash)
|
42
|
+
@body = @response.body
|
43
|
+
@status = @response.status
|
44
|
+
Hpricot(@body)
|
45
|
+
end
|
46
|
+
|
47
|
+
def hpost(url = '/', hash = {})
|
48
|
+
@response = post(url, hash)
|
49
|
+
@body = @response.body
|
50
|
+
@status = @response.status
|
51
|
+
Hpricot(@body)
|
52
|
+
end
|
53
|
+
|
40
54
|
def url2uri url
|
41
55
|
uri = URI.parse(url)
|
42
56
|
#p uri.methods.sort.grep(/=/)
|
data/lib/ramaze/template.rb
CHANGED
@@ -60,16 +60,19 @@ module Ramaze
|
|
60
60
|
action.instance.__send__(method, *action.params)
|
61
61
|
end
|
62
62
|
|
63
|
-
# This is a wrapper to use Global.compile without even thinking about
|
64
|
-
# Don't use it if your engine is not based on a compile/eval
|
63
|
+
# This is a wrapper to use Global.compile without even thinking about
|
64
|
+
# it. Don't use it if your engine is not based on a compile/eval
|
65
|
+
# principle.
|
65
66
|
|
66
67
|
def wrap_compile(action, template = nil)
|
67
68
|
template ||= reaction_or_file(action).to_s
|
68
69
|
caching_compile(action, template)
|
69
70
|
end
|
70
71
|
|
72
|
+
# If Global.compile is enabled try to find the action in the cache,
|
73
|
+
# otherwise give a new compiled object back.
|
71
74
|
def caching_compile(action, template)
|
72
|
-
if Global.compile
|
75
|
+
if Global.compile && action.template
|
73
76
|
Cache.compiled[action.relaxed_hash] ||= compile(action, template)
|
74
77
|
else
|
75
78
|
compile(action, template)
|
@@ -13,6 +13,11 @@ module Ramaze
|
|
13
13
|
|
14
14
|
ENGINES[self] = %w[ rhtml ]
|
15
15
|
|
16
|
+
# Allow for swapping in a differnt Erubis engine (it supplies several) and
|
17
|
+
# passing options to the engine.
|
18
|
+
trait[:engine] ||= ::Erubis::Eruby
|
19
|
+
trait[:options] ||= {}
|
20
|
+
|
16
21
|
class << self
|
17
22
|
|
18
23
|
# Entry-point for Action#render
|
@@ -24,8 +29,9 @@ module Ramaze
|
|
24
29
|
|
25
30
|
# Creates an instance of ::Erubis::Eruby, sets the filename
|
26
31
|
# from the template and returns the instance.
|
32
|
+
|
27
33
|
def compile(action, template)
|
28
|
-
eruby =
|
34
|
+
eruby = ancestral_trait[:engine].new(template, ancestral_trait[:options])
|
29
35
|
eruby.init_evaluator(:filename => (action.template || __FILE__))
|
30
36
|
eruby
|
31
37
|
end
|
@@ -10,6 +10,7 @@ module Ramaze
|
|
10
10
|
ENGINES[self] = %w[ redcloth ]
|
11
11
|
|
12
12
|
class << self
|
13
|
+
# Take the action and directly transform it into html by RedCloth
|
13
14
|
def transform(action)
|
14
15
|
restrictions = action.controller.trait[:redcloth_options] || []
|
15
16
|
rules = action.controller.trait[:redcloth_options] || []
|
data/lib/ramaze/template/tagz.rb
CHANGED
@@ -8,11 +8,11 @@ module Ramaze
|
|
8
8
|
|
9
9
|
# Is responsible for compiling a template using the Tagz templating engine.
|
10
10
|
# Can be found at: http://rubyforge.org/projects/codeforpeople/
|
11
|
-
# gem install tagz
|
12
|
-
# be sure you get version 1.0 or higher
|
11
|
+
# gem install tagz
|
12
|
+
# be sure you get version 1.0 or higher
|
13
13
|
|
14
14
|
class Tagz < Template
|
15
|
-
ENGINES[self] = %w[ rb tagz ]
|
15
|
+
ENGINES[self] = %w[ rb tagz ]
|
16
16
|
|
17
17
|
class << self
|
18
18
|
|
@@ -21,9 +21,9 @@ module Ramaze
|
|
21
21
|
def transform action
|
22
22
|
result, file = result_and_file(action)
|
23
23
|
if file
|
24
|
-
markup = "tagz{#{ file }}"
|
24
|
+
markup = "tagz{#{ file }}"
|
25
25
|
action.instance.extend Methods
|
26
|
-
result = eval markup, action.binding, file
|
26
|
+
result = eval markup, action.binding, file
|
27
27
|
end
|
28
28
|
result
|
29
29
|
end
|
@@ -39,10 +39,10 @@ module Ramaze
|
|
39
39
|
|
40
40
|
private
|
41
41
|
def << s
|
42
|
-
tagz << s; self
|
42
|
+
tagz << s; self
|
43
43
|
end
|
44
44
|
|
45
|
-
def concat *a
|
45
|
+
def concat *a
|
46
46
|
a.each{|s| tagz << s}; self
|
47
47
|
end
|
48
48
|
|
@@ -71,7 +71,7 @@ module Ramaze
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def __ *a
|
74
|
-
concat eol
|
74
|
+
concat eol
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require "tenjin"
|
2
2
|
require "tempfile"
|
3
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.
|
4
7
|
class Tenjin::Context
|
5
8
|
include Ramaze::Helper::Methods
|
6
9
|
helper :link, :sendfile, :flash, :cgi
|
@@ -11,18 +14,55 @@ module Ramaze
|
|
11
14
|
|
12
15
|
# Is responsible for compiling a template using the Tenjin templating engine.
|
13
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.
|
14
37
|
|
15
38
|
class Tenjin < Template
|
16
39
|
|
17
40
|
ENGINES[self] = %w[ rbhtml tenjin ]
|
18
41
|
|
19
42
|
class << self
|
43
|
+
# Transforms an action into the XHTML code for parsing and returns
|
44
|
+
# the result.
|
20
45
|
def transform(action)
|
21
46
|
tenjin = wrap_compile(action)
|
22
|
-
|
23
|
-
tenjin.render(context)
|
47
|
+
# Tenjin can't deal with a Binding so we construct a hash for it.
|
48
|
+
tenjin.render(context(action))
|
24
49
|
end
|
25
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.
|
26
66
|
def compile(action, template)
|
27
67
|
tenjin = ::Tenjin::Template.new
|
28
68
|
tenjin.convert(template)
|
data/lib/ramaze/template/xslt.rb
CHANGED
@@ -44,6 +44,7 @@ module Ramaze
|
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
|
+
# further abstraction for the transform
|
47
48
|
def do_transform(action)
|
48
49
|
result, file = result_and_file(action)
|
49
50
|
|
@@ -53,10 +54,12 @@ module Ramaze
|
|
53
54
|
xslt.serve
|
54
55
|
end
|
55
56
|
|
57
|
+
# Synchronize the block to run with the mutex
|
56
58
|
def ext_functions_synchronize &block
|
57
59
|
XSLT_EXT_FUNCTIONS_LOCK.synchronize &block
|
58
60
|
end
|
59
61
|
|
62
|
+
# Expose functors
|
60
63
|
def register_ext_functions instance, fun_xmlns
|
61
64
|
|
62
65
|
instance.methods.each do |method|
|
@@ -81,6 +84,7 @@ module Ramaze
|
|
81
84
|
o = Class.new.new
|
82
85
|
|
83
86
|
class << o
|
87
|
+
# Delayed creation of method
|
84
88
|
def create_method(name, &block)
|
85
89
|
self.class.send(:define_method, name, &block)
|
86
90
|
end
|