wee 0.8.0 → 0.9.0
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/ChangeLog +286 -0
- data/Features +185 -0
- data/doc/rdoc/classes/ActionView.html +107 -0
- data/doc/rdoc/classes/ActionView/Base.html +133 -0
- data/doc/rdoc/classes/Array.html +7 -59
- data/doc/rdoc/classes/Cache/StorageCache.html +38 -38
- data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +30 -30
- data/doc/rdoc/classes/Cache/Strategy/LFU.html +24 -24
- data/doc/rdoc/classes/Cache/Strategy/LRU.html +24 -24
- data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +24 -24
- data/doc/rdoc/classes/Enumerable.html +6 -6
- data/doc/rdoc/classes/Hash.html +120 -0
- data/doc/rdoc/classes/Main.html +58 -34
- data/doc/rdoc/classes/Object.html +12 -12
- data/doc/rdoc/classes/OgScaffolder.html +165 -166
- data/doc/rdoc/classes/OgScaffolder/Editor.html +112 -112
- data/doc/rdoc/classes/String.html +7 -59
- data/doc/rdoc/classes/Struct.html +14 -14
- data/doc/rdoc/classes/Wee.html +70 -6
- data/doc/rdoc/classes/Wee/AbstractSession.html +502 -0
- data/doc/rdoc/classes/Wee/AnswerDecoration.html +11 -11
- data/doc/rdoc/classes/Wee/Application.html +139 -84
- data/doc/rdoc/classes/Wee/Brush.html +21 -18
- data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +90 -17
- data/doc/rdoc/classes/Wee/Brush/CheckboxTag.html +162 -0
- data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/FormTag.html +41 -17
- data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +12 -12
- data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +112 -86
- data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +12 -12
- data/doc/rdoc/classes/Wee/Brush/HiddenInputTag.html +160 -0
- data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +15 -15
- data/doc/rdoc/classes/Wee/Brush/ImageTag.html +21 -21
- data/doc/rdoc/classes/Wee/Brush/InputTag.html +14 -14
- data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/Page.html +14 -14
- data/doc/rdoc/classes/Wee/Brush/RadioButtonTag.html +234 -0
- data/doc/rdoc/classes/Wee/Brush/RadioButtonTag/RadioGroup.html +207 -0
- data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +124 -28
- data/doc/rdoc/classes/Wee/Brush/SelectListTag/SelectListCallback.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +14 -14
- data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +42 -42
- data/doc/rdoc/classes/Wee/Brush/TableTag.html +7 -7
- data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +48 -15
- data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +7 -7
- data/doc/rdoc/classes/Wee/CallbackRegistry.html +38 -38
- data/doc/rdoc/classes/Wee/CallbackStream.html +18 -18
- data/doc/rdoc/classes/Wee/CanvasMixin.html +225 -0
- data/doc/rdoc/classes/Wee/Component.html +202 -201
- data/doc/rdoc/classes/Wee/Component/OnAnswer.html +7 -7
- data/doc/rdoc/classes/Wee/ComponentDispatcher.html +289 -0
- data/doc/rdoc/classes/Wee/ComponentRunner.html +321 -0
- data/doc/rdoc/classes/Wee/Context.html +63 -3
- data/doc/rdoc/classes/Wee/Decoration.html +45 -45
- data/doc/rdoc/classes/Wee/Delegate.html +30 -30
- data/doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html +164 -0
- data/doc/rdoc/classes/Wee/ErrorResponse.html +16 -16
- data/doc/rdoc/classes/Wee/Examples.html +114 -0
- data/doc/rdoc/classes/Wee/Examples/Calculator.html +319 -0
- data/doc/rdoc/classes/Wee/Examples/Counter.html +289 -0
- data/doc/rdoc/classes/Wee/Examples/EditableCounter.html +210 -0
- data/doc/rdoc/classes/Wee/Examples/Window.html +346 -0
- data/doc/rdoc/classes/Wee/FastCGIAdaptor.html +227 -0
- data/doc/rdoc/classes/Wee/FormDecoration.html +6 -6
- data/doc/rdoc/classes/Wee/GenericResponse.html +7 -7
- data/doc/rdoc/classes/Wee/HtmlCanvasRenderer.html +1230 -0
- data/doc/rdoc/classes/Wee/HtmlWriter.html +40 -40
- data/doc/rdoc/classes/Wee/IdGenerator.html +148 -0
- data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +27 -14
- data/doc/rdoc/classes/Wee/LoginDecoration.html +261 -0
- data/doc/rdoc/classes/Wee/Md5IdGenerator.html +14 -14
- data/doc/rdoc/classes/Wee/MessageBox.html +14 -14
- data/doc/rdoc/classes/Wee/Nitro.html +114 -0
- data/doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html +192 -0
- data/doc/rdoc/classes/Wee/Nitro/ControllerMixin.html +345 -0
- data/doc/rdoc/classes/Wee/Nitro/FormTag.html +155 -0
- data/doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html +178 -0
- data/doc/rdoc/classes/Wee/Page.html +4 -0
- data/doc/rdoc/classes/Wee/PageDecoration.html +18 -18
- data/doc/rdoc/classes/Wee/PagelessApplication.html +13 -11
- data/doc/rdoc/classes/Wee/PagelessComponentDriver.html +296 -0
- data/doc/rdoc/classes/Wee/PagelessRequest.html +52 -21
- data/doc/rdoc/classes/Wee/PagelessSession.html +130 -91
- data/doc/rdoc/classes/Wee/Pager.html +534 -0
- data/doc/rdoc/classes/Wee/Presenter.html +482 -298
- data/doc/rdoc/classes/Wee/Rails.html +114 -0
- data/doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html +192 -0
- data/doc/rdoc/classes/Wee/Rails/ControllerMixin.html +342 -0
- data/doc/rdoc/classes/Wee/Rails/FormTag.html +155 -0
- data/doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html +177 -0
- data/doc/rdoc/classes/Wee/RedirectResponse.html +7 -7
- data/doc/rdoc/classes/Wee/RefreshResponse.html +7 -7
- data/doc/rdoc/classes/Wee/Renderer.html +208 -0
- data/doc/rdoc/classes/Wee/RenderingContext.html +175 -3
- data/doc/rdoc/classes/Wee/Request.html +197 -46
- data/doc/rdoc/classes/Wee/RequestHandler.html +31 -31
- data/doc/rdoc/classes/Wee/Response.html +44 -43
- data/doc/rdoc/classes/Wee/Session.html +296 -402
- data/doc/rdoc/classes/Wee/SimpleIdGenerator.html +14 -14
- data/doc/rdoc/classes/Wee/Snapshot.html +19 -19
- data/doc/rdoc/classes/Wee/Utils.html +22 -22
- data/doc/rdoc/classes/Wee/Utils/LRUCache.html +6 -6
- data/doc/rdoc/classes/Wee/ValueHolder.html +19 -19
- data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +72 -46
- data/doc/rdoc/classes/Wee/WrapperDecoration.html +6 -6
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/INSTALL.html +1 -1
- data/doc/rdoc/files/README.html +8 -12
- data/doc/rdoc/files/lib/cache/cache_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/abstractsession_rb.html +108 -0
- data/doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html +108 -0
- data/doc/rdoc/files/lib/wee/adaptors/nitro_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/adaptors/rails_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/application_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/components/component_dispatcher_rb.html +108 -0
- data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/components/login_decoration_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/components/pager_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/components_rb.html +4 -1
- data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/continuation/session_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/continuation_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/callback_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/component_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/componentrunner_rb.html +110 -0
- data/doc/rdoc/files/lib/wee/core/context_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/core/decoration_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/idgen_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/core/page_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/core/presenter_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/renderer_rb.html +107 -0
- data/doc/rdoc/files/lib/wee/core/snapshot_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/core/valueholder_rb.html +2 -2
- data/doc/rdoc/files/lib/wee/core_ext_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/core_rb.html +7 -14
- data/doc/rdoc/files/lib/wee/databases/og/application_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/databases/og/old_scaffolder_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/databases/og/scaffolder_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/databases/og/session_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/databases/og_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/examples/calculator_rb.html +107 -0
- data/doc/rdoc/files/lib/wee/examples/counter_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/examples/editable_counter_rb.html +114 -0
- data/doc/rdoc/files/lib/wee/examples/window_rb.html +101 -0
- data/doc/rdoc/files/lib/wee/idgen/md5_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/idgen/simple_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/page_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/pageless/application_rb.html +8 -1
- data/doc/rdoc/files/lib/wee/pageless/request_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/pageless/session_rb.html +2 -1
- data/doc/rdoc/files/lib/wee/pageless_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/request_rb.html +5 -4
- data/doc/rdoc/files/lib/wee/requesthandler_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/response_rb.html +2 -1
- data/doc/rdoc/files/lib/wee/session_rb.html +2 -3
- data/doc/rdoc/files/lib/wee/skeleton/og/components/main_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/skeleton/og/conf/db_rb.html +2 -2
- data/doc/rdoc/files/lib/wee/skeleton/og/models/recipe_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/skeleton/og/run_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/skeleton/simple/components/main_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/skeleton/simple/run_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/snapshot_ext_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/template_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/utils/cache_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/utils/helper_rb.html +1 -1
- data/doc/rdoc/files/lib/wee/utils_rb.html +1 -1
- data/doc/rdoc/files/lib/wee_rb.html +5 -3
- data/doc/rdoc/fr_class_index.html +34 -2
- data/doc/rdoc/fr_file_index.html +17 -1
- data/doc/rdoc/fr_method_index.html +464 -314
- data/examples/ajax/ajax.rb +1 -1
- data/examples/demo.rb +47 -0
- data/examples/{calendar.rb → demo/calendar.rb} +89 -97
- data/examples/{example.rb → demo/example.rb} +17 -97
- data/examples/dispatcher.rb +37 -0
- data/examples/draw.rb +14 -11
- data/examples/nitro/run.rb +42 -0
- data/examples/radio.rb +44 -0
- data/examples/test.rb +3 -27
- data/lib/wee.rb +15 -3
- data/lib/wee/adaptors/nitro.rb +154 -0
- data/lib/wee/adaptors/rails.rb +154 -0
- data/lib/wee/application.rb +22 -20
- data/lib/wee/components.rb +3 -0
- data/lib/wee/components/component_dispatcher.rb +46 -0
- data/lib/wee/components/login_decoration.rb +35 -0
- data/lib/wee/components/messagebox.rb +2 -2
- data/lib/wee/components/pager.rb +102 -0
- data/lib/wee/continuation/core/component.rb +13 -12
- data/lib/wee/continuation/session.rb +11 -19
- data/lib/wee/core.rb +8 -7
- data/lib/wee/core/component.rb +8 -28
- data/lib/wee/core/componentrunner.rb +73 -0
- data/lib/wee/core/context.rb +27 -0
- data/lib/wee/core/idgen.rb +5 -0
- data/lib/wee/core/page.rb +1 -0
- data/lib/wee/core/presenter.rb +10 -126
- data/lib/wee/core/renderer.rb +23 -0
- data/lib/wee/core_ext.rb +122 -0
- data/lib/wee/databases/og/scaffolder.rb +0 -1
- data/lib/wee/examples/calculator.rb +70 -0
- data/lib/wee/examples/counter.rb +33 -0
- data/lib/wee/examples/editable_counter.rb +31 -0
- data/{examples → lib/wee/examples}/window.rb +29 -23
- data/lib/wee/idgen/md5.rb +1 -1
- data/lib/wee/idgen/simple.rb +1 -1
- data/lib/wee/pageless/session.rb +2 -3
- data/lib/wee/renderer/html/brushes.rb +142 -22
- data/lib/wee/renderer/html/canvas.rb +57 -19
- data/lib/wee/response.rb +3 -2
- data/lib/wee/session.rb +10 -54
- data/lib/wee/skeleton/og/components/main.rb +5 -1
- data/lib/wee/skeleton/og/conf/db.rb +1 -1
- data/lib/wee/snapshot_ext.rb +4 -10
- data/lib/wee/template.rb +19 -5
- data/lib/wee/utils/helper.rb +2 -2
- metadata +90 -13
- data/examples/calculator.rb +0 -67
- data/lib/wee/context.rb +0 -2
data/ChangeLog
CHANGED
|
@@ -1,3 +1,289 @@
|
|
|
1
|
+
--------------------------------------------------------------------
|
|
2
|
+
TAGGED 0.9.0
|
|
3
|
+
--------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
Mon Jul 11 23:31:31 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
6
|
+
|
|
7
|
+
* examples/*: Lots of cleanup. New examples added.
|
|
8
|
+
|
|
9
|
+
Mon Jul 11 23:18:17 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
10
|
+
|
|
11
|
+
* lib/wee/components/pager.rb, lib/wee/examples/pager.rb: Moved from examples
|
|
12
|
+
into components directory. Slightly modified. Now class Wee::Pager.
|
|
13
|
+
|
|
14
|
+
* lib/wee/components/login_decoration.rb (Wee::LoginDecoration): Initial
|
|
15
|
+
import.
|
|
16
|
+
|
|
17
|
+
* lib/wee/components/component_dispatcher.rb (Wee::ComponentDispatcher):
|
|
18
|
+
Initial creation.
|
|
19
|
+
|
|
20
|
+
* lib/wee/components.rb: Load new components.
|
|
21
|
+
|
|
22
|
+
* lib/wee/renderer/html/{brushes,canvas}.rb: Introduced
|
|
23
|
+
r.anchor.info(info_url) which can be used to specify the info part of a
|
|
24
|
+
URL.
|
|
25
|
+
|
|
26
|
+
Mon Jul 11 19:29:44 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
27
|
+
|
|
28
|
+
* lib/wee/renderer/html/{brushes,canvas}.rb: Added #hidden_input.
|
|
29
|
+
|
|
30
|
+
* lib/wee/adaptors/rails.rb: fixed some bugs. minor refactoring.
|
|
31
|
+
|
|
32
|
+
* lib/wee/adaptors/nitro.rb, examples/nitro/*: initial creation.
|
|
33
|
+
|
|
34
|
+
Mon Jul 11 17:02:40 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
35
|
+
|
|
36
|
+
* lib/wee.rb (Wee.run): Added method for easy startup of components.
|
|
37
|
+
|
|
38
|
+
* lib/wee/application.rb: Method Application#insert_new_request_handler
|
|
39
|
+
added. Refactored #handle_request a bit.
|
|
40
|
+
|
|
41
|
+
Mon Jul 11 16:06:49 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
42
|
+
|
|
43
|
+
* lib/wee/snapshot_ext.rb: refactored. enhanced Hash to be snapshotable.
|
|
44
|
+
|
|
45
|
+
* lib/wee/session.rb: fixed two bugs I lately introduced during refactoring
|
|
46
|
+
|
|
47
|
+
* lib/wee/renderer/html/canvas.rb: added r.label
|
|
48
|
+
|
|
49
|
+
* lib/wee/examples/{pager,counter,editable_counter,calculator}.rb:
|
|
50
|
+
moved components from examples directory into Wee base.
|
|
51
|
+
|
|
52
|
+
* lib/wee.rb: increased version to 0.9.0. Introduced module Wee::Examples.
|
|
53
|
+
|
|
54
|
+
* lib/wee/skeleton/og/components/main.rb: Minor cleanup.
|
|
55
|
+
|
|
56
|
+
* lib/wee/databases/og/scaffolder.rb: removed whitespace.
|
|
57
|
+
|
|
58
|
+
Sat Jul 2 17:48:00 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
59
|
+
|
|
60
|
+
* lib/wee/adaptors/rails.rb: Integrate Wee components into RubyOnRails.
|
|
61
|
+
Very simple example:
|
|
62
|
+
|
|
63
|
+
##
|
|
64
|
+
# In config/environment.rb add:
|
|
65
|
+
|
|
66
|
+
require 'wee'
|
|
67
|
+
require 'wee/adaptors/rails'
|
|
68
|
+
require 'components/mycomponent'
|
|
69
|
+
|
|
70
|
+
##
|
|
71
|
+
# In components/mycomponent.rb:
|
|
72
|
+
|
|
73
|
+
class MyComponent < Wee::Component
|
|
74
|
+
# ... your Wee component ...
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
##
|
|
78
|
+
# In app/controllers/wee_controller.rb:
|
|
79
|
+
|
|
80
|
+
class WeeController < ApplicationController
|
|
81
|
+
include Wee::Rails::ControllerMixin
|
|
82
|
+
|
|
83
|
+
register_component "my" do
|
|
84
|
+
MyComponent.new
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
##
|
|
89
|
+
# In app/views/index.rhtml:
|
|
90
|
+
|
|
91
|
+
<html><body>
|
|
92
|
+
<%= show_component 'my' %>
|
|
93
|
+
</body></html>
|
|
94
|
+
|
|
95
|
+
Of course you can render as many components as you like on one page.
|
|
96
|
+
You can create components dynamically at runtime with:
|
|
97
|
+
|
|
98
|
+
make_component component_name, component_object
|
|
99
|
+
|
|
100
|
+
For example instead of using 'register_component' in the WeeController
|
|
101
|
+
shown above, you could write:
|
|
102
|
+
|
|
103
|
+
def index
|
|
104
|
+
make_component('my', MyComponent.new) unless has_component?('my')
|
|
105
|
+
# render the view
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
If you don't need the component anymore, drop it:
|
|
109
|
+
|
|
110
|
+
drop_component 'my'
|
|
111
|
+
|
|
112
|
+
If you want to map 1:1 a Wee::Component to an ActionController, you can
|
|
113
|
+
use:
|
|
114
|
+
|
|
115
|
+
class WeeController < ApplicationController
|
|
116
|
+
include Wee::Rails::ControllerMixin
|
|
117
|
+
|
|
118
|
+
scaffold_with_component do
|
|
119
|
+
MyComponent.new
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
At the moment, only pageless mode is possible, so no backtracking is
|
|
124
|
+
performed.
|
|
125
|
+
|
|
126
|
+
NOTE: Your Wee components must be fully marshallable to work with Rails
|
|
127
|
+
CGI mode. That means, you are not allowed to use continuations, and no
|
|
128
|
+
code blocks (callbacks). For example instead of:
|
|
129
|
+
|
|
130
|
+
r.anchor.callback { answer true }
|
|
131
|
+
|
|
132
|
+
You have to write:
|
|
133
|
+
|
|
134
|
+
r.anchor.callback(:answer, true)
|
|
135
|
+
|
|
136
|
+
Or more general:
|
|
137
|
+
|
|
138
|
+
r.anchor.callback(Wee::LiteralMethodCallback.new(self, :answer, true))
|
|
139
|
+
|
|
140
|
+
* lib/wee/renderer/html/brushes.rb, lib/wee/renderer/html/canvas.rb: Use
|
|
141
|
+
method Canvas#build_url instead of Request#build_url. This makes it
|
|
142
|
+
independent of the Request class. To use a different URL builder, simply
|
|
143
|
+
overwrite Canvas#build_url.
|
|
144
|
+
|
|
145
|
+
* lib/wee/session.rb, lib/wee/core/context.rb, lib/wee/core_ext.rb:
|
|
146
|
+
Wee::RenderingContext now uses #context instead of #request, #response and
|
|
147
|
+
#session. This makes it easy to reuse the Context class of other
|
|
148
|
+
frameworks like Nitro or Rails.
|
|
149
|
+
|
|
150
|
+
* lib/wee/components/messagebox.rb: do not use blocks -> fully marshallable
|
|
151
|
+
|
|
152
|
+
Thu Jun 30 13:23:47 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
153
|
+
|
|
154
|
+
* lib/wee/session.rb, lib/wee/core/componentrunner.rb, lib/wee/core.rb,
|
|
155
|
+
lib/wee/utils/helper.rb, lib/wee/pageless/session.rb: Refactored component
|
|
156
|
+
specific stuff (rendering, snapshots, callback processing) out of session
|
|
157
|
+
into core class ComponentRunner.
|
|
158
|
+
|
|
159
|
+
* lib/wee/renderer/html/canvas.rb: fixed bug
|
|
160
|
+
|
|
161
|
+
Thu Jun 30 12:55:54 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
162
|
+
|
|
163
|
+
* lib/wee/core/context.rb: forgot to add this file
|
|
164
|
+
|
|
165
|
+
Thu Jun 30 12:53:59 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
166
|
+
|
|
167
|
+
* lib/wee/session.rb, lib/wee/context.rb, lib/wee/core/renderingcontext.rb,
|
|
168
|
+
lib/wee/core.rb, lib/wee/core_ext.rb, lib/wee.rb: Moved Wee::Context into
|
|
169
|
+
core. Wee::Context gets an additional field 'session', and
|
|
170
|
+
Wee::RenderingContext inherits from Wee::Context.
|
|
171
|
+
|
|
172
|
+
Thu Jun 30 12:38:25 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
173
|
+
|
|
174
|
+
* lib/wee/response.rb: require 'cgi'
|
|
175
|
+
|
|
176
|
+
Thu Jun 30 12:36:18 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
177
|
+
|
|
178
|
+
* lib/wee/response.rb (Wee::ErrorResponse#render): correctly format error
|
|
179
|
+
responses (patch by Aleksi Niemela)
|
|
180
|
+
|
|
181
|
+
Thu Jun 30 12:10:36 CEST 2005 Michael Neumann <mneumann@ntecs.de>
|
|
182
|
+
|
|
183
|
+
* lib/wee/core.rb, lib/wee/core/idgen.rb, lib/wee/idgen/md5.rb,
|
|
184
|
+
lib/wee/idgen/simple.rb: Introduced abstract class Wee::IdGenerator
|
|
185
|
+
and subclass Wee::Md5IdGenerator and Wee::SimpleIdGenerator from it.
|
|
186
|
+
|
|
187
|
+
* lib/wee/core/renderer.rb, lib/wee/core/presenter.rb,
|
|
188
|
+
lib/wee/renderer/html/canvas.rb, lib/wee.rb:
|
|
189
|
+
Introduce base class of all renderer classes: Wee::Renderer.
|
|
190
|
+
|
|
191
|
+
Rename Wee::HtmlCanvas to Wee::HtmlCanvasRenderer and inherit from
|
|
192
|
+
Wee::Renderer instead of Wee::Canvas. Wee::Canvas is now a mixin
|
|
193
|
+
module as has been renamed to Wee::CanvasMixin.
|
|
194
|
+
|
|
195
|
+
Rename @renderer in Wee::Presenter into @__renderer to avoid
|
|
196
|
+
possible problems if this variable is accidently used by a
|
|
197
|
+
user-defined component.
|
|
198
|
+
|
|
199
|
+
* lib/wee/template.rb: Added :local option, with which one can
|
|
200
|
+
specify a template file relative to the component file, e.g:
|
|
201
|
+
|
|
202
|
+
class MyComponent < Wee::Component
|
|
203
|
+
template :render_this, :local => 'this.tmpl'
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
Futhermore, added an :r_as_param option, which generates a render
|
|
207
|
+
method that takes a renderer object as parameter 'r'.
|
|
208
|
+
|
|
209
|
+
* lib/wee/renderer/html/brushes.rb, lib/wee/renderer/html/canvas.rb:
|
|
210
|
+
Method Brush::SelectListTag#selected takes optionally a block. In
|
|
211
|
+
this case, only those elements will be selected, for which the block
|
|
212
|
+
evaluates to true. This allows us to use some custom compare
|
|
213
|
+
functions instead of the default ones '==' or 'include?'.
|
|
214
|
+
|
|
215
|
+
Method Brush::SelectListTag#labels also might be passed a block, in
|
|
216
|
+
which case the label is the return value of the block called with
|
|
217
|
+
the corresponding item as parameter.
|
|
218
|
+
|
|
219
|
+
Added class Brush::CheckboxTag and corresponding methods
|
|
220
|
+
HtmlCanvas#check_box and alias #checkbox.
|
|
221
|
+
|
|
222
|
+
Method HtmlCanvas#paragraph is no longer a single tag. It can now
|
|
223
|
+
contain other tags, e.g. like <p><a .../></p>.
|
|
224
|
+
|
|
225
|
+
Added method HtmlCanvas#multiline_text, which replaces newline
|
|
226
|
+
characters (\n) in the text with <br/> tags.
|
|
227
|
+
|
|
228
|
+
* lib/wee/page.rb, lib/wee/core/page.rb: Page classes moved into core.
|
|
229
|
+
|
|
230
|
+
* lib/wee/session.rb: remove require 'wee/page' as this now has been
|
|
231
|
+
moved into the core and is automatically required from there.
|
|
232
|
+
|
|
233
|
+
* lib/wee/context.rb, lib/wee/core/renderingcontext.rb: Moved
|
|
234
|
+
RenderingContext class into core.
|
|
235
|
+
|
|
236
|
+
* lib/wee/core/presenter.rb, lib/wee/core_ext.rb: Moved some stuff
|
|
237
|
+
from the Presenter class out of the core.
|
|
238
|
+
|
|
239
|
+
* lib/wee.rb, lib/wee/core.rb: adapt "require"s to the changed
|
|
240
|
+
situation.
|
|
241
|
+
|
|
242
|
+
* lib/wee/session.rb lib/wee/pageless/session.rb: renamed method
|
|
243
|
+
#invoke_callbacks into #process_callbacks and refactored that method a
|
|
244
|
+
lot.
|
|
245
|
+
|
|
246
|
+
* lib/wee/core/presenter.rb, lib/wee/session.rb: removed
|
|
247
|
+
throwing of :wee_send_response, instead use
|
|
248
|
+
:wee_abort_callback_processing
|
|
249
|
+
|
|
250
|
+
* lib/wee/core/component.rb, lib/wee/continuation/core/component.rb,
|
|
251
|
+
lib/wee/session.rb: renamed :wee_back_to_session into
|
|
252
|
+
:wee_abort_callback_processing.
|
|
253
|
+
|
|
254
|
+
* lib/wee/core/component.rb: Reverted commit from
|
|
255
|
+
Thu Mar 3 12:11:05 CET 2005. Removed method Component#parent,
|
|
256
|
+
modified method #add_child.
|
|
257
|
+
|
|
258
|
+
* lib/wee/skeleton/og/conf/db.rb: Upgrade to run under newer Og version.
|
|
259
|
+
|
|
260
|
+
Sun May 22 18:10:27 CET 2005 Michael Neumann <mneumann@ntecs.de>
|
|
261
|
+
|
|
262
|
+
* lib/wee/continuation/session.rb: Fixed a bug. Callbacks were invoked
|
|
263
|
+
twice, due to a super() call was calling the "wrong" super-method,
|
|
264
|
+
which did the same as the calling method (the right super-method would
|
|
265
|
+
have been super.super(), but this is actually not possible in Ruby
|
|
266
|
+
without renaming).
|
|
267
|
+
|
|
268
|
+
Wed Apr 6 19:17:47 CET 2005 Michael Neumann <mneumann@ntecs.de>
|
|
269
|
+
|
|
270
|
+
* lib/wee/session.rb: introduced live_update callbacks, which are special
|
|
271
|
+
action callbacks that are processed after any action callback.
|
|
272
|
+
|
|
273
|
+
* lib/wee/renderer/html/canvas.rb, lib/wee/renderer/html/brushes.rb:
|
|
274
|
+
- You can now use #value of textarea fields instead of #with.
|
|
275
|
+
- Implemented form.onsubmit_update method
|
|
276
|
+
|
|
277
|
+
Tue Apr 5 21:53:55 CET 2005 Michael Neumann <mneumann@ntecs.de>
|
|
278
|
+
|
|
279
|
+
* lib/wee/renderer/html/canvas.rb, lib/wee/renderer/html/brushes.rb,
|
|
280
|
+
examples/radio.rb: Added support for radio buttons.
|
|
281
|
+
(methods r.new_radio_group and r.radio_button)
|
|
282
|
+
|
|
283
|
+
--------------------------------------------------------------------
|
|
284
|
+
TAGGED 0.8.0
|
|
285
|
+
--------------------------------------------------------------------
|
|
286
|
+
|
|
1
287
|
Mon Apr 4 18:45:28 CET 2005 Michael Neumann <mneumann@ntecs.de>
|
|
2
288
|
|
|
3
289
|
* examples/ajax/ajax.rb, examples/ajax/ajax.js,
|
data/Features
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
= New in 0.9.0
|
|
2
|
+
|
|
3
|
+
== Nitro/Rails integration
|
|
4
|
+
|
|
5
|
+
Wee can now be used from within Nitro or Rails, but with limited functionality.
|
|
6
|
+
|
|
7
|
+
A brief example using Nitro+Wee:
|
|
8
|
+
|
|
9
|
+
require 'wee'
|
|
10
|
+
require 'wee/adaptors/nitro'
|
|
11
|
+
require 'wee/examples/calculator'
|
|
12
|
+
require 'nitro'
|
|
13
|
+
require 'nitro/contoller'
|
|
14
|
+
|
|
15
|
+
class AppController < Nitro::Controller
|
|
16
|
+
include Wee::Nitro::ControllerMixin
|
|
17
|
+
|
|
18
|
+
scaffold_with_component do
|
|
19
|
+
Wee::Examples::Calculator.new.
|
|
20
|
+
add_decoration(Wee::FormDecoration.new).
|
|
21
|
+
add_decoration(Wee::PageDecoration.new('Hello from Wee/Nitro!'))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Nitro.run(:host => '127.0.0.1', :port => 9999, :dispatcher => Nitro::Dispatcher.new('/app' => AppController))
|
|
26
|
+
|
|
27
|
+
How to use Rails+Wee (most stuff applies to Nitro as well):
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# In config/environment.rb add:
|
|
31
|
+
|
|
32
|
+
require 'wee'
|
|
33
|
+
require 'wee/adaptors/rails'
|
|
34
|
+
require 'components/mycomponent'
|
|
35
|
+
|
|
36
|
+
##
|
|
37
|
+
# In components/mycomponent.rb:
|
|
38
|
+
|
|
39
|
+
class MyComponent < Wee::Component
|
|
40
|
+
# ... your Wee component ...
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
##
|
|
44
|
+
# In app/controllers/wee_controller.rb:
|
|
45
|
+
|
|
46
|
+
class WeeController < ApplicationController
|
|
47
|
+
include Wee::Rails::ControllerMixin
|
|
48
|
+
|
|
49
|
+
register_component "my" do
|
|
50
|
+
MyComponent.new
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
##
|
|
55
|
+
# In app/views/index.rhtml:
|
|
56
|
+
|
|
57
|
+
<html><body>
|
|
58
|
+
<%= show_component 'my' %>
|
|
59
|
+
</body></html>
|
|
60
|
+
|
|
61
|
+
Of course you can render as many components as you like on one page.
|
|
62
|
+
You can create components dynamically at runtime with:
|
|
63
|
+
|
|
64
|
+
make_component component_name, component_object
|
|
65
|
+
|
|
66
|
+
For example instead of using 'register_component' in the WeeController
|
|
67
|
+
shown above, you could write:
|
|
68
|
+
|
|
69
|
+
def index
|
|
70
|
+
make_component('my', MyComponent.new) unless has_component?('my')
|
|
71
|
+
# render the view
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
If you don't need the component anymore, drop it:
|
|
75
|
+
|
|
76
|
+
drop_component 'my'
|
|
77
|
+
|
|
78
|
+
If you want to map 1:1 a Wee::Component to an ActionController, you can
|
|
79
|
+
use:
|
|
80
|
+
|
|
81
|
+
class WeeController < ApplicationController
|
|
82
|
+
include Wee::Rails::ControllerMixin
|
|
83
|
+
|
|
84
|
+
scaffold_with_component do
|
|
85
|
+
MyComponent.new
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
At the moment, only pageless mode is possible, so no backtracking is
|
|
90
|
+
performed.
|
|
91
|
+
|
|
92
|
+
NOTE: Your Wee components must be fully marshallable to work with Rails
|
|
93
|
+
CGI mode. That means, you are not allowed to use continuations, and no
|
|
94
|
+
code blocks (callbacks). For example instead of:
|
|
95
|
+
|
|
96
|
+
r.anchor.callback { answer true }
|
|
97
|
+
|
|
98
|
+
You have to write:
|
|
99
|
+
|
|
100
|
+
r.anchor.callback(:answer, true)
|
|
101
|
+
|
|
102
|
+
Or more general:
|
|
103
|
+
|
|
104
|
+
r.anchor.callback(Wee::LiteralMethodCallback.new(self, :answer, true))
|
|
105
|
+
|
|
106
|
+
== Changes in Html renderer
|
|
107
|
+
|
|
108
|
+
* r.label # => <label>...</label>
|
|
109
|
+
|
|
110
|
+
* r.hidden_input # => <input type="hidden" ...>
|
|
111
|
+
|
|
112
|
+
* r.anchor.info(info_url) # => <a href="/app/info_url/session_id/page_id">
|
|
113
|
+
|
|
114
|
+
* Added support for radio buttons (methods r.new_radio_group and r.radio_button)
|
|
115
|
+
|
|
116
|
+
* You can now use #value of textarea fields instead of #with.
|
|
117
|
+
|
|
118
|
+
* Implemented r.form.onsubmit_update method
|
|
119
|
+
|
|
120
|
+
* Method Brush::SelectListTag#selected takes optionally a block. In
|
|
121
|
+
this case, only those elements will be selected, for which the block
|
|
122
|
+
evaluates to true. This allows us to use some custom compare
|
|
123
|
+
functions instead of the default ones '==' or 'include?'.
|
|
124
|
+
|
|
125
|
+
* Method Brush::SelectListTag#labels also might be passed a block, in
|
|
126
|
+
which case the label is the return value of the block called with
|
|
127
|
+
the corresponding item as parameter.
|
|
128
|
+
|
|
129
|
+
* Added class Brush::CheckboxTag and corresponding methods
|
|
130
|
+
HtmlCanvas#check_box and alias #checkbox.
|
|
131
|
+
|
|
132
|
+
* Method HtmlCanvas#paragraph is no longer a single tag. It can now
|
|
133
|
+
contain other tags, e.g. like <p><a .../></p>.
|
|
134
|
+
|
|
135
|
+
* Added method HtmlCanvas#multiline_text, which replaces newline
|
|
136
|
+
characters (\n) in the text with <br/> tags.
|
|
137
|
+
|
|
138
|
+
== Changes in Templating
|
|
139
|
+
|
|
140
|
+
* Added :local option, with which one can
|
|
141
|
+
specify a template file relative to the component file, e.g:
|
|
142
|
+
|
|
143
|
+
class MyComponent < Wee::Component
|
|
144
|
+
template :render_this, :local => 'this.tmpl'
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
Futhermore, added an :r_as_param option, which generates a render
|
|
148
|
+
method that takes a renderer object as parameter 'r'.
|
|
149
|
+
|
|
150
|
+
== New components
|
|
151
|
+
|
|
152
|
+
* Wee::LoginDecoration
|
|
153
|
+
|
|
154
|
+
* Wee::ComponentDispatcher
|
|
155
|
+
For an example see examples/dispatcher.rb
|
|
156
|
+
|
|
157
|
+
* Wee::Pager
|
|
158
|
+
|
|
159
|
+
* Wee::Examples::Counter
|
|
160
|
+
You need to require 'wee/examples/counter'
|
|
161
|
+
|
|
162
|
+
* Wee::Examples::EditableCounter
|
|
163
|
+
You need to require 'wee/examples/editable_counter'
|
|
164
|
+
|
|
165
|
+
* Wee::Examples::Calculator
|
|
166
|
+
You need to require 'wee/examples/calculator'
|
|
167
|
+
|
|
168
|
+
== New Examples
|
|
169
|
+
|
|
170
|
+
* examples/dispatcher.rb
|
|
171
|
+
* examples/nitro/*
|
|
172
|
+
* examples/demo.rb
|
|
173
|
+
* examples/radio.rb
|
|
174
|
+
|
|
175
|
+
= Hello World
|
|
176
|
+
|
|
177
|
+
require 'wee'
|
|
178
|
+
|
|
179
|
+
class HelloWorld < Wee::Component
|
|
180
|
+
def render
|
|
181
|
+
r.h1 "Hello world!"
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
Wee.run(HelloWorld)
|