rjspotter-ramaze 2009.06.29
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/.gitignore +3 -0
- data/.mailmap +25 -0
- data/MANIFEST +502 -0
- data/README.md +457 -0
- data/Rakefile +88 -0
- data/benchmark/bench_templates/bench.rb +67 -0
- data/benchmark/bench_templates/view/large.erb +79 -0
- data/benchmark/bench_templates/view/large.haml +41 -0
- data/benchmark/bench_templates/view/large.xhtml +79 -0
- data/benchmark/bench_templates/view/small.erb +21 -0
- data/benchmark/bench_templates/view/small.haml +12 -0
- data/benchmark/bench_templates/view/small.xhtml +21 -0
- data/benchmark/results.txt +131 -0
- data/benchmark/run.rb +355 -0
- data/benchmark/suite/minimal.rb +11 -0
- data/benchmark/suite/no_informer.rb +7 -0
- data/benchmark/suite/no_sessions.rb +9 -0
- data/benchmark/suite/no_template.rb +7 -0
- data/benchmark/suite/simple.rb +5 -0
- data/benchmark/suite/template_erubis.rb +8 -0
- data/benchmark/suite/template_etanni.rb +8 -0
- data/benchmark/suite/template_ezamar.rb +8 -0
- data/benchmark/suite/template_haml.rb +13 -0
- data/benchmark/suite/template_liquid.rb +11 -0
- data/benchmark/suite/template_markaby.rb +9 -0
- data/benchmark/suite/template_nagoro.rb +8 -0
- data/benchmark/suite/template_redcloth.rb +13 -0
- data/benchmark/suite/template_tenjin.rb +8 -0
- data/benchmark/test.rb +35 -0
- data/bin/ramaze +15 -0
- data/doc/AUTHORS +44 -0
- data/doc/CHANGELOG +17362 -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 +146 -0
- data/doc/meta/configuration.txt +163 -0
- data/doc/meta/internals.txt +278 -0
- data/doc/meta/users.kml +64 -0
- data/doc/tutorial/todolist.html +1379 -0
- data/doc/tutorial/todolist.txt +920 -0
- data/examples/app/auth/layout/auth.xhtml +25 -0
- data/examples/app/auth/start.rb +23 -0
- data/examples/app/auth/view/index.xhtml +4 -0
- data/examples/app/auth/view/login.xhtml +20 -0
- data/examples/app/auth/view/secret.xhtml +1 -0
- data/examples/app/blog/README +3 -0
- data/examples/app/blog/app.rb +69 -0
- data/examples/app/blog/config.ru +17 -0
- data/examples/app/blog/controller/comment.rb +45 -0
- data/examples/app/blog/controller/entry.rb +85 -0
- data/examples/app/blog/controller/init.rb +86 -0
- data/examples/app/blog/controller/main.rb +20 -0
- data/examples/app/blog/controller/tag.rb +9 -0
- data/examples/app/blog/layout/default.nag +31 -0
- data/examples/app/blog/model/comment.rb +58 -0
- data/examples/app/blog/model/entry.rb +89 -0
- data/examples/app/blog/model/init.rb +15 -0
- data/examples/app/blog/model/tag.rb +36 -0
- data/examples/app/blog/public/css/screen.css +273 -0
- data/examples/app/blog/spec/blog.rb +87 -0
- data/examples/app/blog/start.rb +5 -0
- data/examples/app/blog/view/comment/form.nag +10 -0
- data/examples/app/blog/view/comment/show.nag +16 -0
- data/examples/app/blog/view/entry/edit.nag +14 -0
- data/examples/app/blog/view/entry/feed.atom.nag +8 -0
- data/examples/app/blog/view/entry/feed.rss.nag +7 -0
- data/examples/app/blog/view/entry/index.nag +7 -0
- data/examples/app/blog/view/entry/new.nag +13 -0
- data/examples/app/blog/view/entry/show.nag +36 -0
- data/examples/app/blog/view/feed.atom.nag +18 -0
- data/examples/app/blog/view/feed.rss.nag +25 -0
- data/examples/app/blog/view/index.nag +6 -0
- data/examples/app/blog/view/tag/index.nag +5 -0
- data/examples/app/chat/layout/default.xhtml +13 -0
- data/examples/app/chat/model/history.rb +38 -0
- data/examples/app/chat/model/message.rb +7 -0
- data/examples/app/chat/public/css/chat.css +9 -0
- data/examples/app/chat/public/js/chat.js +28 -0
- data/examples/app/chat/public/js/jquery.js +3436 -0
- data/examples/app/chat/start.rb +39 -0
- data/examples/app/chat/view/chat.xhtml +9 -0
- data/examples/app/chat/view/index.xhtml +7 -0
- data/examples/app/localization/locale/de.yaml +5 -0
- data/examples/app/localization/locale/en.yaml +5 -0
- data/examples/app/localization/locale/ja.yaml +5 -0
- data/examples/app/localization/start.rb +48 -0
- data/examples/app/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/start.rb +79 -0
- data/examples/app/sourceview/view/index.haml +59 -0
- data/examples/app/todolist/controller/init.rb +10 -0
- data/examples/app/todolist/controller/task.rb +39 -0
- data/examples/app/todolist/layout/default.xhtml +14 -0
- data/examples/app/todolist/model/init.rb +14 -0
- data/examples/app/todolist/model/task.rb +39 -0
- data/examples/app/todolist/public/css/screen.css +63 -0
- data/examples/app/todolist/public/favicon.ico +0 -0
- data/examples/app/todolist/start.rb +11 -0
- data/examples/app/todolist/view/index.xhtml +29 -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 +109 -0
- data/examples/app/wikore/src/controller.rb +78 -0
- data/examples/app/wikore/src/model.rb +56 -0
- data/examples/app/wikore/start.rb +9 -0
- data/examples/app/wikore/view/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 +47 -0
- data/examples/basic/gestalt.rb +26 -0
- data/examples/basic/hello.rb +14 -0
- data/examples/basic/layout.rb +28 -0
- data/examples/basic/linking.rb +29 -0
- data/examples/basic/partial.rb +26 -0
- data/examples/basic/simple.rb +52 -0
- data/examples/helpers/cache.rb +33 -0
- data/examples/helpers/form_with_sequel.rb +24 -0
- data/examples/helpers/httpdigest.rb +107 -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/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 +37 -0
- data/examples/misc/nagoro_element.rb +43 -0
- data/examples/misc/ramaise.rb +132 -0
- data/examples/misc/rapp.rb +56 -0
- data/examples/misc/sequel_scaffolding.rb +34 -0
- data/examples/misc/serve_directory.rb +6 -0
- data/examples/templates/template_erubis.rb +52 -0
- data/examples/templates/template_ezamar.rb +51 -0
- data/examples/templates/template_haml.rb +49 -0
- data/examples/templates/template_liquid.rb +66 -0
- data/examples/templates/template_markaby.rb +57 -0
- data/examples/templates/template_nagoro.rb +50 -0
- data/examples/templates/template_redcloth.rb +58 -0
- data/examples/templates/template_remarkably.rb +54 -0
- data/examples/templates/template_tenjin.rb +52 -0
- data/examples/templates/view/external.haml +22 -0
- data/examples/templates/view/external.liquid +28 -0
- data/examples/templates/view/external.mab +30 -0
- data/examples/templates/view/external.nag +28 -0
- data/examples/templates/view/external.redcloth +19 -0
- data/examples/templates/view/external.rem +30 -0
- data/examples/templates/view/external.rhtml +28 -0
- data/examples/templates/view/external.tenjin +28 -0
- data/examples/templates/view/external.zmr +28 -0
- data/lib/proto/app.rb +14 -0
- data/lib/proto/config.ru +20 -0
- data/lib/proto/controller/init.rb +11 -0
- data/lib/proto/controller/main.rb +20 -0
- data/lib/proto/layout/default.xhtml +24 -0
- data/lib/proto/model/init.rb +4 -0
- data/lib/proto/public/.htaccess +24 -0
- data/lib/proto/public/css/screen.css +30 -0
- data/lib/proto/public/dispatch.fcgi +11 -0
- data/lib/proto/public/favicon.ico +0 -0
- data/lib/proto/public/js/jquery.js +4376 -0
- data/lib/proto/public/ramaze.png +0 -0
- data/lib/proto/spec/main.rb +20 -0
- data/lib/proto/start.rb +8 -0
- data/lib/proto/view/index.xhtml +41 -0
- data/lib/ramaze.rb +87 -0
- data/lib/ramaze/app.rb +124 -0
- data/lib/ramaze/cache.rb +19 -0
- data/lib/ramaze/cache/localmemcache.rb +56 -0
- data/lib/ramaze/cache/memcache.rb +124 -0
- data/lib/ramaze/cache/sequel.rb +82 -0
- data/lib/ramaze/contrib/addressable_route.rb +55 -0
- data/lib/ramaze/contrib/app_graph.rb +64 -0
- data/lib/ramaze/contrib/email.rb +88 -0
- data/lib/ramaze/contrib/facebook.rb +23 -0
- data/lib/ramaze/contrib/facebook/facebook.rb +171 -0
- data/lib/ramaze/contrib/gettext.rb +113 -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/gzip_filter.rb +1 -0
- data/lib/ramaze/contrib/maruku_uv.rb +59 -0
- data/lib/ramaze/contrib/profiling.rb +36 -0
- data/lib/ramaze/contrib/rest.rb +22 -0
- data/lib/ramaze/contrib/sequel/create_join.rb +26 -0
- data/lib/ramaze/contrib/sequel/form_field.rb +129 -0
- data/lib/ramaze/contrib/sequel/image.rb +196 -0
- data/lib/ramaze/contrib/sequel/relation.rb +98 -0
- data/lib/ramaze/controller.rb +104 -0
- data/lib/ramaze/controller/default.rb +12 -0
- data/lib/ramaze/current.rb +7 -0
- data/lib/ramaze/files.rb +24 -0
- data/lib/ramaze/gestalt.rb +132 -0
- data/lib/ramaze/helper.rb +13 -0
- data/lib/ramaze/helper/auth.rb +84 -0
- data/lib/ramaze/helper/bench.rb +41 -0
- data/lib/ramaze/helper/cache.rb +117 -0
- data/lib/ramaze/helper/disqus.rb +26 -0
- data/lib/ramaze/helper/flash.rb +62 -0
- data/lib/ramaze/helper/form.rb +127 -0
- data/lib/ramaze/helper/formatting.rb +189 -0
- data/lib/ramaze/helper/gestalt.rb +47 -0
- data/lib/ramaze/helper/gravatar.rb +79 -0
- data/lib/ramaze/helper/httpdigest.rb +97 -0
- data/lib/ramaze/helper/identity.rb +119 -0
- data/lib/ramaze/helper/layout.rb +97 -0
- data/lib/ramaze/helper/link.rb +56 -0
- data/lib/ramaze/helper/localize.rb +138 -0
- data/lib/ramaze/helper/markaby.rb +31 -0
- data/lib/ramaze/helper/maruku.rb +16 -0
- data/lib/ramaze/helper/nitroform.rb +14 -0
- data/lib/ramaze/helper/pager.rb +367 -0
- data/lib/ramaze/helper/paginate.rb +242 -0
- data/lib/ramaze/helper/partial.rb +100 -0
- data/lib/ramaze/helper/remarkably.rb +14 -0
- data/lib/ramaze/helper/request_accessor.rb +16 -0
- data/lib/ramaze/helper/sequel.rb +55 -0
- data/lib/ramaze/helper/sequel_form.rb +284 -0
- data/lib/ramaze/helper/simple_captcha.rb +61 -0
- data/lib/ramaze/helper/stack.rb +75 -0
- data/lib/ramaze/helper/tagz.rb +19 -0
- data/lib/ramaze/helper/thread.rb +17 -0
- data/lib/ramaze/helper/ultraviolet.rb +46 -0
- data/lib/ramaze/helper/user.rb +229 -0
- data/lib/ramaze/helper/xhtml.rb +34 -0
- data/lib/ramaze/log.rb +39 -0
- data/lib/ramaze/log/analogger.rb +39 -0
- data/lib/ramaze/log/growl.rb +38 -0
- data/lib/ramaze/log/hub.rb +41 -0
- data/lib/ramaze/log/informer.rb +129 -0
- data/lib/ramaze/log/knotify.rb +28 -0
- data/lib/ramaze/log/logger.rb +26 -0
- data/lib/ramaze/log/logging.rb +83 -0
- data/lib/ramaze/log/rotatinginformer.rb +168 -0
- data/lib/ramaze/log/syslog.rb +51 -0
- data/lib/ramaze/log/xosd.rb +92 -0
- data/lib/ramaze/middleware_compiler.rb +13 -0
- data/lib/ramaze/plugin.rb +69 -0
- data/lib/ramaze/reloader.rb +172 -0
- data/lib/ramaze/reloader/watch_inotify.rb +85 -0
- data/lib/ramaze/reloader/watch_stat.rb +58 -0
- data/lib/ramaze/request.rb +115 -0
- data/lib/ramaze/response.rb +36 -0
- data/lib/ramaze/setup.rb +123 -0
- data/lib/ramaze/snippets.rb +22 -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/fiber.rb +63 -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/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/ordered_set.rb +51 -0
- data/lib/ramaze/snippets/proc/locals.rb +19 -0
- data/lib/ramaze/snippets/ramaze/acquire.rb +31 -0
- data/lib/ramaze/snippets/ramaze/deprecated.rb +23 -0
- data/lib/ramaze/snippets/ramaze/dictionary.rb +400 -0
- data/lib/ramaze/snippets/ramaze/fiber.rb +24 -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/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/spec.rb +33 -0
- data/lib/ramaze/spec/bacon.rb +34 -0
- data/lib/ramaze/spec/helper/bacon.rb +8 -0
- data/lib/ramaze/spec/helper/pretty_output.rb +82 -0
- data/lib/ramaze/spec/helper/snippets.rb +16 -0
- data/lib/ramaze/spec/helper/template_examples.rb +19 -0
- data/lib/ramaze/tool/bin.rb +340 -0
- data/lib/ramaze/tool/create.rb +48 -0
- data/lib/ramaze/tool/project_creator.rb +111 -0
- data/lib/ramaze/version.rb +3 -0
- data/lib/ramaze/view.rb +39 -0
- data/lib/ramaze/view/erubis.rb +23 -0
- data/lib/ramaze/view/ezamar.rb +23 -0
- data/lib/ramaze/view/gestalt.rb +14 -0
- data/lib/ramaze/view/haml.rb +16 -0
- data/lib/ramaze/view/liquid.rb +100 -0
- data/lib/ramaze/view/maruku.rb +15 -0
- data/lib/ramaze/view/nagoro.rb +44 -0
- data/lib/ramaze/view/nagoro/render_partial.rb +32 -0
- data/lib/ramaze/view/redcloth.rb +21 -0
- data/lib/ramaze/view/remarkably.rb +21 -0
- data/lib/ramaze/view/sass.rb +21 -0
- data/lib/ramaze/view/tagz.rb +63 -0
- data/lib/ramaze/view/tenjin.rb +32 -0
- data/lib/vendor/etag.rb +22 -0
- data/lib/vendor/route_exceptions.rb +42 -0
- data/ramaze.gemspec +85 -0
- data/spec/contrib/addressable_route.rb +32 -0
- data/spec/contrib/rest.rb +28 -0
- data/spec/examples/caching.rb +16 -0
- data/spec/examples/css.rb +14 -0
- data/spec/examples/element.rb +15 -0
- data/spec/examples/hello.rb +10 -0
- data/spec/examples/helpers/httpdigest.rb +64 -0
- data/spec/examples/linking.rb +17 -0
- data/spec/examples/simple.rb +40 -0
- data/spec/examples/templates/template_erubis.rb +10 -0
- data/spec/examples/templates/template_ezamar.rb +10 -0
- data/spec/examples/templates/template_haml.rb +10 -0
- data/spec/examples/templates/template_liquid.rb +10 -0
- data/spec/examples/templates/template_markaby.rb +11 -0
- data/spec/examples/templates/template_nagoro.rb +10 -0
- data/spec/examples/templates/template_redcloth.rb +10 -0
- data/spec/examples/templates/template_remarkably.rb +10 -0
- data/spec/examples/templates/template_tenjin.rb +10 -0
- data/spec/helper.rb +9 -0
- data/spec/ramaze/action/render.rb +21 -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.erb +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.erb +1 -0
- data/spec/ramaze/action/view/sub/sub_wrapper.xhtml +1 -0
- data/spec/ramaze/app.rb +47 -0
- data/spec/ramaze/bin/ramaze.rb +91 -0
- data/spec/ramaze/cache/localmemcache.rb +49 -0
- data/spec/ramaze/cache/memcache.rb +60 -0
- data/spec/ramaze/cache/sequel.rb +51 -0
- data/spec/ramaze/controller/actionless_templates.rb +36 -0
- data/spec/ramaze/controller/lonely_mapping.rb +16 -0
- data/spec/ramaze/controller/mapping.rb +43 -0
- data/spec/ramaze/controller/provide_inheritance.rb +47 -0
- data/spec/ramaze/controller/resolve.rb +30 -0
- data/spec/ramaze/controller/subclass.rb +36 -0
- data/spec/ramaze/controller/template_resolving.rb +77 -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/dispatcher/directory.rb +69 -0
- data/spec/ramaze/dispatcher/file.rb +71 -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/error.rb +88 -0
- data/spec/ramaze/files.rb +29 -0
- data/spec/ramaze/files/public_1/plain.txt +1 -0
- data/spec/ramaze/files/public_2/rich.txt +1 -0
- data/spec/ramaze/gestalt.rb +135 -0
- data/spec/ramaze/helper/auth.rb +83 -0
- data/spec/ramaze/helper/bench.rb +18 -0
- data/spec/ramaze/helper/cache.rb +124 -0
- data/spec/ramaze/helper/flash.rb +41 -0
- data/spec/ramaze/helper/form.rb +356 -0
- data/spec/ramaze/helper/formatting.rb +111 -0
- data/spec/ramaze/helper/gestalt.rb +15 -0
- data/spec/ramaze/helper/gravatar.rb +40 -0
- data/spec/ramaze/helper/httpdigest.rb +144 -0
- data/spec/ramaze/helper/layout.rb +79 -0
- data/spec/ramaze/helper/layout/default.xhtml +5 -0
- data/spec/ramaze/helper/link.rb +70 -0
- data/spec/ramaze/helper/localize.rb +62 -0
- data/spec/ramaze/helper/maruku.rb +19 -0
- data/spec/ramaze/helper/pager.rb +96 -0
- data/spec/ramaze/helper/paginate.rb +68 -0
- data/spec/ramaze/helper/request_accessor.rb +19 -0
- data/spec/ramaze/helper/sequel_form.rb +91 -0
- data/spec/ramaze/helper/simple_captcha.rb +45 -0
- data/spec/ramaze/helper/stack.rb +86 -0
- data/spec/ramaze/helper/user.rb +72 -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/helper/xhtml.rb +32 -0
- data/spec/ramaze/log/informer.rb +73 -0
- data/spec/ramaze/log/logging.rb +63 -0
- data/spec/ramaze/log/syslog.rb +73 -0
- data/spec/ramaze/params.rb +153 -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.rb +61 -0
- data/spec/ramaze/rewrite/file.css +1 -0
- data/spec/ramaze/session/memcache.rb +66 -0
- data/spec/ramaze/struct.rb +47 -0
- data/spec/ramaze/template/ramaze/external.test +1 -0
- data/spec/ramaze/view.rb +36 -0
- data/spec/ramaze/view/erubis.rb +73 -0
- data/spec/ramaze/view/erubis/external.rhtml +8 -0
- data/spec/ramaze/view/erubis/sum.rhtml +1 -0
- data/spec/ramaze/view/ezamar.rb +73 -0
- data/spec/ramaze/view/ezamar/external.zmr +8 -0
- data/spec/ramaze/view/ezamar/sum.zmr +1 -0
- data/spec/ramaze/view/gestalt.rb +94 -0
- data/spec/ramaze/view/gestalt/external.ges +8 -0
- data/spec/ramaze/view/haml.rb +86 -0
- data/spec/ramaze/view/haml/external.haml +5 -0
- data/spec/ramaze/view/haml/sum.haml +2 -0
- data/spec/ramaze/view/liquid.rb +73 -0
- data/spec/ramaze/view/liquid/external.liquid +8 -0
- data/spec/ramaze/view/liquid/sum.liquid +1 -0
- data/spec/ramaze/view/nagoro.rb +73 -0
- data/spec/ramaze/view/nagoro/external.nag +8 -0
- data/spec/ramaze/view/nagoro/sum.nag +1 -0
- data/spec/ramaze/view/redcloth.rb +66 -0
- data/spec/ramaze/view/redcloth/external.redcloth +8 -0
- data/spec/ramaze/view/remarkably.rb +49 -0
- data/spec/ramaze/view/remarkably/external.rem +8 -0
- data/spec/ramaze/view/remarkably/sum.rem +1 -0
- data/spec/ramaze/view/sass.rb +73 -0
- data/spec/ramaze/view/sass/file.css.sass +5 -0
- data/spec/ramaze/view/tagz.rb +51 -0
- data/spec/ramaze/view/tagz/external.tagz +8 -0
- data/spec/ramaze/view/tagz/sum.tagz +1 -0
- data/spec/ramaze/view/tenjin.rb +57 -0
- data/spec/ramaze/view/tenjin/external.rbhtml +8 -0
- data/spec/ramaze/view/tenjin/sum.rbhtml +1 -0
- data/spec/snippets/array/put_within.rb +33 -0
- data/spec/snippets/binding/locals.rb +9 -0
- data/spec/snippets/numeric/filesize_format.rb +12 -0
- data/spec/snippets/numeric/time.rb +12 -0
- data/spec/snippets/object/__dir__.rb +14 -0
- data/spec/snippets/ordered_set.rb +63 -0
- data/spec/snippets/ramaze/acquire.rb +77 -0
- data/spec/snippets/ramaze/dictionary.rb +110 -0
- data/spec/snippets/ramaze/struct.rb +12 -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 +9 -0
- data/tasks/authors.rake +30 -0
- data/tasks/bacon.rake +66 -0
- data/tasks/changelog.rake +20 -0
- data/tasks/copyright.rake +21 -0
- data/tasks/gem.rake +22 -0
- data/tasks/gem_setup.rake +99 -0
- data/tasks/git.rake +46 -0
- data/tasks/grancher.rake +12 -0
- data/tasks/jquery.rake +15 -0
- data/tasks/manifest.rake +4 -0
- data/tasks/metric_changes.rake +24 -0
- data/tasks/rcov.rake +23 -0
- data/tasks/release.rake +54 -0
- data/tasks/reversion.rake +8 -0
- data/tasks/setup.rake +6 -0
- data/tasks/todo.rake +27 -0
- data/tasks/traits.rake +21 -0
- data/tasks/yard.rake +4 -0
- metadata +720 -0
@@ -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(ROOT, '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,111 @@
|
|
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 'fileutils'
|
5
|
+
require 'find'
|
6
|
+
|
7
|
+
class ProjectCreator
|
8
|
+
PROTO = []
|
9
|
+
PROTO << '~/.proto/' if ENV["HOME"] # Guard against Windows
|
10
|
+
attr_accessor :name, :options
|
11
|
+
|
12
|
+
def initialize(name, options = {})
|
13
|
+
@name, @options = name, options
|
14
|
+
end
|
15
|
+
|
16
|
+
def target
|
17
|
+
File.expand_path(name)
|
18
|
+
end
|
19
|
+
|
20
|
+
def proto
|
21
|
+
PROTO.map!{|pr| File.expand_path(pr) }
|
22
|
+
proto = options[:proto] ||= PROTO.find{|f| File.directory?(f) }
|
23
|
+
layout = options[:layout] ||= '/'
|
24
|
+
File.expand_path(File.join(proto, layout))
|
25
|
+
end
|
26
|
+
|
27
|
+
def create_root?
|
28
|
+
return true unless File.directory?(target)
|
29
|
+
return true if amend? or force?
|
30
|
+
fatal "%p is a directory, choose different project name or use --amend/--force" % target
|
31
|
+
end
|
32
|
+
|
33
|
+
def got_proto?
|
34
|
+
return true if File.directory?(proto)
|
35
|
+
fatal "Cannot create, %p doesn't exist, use --proto or create the proto directory" % proto
|
36
|
+
end
|
37
|
+
|
38
|
+
def create
|
39
|
+
got_proto?
|
40
|
+
|
41
|
+
puts "Found proto at: %p, proceeding...\n\n" % proto
|
42
|
+
mkdir(relate('/')) if create_root?
|
43
|
+
proceed
|
44
|
+
end
|
45
|
+
|
46
|
+
def proceed
|
47
|
+
files, directories = partition{|path| File.file?(path) }
|
48
|
+
proceed_directories(directories)
|
49
|
+
proceed_files(files)
|
50
|
+
end
|
51
|
+
|
52
|
+
def proceed_files(files)
|
53
|
+
files.each{|file| copy(file, relate(file)) }
|
54
|
+
end
|
55
|
+
|
56
|
+
def proceed_directories(dirs)
|
57
|
+
dirs.each{|dir| mkdir(relate(dir)) }
|
58
|
+
end
|
59
|
+
|
60
|
+
def mkdir(dir)
|
61
|
+
exists = File.directory?(dir)
|
62
|
+
return if exists and amend?
|
63
|
+
return if exists and not force?
|
64
|
+
puts "mkdir(%p)" % dir
|
65
|
+
FileUtils.mkdir_p(dir)
|
66
|
+
end
|
67
|
+
|
68
|
+
def copy(from, to)
|
69
|
+
return unless copy_check(to)
|
70
|
+
puts "copy(%p, %p)" % [from, to]
|
71
|
+
FileUtils.cp(from, to, :preserve => true)
|
72
|
+
post_process(to)
|
73
|
+
end
|
74
|
+
|
75
|
+
def copy_check(to)
|
76
|
+
exists = File.file?(to)
|
77
|
+
return if exists and amend?
|
78
|
+
return if exists and not force?
|
79
|
+
return true
|
80
|
+
end
|
81
|
+
|
82
|
+
# Think about a useful way to process the generated files it should be
|
83
|
+
# possible to substitute some things like the project name in the
|
84
|
+
# configuration
|
85
|
+
|
86
|
+
def post_process(file)
|
87
|
+
return
|
88
|
+
source = File.read(file)
|
89
|
+
File.open(file, 'w+') do |io|
|
90
|
+
io.write(source.gsub('$project', "'#@name'"))
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def relate(path)
|
95
|
+
File.join(target, path.to_s.sub(proto, ''))
|
96
|
+
end
|
97
|
+
|
98
|
+
def amend?; options[:amend] end
|
99
|
+
def force?; options[:force] end
|
100
|
+
|
101
|
+
def fatal(message)
|
102
|
+
warn message
|
103
|
+
exit 1
|
104
|
+
end
|
105
|
+
|
106
|
+
def each
|
107
|
+
Dir["#{proto}/**/*"].each{|path| yield(path) }
|
108
|
+
end
|
109
|
+
|
110
|
+
include Enumerable
|
111
|
+
end
|
data/lib/ramaze/view.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Copyright (c) 2009 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
|
+
View = Innate::View
|
6
|
+
|
7
|
+
# This is a container module for wrappers of templating engines and handles
|
8
|
+
# lazy requiring of needed engines.
|
9
|
+
module View
|
10
|
+
|
11
|
+
# Combine Kernel#autoload and Innate::View::register
|
12
|
+
|
13
|
+
def self.auto_register(name, *exts)
|
14
|
+
autoload(name, "ramaze/view/#{name}".downcase)
|
15
|
+
register("Innate::View::#{name}", *exts)
|
16
|
+
end
|
17
|
+
|
18
|
+
# TODO:
|
19
|
+
# * markaby - though we should advertise remarkably instead
|
20
|
+
# * XSLT - this one is just crazy, someone up for the task?
|
21
|
+
|
22
|
+
# Engines provided by Innate are:
|
23
|
+
# ERB, Etanni, None
|
24
|
+
|
25
|
+
auto_register :Erubis, :erubis, :rhtml
|
26
|
+
auto_register :Ezamar, :zmr
|
27
|
+
auto_register :Gestalt, :ges
|
28
|
+
auto_register :Haml, :haml
|
29
|
+
auto_register :Less, :lss, :less
|
30
|
+
auto_register :Liquid, :liquid
|
31
|
+
auto_register :Maruku, :mkd, :md
|
32
|
+
auto_register :Nagoro, :nag
|
33
|
+
auto_register :RedCloth, :redcloth
|
34
|
+
auto_register :Remarkably, :rem
|
35
|
+
auto_register :Sass, :sass
|
36
|
+
auto_register :Tagz, :rb, :tagz
|
37
|
+
auto_register :Tenjin, :rbhtml, :tenjin
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
|
2
|
+
# All files in this distribution are subject to the terms of the Ruby license.
|
3
|
+
|
4
|
+
require 'erubis'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module View
|
8
|
+
module Erubis
|
9
|
+
OPTIONS = { :engine => ::Erubis::Eruby }
|
10
|
+
|
11
|
+
def self.call(action, string)
|
12
|
+
options = OPTIONS.dup
|
13
|
+
engine = options.delete(:engine)
|
14
|
+
|
15
|
+
eruby = View.compile(string){|s| engine.new(s, options) }
|
16
|
+
eruby.init_evaluator(:filename => (action.view || __FILE__))
|
17
|
+
html = eruby.evaluate(action.instance)
|
18
|
+
|
19
|
+
return html, 'text/html'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'ezamar'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
module View
|
5
|
+
module Ezamar
|
6
|
+
TRANSFORM_PIPELINE = [ ::Ezamar::Element ]
|
7
|
+
|
8
|
+
def self.call(action, string)
|
9
|
+
ezamar = View.compile(string){|s| compile(action, s) }
|
10
|
+
html = ezamar.result(action.binding)
|
11
|
+
return html, 'text/html'
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.compile(action, template)
|
15
|
+
file = action.view || __FILE__
|
16
|
+
|
17
|
+
TRANSFORM_PIPELINE.each{|tp| template = tp.transform(template) }
|
18
|
+
|
19
|
+
::Ezamar::Template.new(template, :file => file)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'haml/util'
|
2
|
+
require 'haml/engine'
|
3
|
+
|
4
|
+
module Ramaze
|
5
|
+
module View
|
6
|
+
module Haml
|
7
|
+
def self.call(action, string)
|
8
|
+
action.options[:filename] = (action.view || '(haml)')
|
9
|
+
haml = View.compile(string){|s| ::Haml::Engine.new(s, action.options) }
|
10
|
+
html = haml.to_html(action.instance, action.variables)
|
11
|
+
|
12
|
+
return html, 'text/html'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
|
2
|
+
# All files in this distribution are subject to the terms of the Ruby license.
|
3
|
+
|
4
|
+
require 'liquid'
|
5
|
+
|
6
|
+
module Ramaze
|
7
|
+
module View
|
8
|
+
# Liquid is a smarty-style templating engine that restricts the usage of
|
9
|
+
# code inside templates. This is mostly helpful if you want to let users
|
10
|
+
# submit templates but prevent them from running arbitrary code.
|
11
|
+
#
|
12
|
+
# Liquid offers a pipe-like syntax for chaining operations on objects.
|
13
|
+
# Any instance variable from your Controller is available as a variable
|
14
|
+
# inside Liquid, so be sensitive about what data you provide.
|
15
|
+
#
|
16
|
+
# If you want to allow partials you can provide a kind of virtual
|
17
|
+
# filesystem that contains partials. These can be rendered using the
|
18
|
+
# Liquid `{% include 'name' %}` tag. The include tag has no relation to the
|
19
|
+
# Ramaze::Helper::Render, it simply inlines the file.
|
20
|
+
#
|
21
|
+
# To tell Liquid where to find partials, you have to set the file_system.
|
22
|
+
# The naming-convention for liquid-partials is to use a '_' prefix to the
|
23
|
+
# filename and the '.liquid' filename extension. The names of partials
|
24
|
+
# are restricted to ASCII alpha-numeric characters and underscores. You
|
25
|
+
# can also use '/' to use templates located in deeper directories.
|
26
|
+
# The partial has access to the same variables as the template including
|
27
|
+
# it.
|
28
|
+
#
|
29
|
+
# @example setting file_system
|
30
|
+
# template_path = './partials/'
|
31
|
+
# Liquid::Template.file_system = Liquid::LocalFileSystem.new(template_path)
|
32
|
+
#
|
33
|
+
# @example using include
|
34
|
+
# {% include 'foo' %}
|
35
|
+
# {% include 'bar/foo' %}
|
36
|
+
#
|
37
|
+
# This will include the files located at './partials/_foo.liquid' and
|
38
|
+
# './partials/bar/_foo.liquid'.
|
39
|
+
#
|
40
|
+
# This functionality gets even more interesting if you customize it with
|
41
|
+
# your own virtual file-system, you can use anything that responds to
|
42
|
+
# `#read_template_file(path)`.
|
43
|
+
# That way you can even fetch templates from a database or instruct Liquid
|
44
|
+
# to allow you access to your own templates in the '/views' directory.
|
45
|
+
module Liquid
|
46
|
+
|
47
|
+
# Liquid requires the variable keys to be strings, most likely for
|
48
|
+
# security resons (don't allow arbitrary symbols).
|
49
|
+
def self.call(action, string)
|
50
|
+
action.sync_variables(action)
|
51
|
+
variables = {}
|
52
|
+
action.variables.each{|k,v| variables[k.to_s] = v }
|
53
|
+
|
54
|
+
liquid = View.compile(string){|s| ::Liquid::Template.parse(s) }
|
55
|
+
html = liquid.render(variables)
|
56
|
+
|
57
|
+
return html, 'text/html'
|
58
|
+
end
|
59
|
+
|
60
|
+
class Tag < ::Liquid::Tag
|
61
|
+
def initialize(tag_name, arg, tokens)
|
62
|
+
super
|
63
|
+
@arg = arg.strip
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Liquid has intentionally? no support for binding, in order to use
|
68
|
+
# helpers you have to register them as tags.
|
69
|
+
#
|
70
|
+
# Creating a tag needs boilerplate, so we reduce that for your
|
71
|
+
# convenience.
|
72
|
+
#
|
73
|
+
# This is not the most performant way, it seems like Liquid uses
|
74
|
+
# initialize to compile templates and gives you the chance to process the
|
75
|
+
# arguments to the tag only once, but if you want that please contribute.
|
76
|
+
#
|
77
|
+
# Further below are a couple of tags that map to the most common helpers,
|
78
|
+
# this also needs contribution as I simply don't have the time to write
|
79
|
+
# all of that and invent a consistent syntax.
|
80
|
+
def self.register_tag(name, helper, &block)
|
81
|
+
klass = Class.new(Tag)
|
82
|
+
klass.send(:include, helper)
|
83
|
+
klass.send(:define_method, :render, &block)
|
84
|
+
|
85
|
+
::Liquid::Template.register_tag(name, klass)
|
86
|
+
end
|
87
|
+
|
88
|
+
# {% route index %}
|
89
|
+
register_tag('route', Ramaze::Helper::Link) do |context|
|
90
|
+
Ramaze::Current.action.node.route(@arg)
|
91
|
+
end
|
92
|
+
|
93
|
+
# {% anchor "The index" index %}
|
94
|
+
register_tag('anchor', Ramaze::Helper::Link) do |context|
|
95
|
+
@arg =~ /^(['"])(.*?)\1\s+(.*)/
|
96
|
+
Ramaze::Current.action.node.anchor($2, $3)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'maruku'
|
2
|
+
|
3
|
+
module Ramaze
|
4
|
+
module View
|
5
|
+
module Maruku
|
6
|
+
def self.call(action, string)
|
7
|
+
string = File.read(action.view) if action.view
|
8
|
+
maruku = View.compile(string){|s| ::Maruku.new(s) }
|
9
|
+
html = maruku.to_html
|
10
|
+
|
11
|
+
return html, 'text/html'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'nagoro'
|
2
|
+
require 'ramaze/view/nagoro/render_partial'
|
3
|
+
|
4
|
+
module Ramaze
|
5
|
+
module View
|
6
|
+
# Binding to the Nagoro templating engine.
|
7
|
+
#
|
8
|
+
# To pipe your template through tidy you have to use:
|
9
|
+
#
|
10
|
+
# Ramaze::View::Nagoro.options.tidy = true
|
11
|
+
#
|
12
|
+
# @see http://github.com/manveru/nagoro
|
13
|
+
module Nagoro
|
14
|
+
include Optioned
|
15
|
+
|
16
|
+
options.dsl do
|
17
|
+
o "Pipes to pass the template through",
|
18
|
+
:pipes, ::Nagoro::DEFAULT_PIPES
|
19
|
+
|
20
|
+
o "Use tidy to cleanup the rendered template",
|
21
|
+
:tidy, false
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.call(action, string)
|
25
|
+
default_options = {
|
26
|
+
:pipes => options.pipes,
|
27
|
+
:filename => action.view,
|
28
|
+
:binding => action.binding,
|
29
|
+
:variables => action.variables
|
30
|
+
}
|
31
|
+
|
32
|
+
render_options = default_options.merge(action.options)
|
33
|
+
|
34
|
+
if options.tidy
|
35
|
+
html = ::Nagoro.tidy_render(string.to_s, render_options)
|
36
|
+
else
|
37
|
+
html = ::Nagoro.render(string.to_s, render_options)
|
38
|
+
end
|
39
|
+
|
40
|
+
return html, 'text/html'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|