Module: Web::SimpleDispatcher
- Defined in:
- lib/web/simpledispatcher.rb
Overview
Web::SimpleDispatcher provides a simple framework for organizing Web applications, combining them with forms and handling forms.
The following is an example form template ‘/myappdir/html/templates/my_app.html
<html>
<body>
<narf:form name="my_form" method="post">
<narf:text name="field1">
<narf:textarea name="field2">
</narf:form>
</body>
</html>
Patrick notes: simple dispatcher might not be simple. view as promising alpha
Defined Under Namespace
Modules: TemplateClassMixin, TemplateMixin Classes: Link, Template
Class Method Summary collapse
- .class_from_template(template) ⇒ Object
- .handle_request(options) ⇒ Object
- .template_from_class(aClass) ⇒ Object
- .template_from_path_info ⇒ Object
-
.trace_dispatcher(text) ⇒ Object
:nodoc: all.
Class Method Details
.class_from_template(template) ⇒ Object
118 119 120 |
# File 'lib/web/simpledispatcher.rb', line 118 def class_from_template template template.gsub(/(^|_)([a-z])/) { |m| m.gsub('_','').upcase } end |
.handle_request(options) ⇒ Object
143 144 145 146 147 148 149 150 151 152 |
# File 'lib/web/simpledispatcher.rb', line 143 def handle_request unless formclass = template_from_path_info [:default].redirect_to Web.query return end aTemplate = formclass.new(Web.query) formclass.handle aTemplate end |
.template_from_class(aClass) ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/web/simpledispatcher.rb', line 122 def template_from_class aClass first = true aClass.name.gsub(/([A-Z])/) do |m| value = m.downcase if first first = false value else "_" + value end end end |
.template_from_path_info ⇒ Object
135 136 137 138 139 140 141 |
# File 'lib/web/simpledispatcher.rb', line 135 def template_from_path_info if (Web.get_cgi.path_info != "/") if (m = /\/?(.+)\/?/.match(Web.get_cgi.path_info)) eval(class_from_template(m[1])) end end end |
.trace_dispatcher(text) ⇒ Object
:nodoc: all
20 21 22 23 24 |
# File 'lib/web/simpledispatcher.rb', line 20 def SimpleDispatcher.trace_dispatcher text if $ADD_TEST_OUTPUT Kernel.puts text end end |