wee 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. data/ChangeLog +75 -0
  2. data/README +17 -9
  3. data/Rakefile +2 -2
  4. data/TODO +20 -0
  5. data/benchmark/Makefile +14 -9
  6. data/benchmark/counter.rb +11 -30
  7. data/benchmark/report_req.rb +12 -0
  8. data/doc/rdoc/classes/Array.html +12 -12
  9. data/doc/rdoc/classes/Cache/StorageCache.html +38 -38
  10. data/doc/rdoc/classes/Cache/Strategy/CapacityBounded.html +30 -30
  11. data/doc/rdoc/classes/Cache/Strategy/LFU.html +24 -24
  12. data/doc/rdoc/classes/Cache/Strategy/LRU.html +24 -24
  13. data/doc/rdoc/classes/Cache/Strategy/Unbounded.html +24 -24
  14. data/doc/rdoc/classes/Enumerable.html +6 -6
  15. data/doc/rdoc/classes/Object.html +12 -12
  16. data/doc/rdoc/classes/OgApplication.html +126 -0
  17. data/doc/rdoc/classes/OgScaffolder.html +401 -0
  18. data/doc/rdoc/classes/OgSession.html +172 -0
  19. data/doc/rdoc/classes/String.html +12 -12
  20. data/doc/rdoc/classes/Struct.html +12 -12
  21. data/doc/rdoc/classes/Wee.html +5 -62
  22. data/doc/rdoc/classes/Wee/AnswerDecoration.html +9 -9
  23. data/doc/rdoc/classes/Wee/Application.html +107 -39
  24. data/doc/rdoc/classes/Wee/Brush.html +22 -18
  25. data/doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html +17 -11
  26. data/doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html +18 -10
  27. data/doc/rdoc/classes/Wee/Brush/AnchorTag.html +30 -64
  28. data/doc/rdoc/classes/Wee/Brush/FileUploadTag.html +8 -10
  29. data/doc/rdoc/classes/Wee/Brush/FormTag.html +27 -79
  30. data/doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html +12 -12
  31. data/doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html +146 -0
  32. data/doc/rdoc/classes/Wee/Brush/GenericTagBrush.html +179 -65
  33. data/doc/rdoc/classes/Wee/Brush/GenericTextBrush.html +12 -12
  34. data/doc/rdoc/classes/Wee/Brush/ImageButtonTag.html +16 -18
  35. data/doc/rdoc/classes/Wee/Brush/ImageTag.html +203 -0
  36. data/doc/rdoc/classes/Wee/Brush/InputCallbackMixin.html +17 -11
  37. data/doc/rdoc/classes/Wee/Brush/InputTag.html +15 -15
  38. data/doc/rdoc/classes/Wee/Brush/JavascriptTag.html +147 -0
  39. data/doc/rdoc/classes/Wee/Brush/Page.html +17 -17
  40. data/doc/rdoc/classes/Wee/Brush/SelectListTag.html +25 -50
  41. data/doc/rdoc/classes/Wee/Brush/SelectOptionTag.html +7 -38
  42. data/doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html +7 -7
  43. data/doc/rdoc/classes/Wee/Brush/TableDataTag.html +15 -16
  44. data/doc/rdoc/classes/Wee/Brush/TableHeaderTag.html +7 -7
  45. data/doc/rdoc/classes/Wee/Brush/TableRowTag.html +65 -50
  46. data/doc/rdoc/classes/Wee/Brush/TableTag.html +7 -7
  47. data/doc/rdoc/classes/Wee/Brush/TextAreaTag.html +14 -64
  48. data/doc/rdoc/classes/Wee/Brush/TextInputTag.html +7 -7
  49. data/doc/rdoc/classes/Wee/Brush/ToCallback.html +146 -0
  50. data/doc/rdoc/classes/Wee/CallbackRegistry.html +40 -40
  51. data/doc/rdoc/classes/Wee/CallbackStream.html +18 -18
  52. data/doc/rdoc/classes/Wee/Canvas.html +24 -24
  53. data/doc/rdoc/classes/Wee/Component.html +232 -149
  54. data/doc/rdoc/classes/Wee/Component/OnAnswer.html +153 -0
  55. data/doc/rdoc/classes/Wee/Decoration.html +42 -42
  56. data/doc/rdoc/classes/Wee/Delegate.html +27 -27
  57. data/doc/rdoc/classes/Wee/ErrorResponse.html +12 -12
  58. data/doc/rdoc/classes/Wee/FormDecoration.html +148 -0
  59. data/doc/rdoc/classes/Wee/GenericResponse.html +6 -6
  60. data/doc/rdoc/classes/Wee/HtmlCanvas.html +296 -215
  61. data/doc/rdoc/classes/Wee/HtmlWriter.html +83 -81
  62. data/doc/rdoc/classes/Wee/LiteralMethodCallback.html +21 -16
  63. data/doc/rdoc/classes/Wee/MessageBox.html +180 -0
  64. data/doc/rdoc/classes/Wee/PageDecoration.html +30 -30
  65. data/doc/rdoc/classes/Wee/Presenter.html +237 -69
  66. data/doc/rdoc/classes/Wee/RedirectResponse.html +6 -6
  67. data/doc/rdoc/classes/Wee/RefreshResponse.html +6 -6
  68. data/doc/rdoc/classes/Wee/Request.html +18 -18
  69. data/doc/rdoc/classes/Wee/RequestHandler.html +43 -39
  70. data/doc/rdoc/classes/Wee/Response.html +24 -24
  71. data/doc/rdoc/classes/Wee/Session.html +746 -72
  72. data/doc/rdoc/classes/Wee/SimpleIdGenerator.html +18 -18
  73. data/doc/rdoc/classes/Wee/Snapshot.html +19 -19
  74. data/doc/rdoc/classes/Wee/Utils.html +138 -2
  75. data/doc/rdoc/classes/Wee/Utils/LRUCache.html +7 -7
  76. data/doc/rdoc/classes/Wee/ValueHolder.html +18 -18
  77. data/doc/rdoc/classes/Wee/WEBrickAdaptor.html +43 -68
  78. data/doc/rdoc/classes/Wee/WrapperDecoration.html +150 -0
  79. data/doc/rdoc/created.rid +1 -1
  80. data/doc/rdoc/files/README.html +29 -15
  81. data/doc/rdoc/files/lib/wee/adaptors/webrick_rb.html +1 -1
  82. data/doc/rdoc/files/lib/wee/application_rb.html +1 -1
  83. data/doc/rdoc/files/lib/wee/components/form_decoration_rb.html +101 -0
  84. data/doc/rdoc/files/lib/wee/components/messagebox_rb.html +101 -0
  85. data/doc/rdoc/files/lib/wee/components/page_decoration_rb.html +1 -1
  86. data/doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html +101 -0
  87. data/doc/rdoc/files/lib/wee/components_rb.html +4 -1
  88. data/doc/rdoc/files/lib/wee/continuation/core/component_rb.html +101 -0
  89. data/doc/rdoc/files/lib/wee/continuation/session_rb.html +110 -0
  90. data/doc/rdoc/files/lib/wee/continuation_rb.html +116 -0
  91. data/doc/rdoc/files/lib/wee/core/callback_rb.html +1 -1
  92. data/doc/rdoc/files/lib/wee/core/component_rb.html +1 -1
  93. data/doc/rdoc/files/lib/wee/core/presenter_rb.html +1 -1
  94. data/doc/rdoc/files/lib/wee/core_rb.html +3 -3
  95. data/doc/rdoc/files/lib/wee/databases/og_rb.html +108 -0
  96. data/doc/rdoc/files/lib/wee/renderer/html/brushes_rb.html +1 -1
  97. data/doc/rdoc/files/lib/wee/renderer/html/canvas_rb.html +1 -1
  98. data/doc/rdoc/files/lib/wee/renderer/html/writer_rb.html +1 -1
  99. data/doc/rdoc/files/lib/wee/requesthandler_rb.html +1 -1
  100. data/doc/rdoc/files/lib/wee/session_rb.html +1 -2
  101. data/doc/rdoc/files/lib/wee/utils/autoreload_rb.html +1 -1
  102. data/doc/rdoc/files/lib/wee/utils/cache_rb.html +1 -1
  103. data/doc/rdoc/files/lib/wee/utils/helper_rb.html +1 -8
  104. data/doc/rdoc/files/lib/wee/utils_rb.html +110 -0
  105. data/doc/rdoc/files/lib/wee_rb.html +1 -1
  106. data/doc/rdoc/fr_class_index.html +11 -1
  107. data/doc/rdoc/fr_file_index.html +8 -0
  108. data/doc/rdoc/fr_method_index.html +269 -228
  109. data/examples/calculator.rb +69 -0
  110. data/examples/calendar.rb +5 -17
  111. data/examples/example.rb +2 -2
  112. data/examples/hw.rb +17 -0
  113. data/examples/live-update.rb +45 -0
  114. data/examples/og-test.rb +51 -0
  115. data/lib/wee.rb +1 -1
  116. data/lib/wee/adaptors/webrick.rb +2 -0
  117. data/lib/wee/application.rb +16 -0
  118. data/lib/wee/components.rb +3 -0
  119. data/lib/wee/components/form_decoration.rb +7 -0
  120. data/{test → lib/wee}/components/messagebox.rb +1 -1
  121. data/lib/wee/components/page_decoration.rb +5 -5
  122. data/lib/wee/components/wrapper_decoration.rb +7 -0
  123. data/lib/wee/continuation.rb +5 -0
  124. data/lib/wee/continuation/core/component.rb +55 -0
  125. data/lib/wee/continuation/session.rb +217 -0
  126. data/lib/wee/core/callback.rb +11 -6
  127. data/lib/wee/core/component.rb +45 -33
  128. data/lib/wee/core/presenter.rb +68 -0
  129. data/lib/wee/databases/og.rb +114 -0
  130. data/lib/wee/renderer/html/brushes.rb +179 -98
  131. data/lib/wee/renderer/html/canvas.rb +37 -13
  132. data/lib/wee/renderer/html/writer.rb +34 -32
  133. data/lib/wee/requesthandler.rb +6 -3
  134. data/lib/wee/session.rb +73 -54
  135. data/lib/wee/utils.rb +5 -0
  136. data/lib/wee/utils/autoreload.rb +1 -1
  137. data/lib/wee/utils/cache.rb +0 -2
  138. data/lib/wee/utils/helper.rb +40 -8
  139. data/test/components/calltest-cont.rb +16 -0
  140. data/test/components/calltest.rb +15 -10
  141. data/test/stress.rb +31 -28
  142. data/test/stress_and_measure.rb +53 -0
  143. data/test/stressed_application.rb +15 -0
  144. data/test/test_html_writer.rb +9 -4
  145. metadata +236 -195
  146. data/benchmark/bench.sh +0 -24
@@ -88,9 +88,9 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000166">current</a>&nbsp;&nbsp;
92
- <a href="#M000165">new</a>&nbsp;&nbsp;
93
- <a href="#M000167">next</a>&nbsp;&nbsp;
91
+ <a href="#M000202">current</a>&nbsp;&nbsp;
92
+ <a href="#M000201">new</a>&nbsp;&nbsp;
93
+ <a href="#M000203">next</a>&nbsp;&nbsp;
94
94
  </div>
95
95
  </div>
96
96
 
@@ -112,19 +112,19 @@
112
112
  <div id="methods">
113
113
  <h3 class="section-bar">Public Class methods</h3>
114
114
 
115
- <div id="method-M000165" class="method-detail">
116
- <a name="M000165"></a>
115
+ <div id="method-M000201" class="method-detail">
116
+ <a name="M000201"></a>
117
117
 
118
118
  <div class="method-heading">
119
- <a href="#M000165" class="method-signature">
119
+ <a href="#M000201" class="method-signature">
120
120
  <span class="method-name">new</span><span class="method-args">(initial_value=0)</span>
121
121
  </a>
122
122
  </div>
123
123
 
124
124
  <div class="method-description">
125
125
  <p><a class="source-toggle" href="#"
126
- onclick="toggleCode('M000165-source');return false;">[Source]</a></p>
127
- <div class="method-source-code" id="M000165-source">
126
+ onclick="toggleCode('M000201-source');return false;">[Source]</a></p>
127
+ <div class="method-source-code" id="M000201-source">
128
128
  <pre>
129
129
  <span class="ruby-comment cmt"># File lib/wee/idgen.rb, line 2</span>
130
130
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">initial_value</span>=<span class="ruby-value">0</span>)
@@ -137,19 +137,19 @@
137
137
 
138
138
  <h3 class="section-bar">Public Instance methods</h3>
139
139
 
140
- <div id="method-M000166" class="method-detail">
141
- <a name="M000166"></a>
140
+ <div id="method-M000202" class="method-detail">
141
+ <a name="M000202"></a>
142
142
 
143
143
  <div class="method-heading">
144
- <a href="#M000166" class="method-signature">
144
+ <a href="#M000202" class="method-signature">
145
145
  <span class="method-name">current</span><span class="method-args">()</span>
146
146
  </a>
147
147
  </div>
148
148
 
149
149
  <div class="method-description">
150
150
  <p><a class="source-toggle" href="#"
151
- onclick="toggleCode('M000166-source');return false;">[Source]</a></p>
152
- <div class="method-source-code" id="M000166-source">
151
+ onclick="toggleCode('M000202-source');return false;">[Source]</a></p>
152
+ <div class="method-source-code" id="M000202-source">
153
153
  <pre>
154
154
  <span class="ruby-comment cmt"># File lib/wee/idgen.rb, line 6</span>
155
155
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current</span>
@@ -160,19 +160,19 @@
160
160
  </div>
161
161
  </div>
162
162
 
163
- <div id="method-M000167" class="method-detail">
164
- <a name="M000167"></a>
163
+ <div id="method-M000203" class="method-detail">
164
+ <a name="M000203"></a>
165
165
 
166
166
  <div class="method-heading">
167
- <a href="#M000167" class="method-signature">
167
+ <a href="#M000203" class="method-signature">
168
168
  <span class="method-name">next</span><span class="method-args">()</span>
169
169
  </a>
170
170
  </div>
171
171
 
172
172
  <div class="method-description">
173
173
  <p><a class="source-toggle" href="#"
174
- onclick="toggleCode('M000167-source');return false;">[Source]</a></p>
175
- <div class="method-source-code" id="M000167-source">
174
+ onclick="toggleCode('M000203-source');return false;">[Source]</a></p>
175
+ <div class="method-source-code" id="M000203-source">
176
176
  <pre>
177
177
  <span class="ruby-comment cmt"># File lib/wee/idgen.rb, line 10</span>
178
178
  <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">next</span>
@@ -86,7 +86,7 @@ This class is for backtracking the state of components (or
86
86
  decorations/presenters). Components that want an undo-facility to be
87
87
  implemented (triggered for example by a browsers back-button), have to
88
88
  overwrite the <a
89
- href="Component.html#M000186">Component#backtrack_state</a> method. Class
89
+ href="Component.html#M000222">Component#backtrack_state</a> method. Class
90
90
  <a href="Snapshot.html">Wee::Snapshot</a> simply represents a collection of
91
91
  objects from which snapshots were taken via methods take_snapshot.
92
92
  </p>
@@ -100,9 +100,9 @@ objects from which snapshots were taken via methods take_snapshot.
100
100
  <h3 class="section-bar">Methods</h3>
101
101
 
102
102
  <div class="name-list">
103
- <a href="#M000075">add</a>&nbsp;&nbsp;
104
- <a href="#M000074">new</a>&nbsp;&nbsp;
105
- <a href="#M000076">restore</a>&nbsp;&nbsp;
103
+ <a href="#M000093">add</a>&nbsp;&nbsp;
104
+ <a href="#M000092">new</a>&nbsp;&nbsp;
105
+ <a href="#M000094">restore</a>&nbsp;&nbsp;
106
106
  </div>
107
107
  </div>
108
108
 
@@ -124,19 +124,19 @@ objects from which snapshots were taken via methods take_snapshot.
124
124
  <div id="methods">
125
125
  <h3 class="section-bar">Public Class methods</h3>
126
126
 
127
- <div id="method-M000074" class="method-detail">
128
- <a name="M000074"></a>
127
+ <div id="method-M000092" class="method-detail">
128
+ <a name="M000092"></a>
129
129
 
130
130
  <div class="method-heading">
131
- <a href="#M000074" class="method-signature">
131
+ <a href="#M000092" class="method-signature">
132
132
  <span class="method-name">new</span><span class="method-args">()</span>
133
133
  </a>
134
134
  </div>
135
135
 
136
136
  <div class="method-description">
137
137
  <p><a class="source-toggle" href="#"
138
- onclick="toggleCode('M000074-source');return false;">[Source]</a></p>
139
- <div class="method-source-code" id="M000074-source">
138
+ onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
139
+ <div class="method-source-code" id="M000092-source">
140
140
  <pre>
141
141
  <span class="ruby-comment cmt"># File lib/wee/core/snapshot.rb, line 9</span>
142
142
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
@@ -149,19 +149,19 @@ objects from which snapshots were taken via methods take_snapshot.
149
149
 
150
150
  <h3 class="section-bar">Public Instance methods</h3>
151
151
 
152
- <div id="method-M000075" class="method-detail">
153
- <a name="M000075"></a>
152
+ <div id="method-M000093" class="method-detail">
153
+ <a name="M000093"></a>
154
154
 
155
155
  <div class="method-heading">
156
- <a href="#M000075" class="method-signature">
156
+ <a href="#M000093" class="method-signature">
157
157
  <span class="method-name">add</span><span class="method-args">(object)</span>
158
158
  </a>
159
159
  </div>
160
160
 
161
161
  <div class="method-description">
162
162
  <p><a class="source-toggle" href="#"
163
- onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
164
- <div class="method-source-code" id="M000075-source">
163
+ onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
164
+ <div class="method-source-code" id="M000093-source">
165
165
  <pre>
166
166
  <span class="ruby-comment cmt"># File lib/wee/core/snapshot.rb, line 13</span>
167
167
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">object</span>)
@@ -173,19 +173,19 @@ objects from which snapshots were taken via methods take_snapshot.
173
173
  </div>
174
174
  </div>
175
175
 
176
- <div id="method-M000076" class="method-detail">
177
- <a name="M000076"></a>
176
+ <div id="method-M000094" class="method-detail">
177
+ <a name="M000094"></a>
178
178
 
179
179
  <div class="method-heading">
180
- <a href="#M000076" class="method-signature">
180
+ <a href="#M000094" class="method-signature">
181
181
  <span class="method-name">restore</span><span class="method-args">()</span>
182
182
  </a>
183
183
  </div>
184
184
 
185
185
  <div class="method-description">
186
186
  <p><a class="source-toggle" href="#"
187
- onclick="toggleCode('M000076-source');return false;">[Source]</a></p>
188
- <div class="method-source-code" id="M000076-source">
187
+ onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
188
+ <div class="method-source-code" id="M000094-source">
189
189
  <pre>
190
190
  <span class="ruby-comment cmt"># File lib/wee/core/snapshot.rb, line 18</span>
191
191
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restore</span>
@@ -55,8 +55,16 @@
55
55
  <tr class="top-aligned-row">
56
56
  <td><strong>In:</strong></td>
57
57
  <td>
58
- <a href="../../files/lib/wee/utils/cache_rb.html">
59
- lib/wee/utils/cache.rb
58
+ <a href="../../files/lib/wee/utils_rb.html">
59
+ lib/wee/utils.rb
60
+ </a>
61
+ <br />
62
+ <a href="../../files/lib/wee/utils/autoreload_rb.html">
63
+ lib/wee/utils/autoreload.rb
64
+ </a>
65
+ <br />
66
+ <a href="../../files/lib/wee/utils/helper_rb.html">
67
+ lib/wee/utils/helper.rb
60
68
  </a>
61
69
  <br />
62
70
  </td>
@@ -76,6 +84,14 @@
76
84
 
77
85
  </div>
78
86
 
87
+ <div id="method-list">
88
+ <h3 class="section-bar">Methods</h3>
89
+
90
+ <div class="name-list">
91
+ <a href="#M000045">app_for</a>&nbsp;&nbsp;
92
+ <a href="#M000044">autoreload</a>&nbsp;&nbsp;
93
+ </div>
94
+ </div>
79
95
 
80
96
  </div>
81
97
 
@@ -98,6 +114,126 @@
98
114
 
99
115
 
100
116
  <!-- if method_list -->
117
+ <div id="methods">
118
+ <h3 class="section-bar">Public Class methods</h3>
119
+
120
+ <div id="method-M000045" class="method-detail">
121
+ <a name="M000045"></a>
122
+
123
+ <div class="method-heading">
124
+ <a href="#M000045" class="method-signature">
125
+ <span class="method-name">app_for</span><span class="method-args">(component=nil, options={}, &amp;block)</span>
126
+ </a>
127
+ </div>
128
+
129
+ <div class="method-description">
130
+ <dl>
131
+ <dt><tt>component</tt></dt><dd>The component class for which to create an application object. If a block
132
+ is given, this will be invoked to create a new component object.
133
+
134
+ </dd>
135
+ <dt><tt>options</tt></dt><dd>A Hash. Following keys are accepted:
136
+
137
+ <dl>
138
+ <dt>:application</dt><dd>The application class to use (default: <a
139
+ href="Application.html">Wee::Application</a>)
140
+
141
+ </dd>
142
+ <dt>:session</dt><dd>The session class to use (default: <a href="Session.html">Wee::Session</a>)
143
+
144
+ </dd>
145
+ <dt>:page_cache_capacity</dt><dd>The size of the sessions page_store (default: 10)
146
+
147
+ </dd>
148
+ <dt>:id_seed</dt><dd>Initial value of the <a href="SimpleIdGenerator.html">SimpleIdGenerator</a>
149
+ (default: rand(1_000_000))
150
+
151
+ </dd>
152
+ </dl>
153
+ </dd>
154
+ </dl>
155
+ <p><a class="source-toggle" href="#"
156
+ onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
157
+ <div class="method-source-code" id="M000045-source">
158
+ <pre>
159
+ <span class="ruby-comment cmt"># File lib/wee/utils/helper.rb, line 22</span>
160
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">app_for</span>(<span class="ruby-identifier">component</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">options</span>={}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
161
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;either component or block must be given&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">component</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">nil?</span>
162
+
163
+ <span class="ruby-identifier">defaults</span> = {
164
+ <span class="ruby-identifier">:application</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">Application</span>,
165
+ <span class="ruby-identifier">:session</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">Session</span>,
166
+ <span class="ruby-identifier">:page_cache_capacity</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span>,
167
+ <span class="ruby-identifier">:id_seed</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">rand</span>(<span class="ruby-value">1_000_000</span>)
168
+ }
169
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">defaults</span>.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">options</span>)
170
+
171
+ <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:application</span>].<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">app</span><span class="ruby-operator">|</span>
172
+ <span class="ruby-identifier">app</span>.<span class="ruby-identifier">default_request_handler</span> {
173
+ <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:session</span>].<span class="ruby-identifier">new</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">sess</span><span class="ruby-operator">|</span>
174
+ <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">component</span>
175
+ <span class="ruby-identifier">sess</span>.<span class="ruby-identifier">root_component</span> = <span class="ruby-identifier">component</span>.<span class="ruby-identifier">new</span>
176
+ <span class="ruby-keyword kw">else</span>
177
+ <span class="ruby-identifier">sess</span>.<span class="ruby-identifier">root_component</span> = <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>
178
+ <span class="ruby-keyword kw">end</span>
179
+ <span class="ruby-identifier">sess</span>.<span class="ruby-identifier">page_store</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">Utils</span><span class="ruby-operator">::</span><span class="ruby-constant">LRUCache</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:page_cache_capacity</span>])
180
+ }
181
+ }
182
+ <span class="ruby-identifier">app</span>.<span class="ruby-identifier">id_generator</span> = <span class="ruby-constant">Wee</span><span class="ruby-operator">::</span><span class="ruby-constant">SimpleIdGenerator</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:id_seed</span>])
183
+ }
184
+ <span class="ruby-keyword kw">end</span>
185
+ </pre>
186
+ </div>
187
+ </div>
188
+ </div>
189
+
190
+ <h3 class="section-bar">Public Instance methods</h3>
191
+
192
+ <div id="method-M000044" class="method-detail">
193
+ <a name="M000044"></a>
194
+
195
+ <div class="method-heading">
196
+ <a href="#M000044" class="method-signature">
197
+ <span class="method-name">autoreload</span><span class="method-args">(check_interval=10)</span>
198
+ </a>
199
+ </div>
200
+
201
+ <div class="method-description">
202
+ <p><a class="source-toggle" href="#"
203
+ onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
204
+ <div class="method-source-code" id="M000044-source">
205
+ <pre>
206
+ <span class="ruby-comment cmt"># File lib/wee/utils/autoreload.rb, line 4</span>
207
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">autoreload</span>(<span class="ruby-identifier">check_interval</span>=<span class="ruby-value">10</span>)
208
+ <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">start_time</span><span class="ruby-operator">|</span>
209
+ <span class="ruby-identifier">file_mtime</span> = {}
210
+ <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
211
+ <span class="ruby-identifier">sleep</span> <span class="ruby-identifier">check_interval</span>
212
+ <span class="ruby-identifier">$LOADED_FEATURES</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">feature</span><span class="ruby-operator">|</span>
213
+ <span class="ruby-identifier">$LOAD_PATH</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">lp</span><span class="ruby-operator">|</span>
214
+ <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">lp</span>, <span class="ruby-identifier">feature</span>)
215
+ <span class="ruby-keyword kw">if</span> (<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">file</span>) <span class="ruby-keyword kw">and</span>
216
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">file</span>).<span class="ruby-identifier">mtime</span> <span class="ruby-operator">&gt;</span> (<span class="ruby-identifier">file_mtime</span>[<span class="ruby-identifier">file</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">start_time</span>))
217
+ <span class="ruby-identifier">file_mtime</span>[<span class="ruby-identifier">file</span>] = <span class="ruby-constant">File</span>.<span class="ruby-identifier">stat</span>(<span class="ruby-identifier">file</span>).<span class="ruby-identifier">mtime</span>
218
+ <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;reload #{ file }&quot;</span>
219
+ <span class="ruby-keyword kw">begin</span>
220
+ <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>)
221
+ <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
222
+ <span class="ruby-constant">STDERR</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">inspect</span>
223
+ <span class="ruby-keyword kw">end</span>
224
+ <span class="ruby-keyword kw">end</span>
225
+ <span class="ruby-keyword kw">end</span>
226
+ <span class="ruby-keyword kw">end</span>
227
+ <span class="ruby-keyword kw">end</span>
228
+ }
229
+ <span class="ruby-keyword kw">end</span>
230
+ </pre>
231
+ </div>
232
+ </div>
233
+ </div>
234
+
235
+
236
+ </div>
101
237
 
102
238
 
103
239
  </div>
@@ -88,7 +88,7 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000035">new</a>&nbsp;&nbsp;
91
+ <a href="#M000046">new</a>&nbsp;&nbsp;
92
92
  </div>
93
93
  </div>
94
94
 
@@ -110,21 +110,21 @@
110
110
  <div id="methods">
111
111
  <h3 class="section-bar">Public Class methods</h3>
112
112
 
113
- <div id="method-M000035" class="method-detail">
114
- <a name="M000035"></a>
113
+ <div id="method-M000046" class="method-detail">
114
+ <a name="M000046"></a>
115
115
 
116
116
  <div class="method-heading">
117
- <a href="#M000035" class="method-signature">
117
+ <a href="#M000046" class="method-signature">
118
118
  <span class="method-name">new</span><span class="method-args">(capacity=20)</span>
119
119
  </a>
120
120
  </div>
121
121
 
122
122
  <div class="method-description">
123
123
  <p><a class="source-toggle" href="#"
124
- onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
125
- <div class="method-source-code" id="M000035-source">
124
+ onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
125
+ <div class="method-source-code" id="M000046-source">
126
126
  <pre>
127
- <span class="ruby-comment cmt"># File lib/wee/utils/cache.rb, line 6</span>
127
+ <span class="ruby-comment cmt"># File lib/wee/utils/cache.rb, line 4</span>
128
128
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">capacity</span>=<span class="ruby-value">20</span>)
129
129
  <span class="ruby-keyword kw">super</span>(<span class="ruby-constant">Cache</span><span class="ruby-operator">::</span><span class="ruby-constant">Strategy</span><span class="ruby-operator">::</span><span class="ruby-constant">LRU</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">capacity</span>))
130
130
  <span class="ruby-keyword kw">end</span>
@@ -97,9 +97,9 @@ href="Component.html">Wee::Component</a>.
97
97
  <h3 class="section-bar">Methods</h3>
98
98
 
99
99
  <div class="name-list">
100
- <a href="#M000169">new</a>&nbsp;&nbsp;
101
- <a href="#M000171">restore_snapshot</a>&nbsp;&nbsp;
102
- <a href="#M000170">take_snapshot</a>&nbsp;&nbsp;
100
+ <a href="#M000205">new</a>&nbsp;&nbsp;
101
+ <a href="#M000207">restore_snapshot</a>&nbsp;&nbsp;
102
+ <a href="#M000206">take_snapshot</a>&nbsp;&nbsp;
103
103
  </div>
104
104
  </div>
105
105
 
@@ -134,19 +134,19 @@ href="Component.html">Wee::Component</a>.
134
134
  <div id="methods">
135
135
  <h3 class="section-bar">Public Class methods</h3>
136
136
 
137
- <div id="method-M000169" class="method-detail">
138
- <a name="M000169"></a>
137
+ <div id="method-M000205" class="method-detail">
138
+ <a name="M000205"></a>
139
139
 
140
140
  <div class="method-heading">
141
- <a href="#M000169" class="method-signature">
141
+ <a href="#M000205" class="method-signature">
142
142
  <span class="method-name">new</span><span class="method-args">(value=nil)</span>
143
143
  </a>
144
144
  </div>
145
145
 
146
146
  <div class="method-description">
147
147
  <p><a class="source-toggle" href="#"
148
- onclick="toggleCode('M000169-source');return false;">[Source]</a></p>
149
- <div class="method-source-code" id="M000169-source">
148
+ onclick="toggleCode('M000205-source');return false;">[Source]</a></p>
149
+ <div class="method-source-code" id="M000205-source">
150
150
  <pre>
151
151
  <span class="ruby-comment cmt"># File lib/wee/core/valueholder.rb, line 8</span>
152
152
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">value</span>=<span class="ruby-keyword kw">nil</span>)
@@ -159,19 +159,19 @@ href="Component.html">Wee::Component</a>.
159
159
 
160
160
  <h3 class="section-bar">Public Instance methods</h3>
161
161
 
162
- <div id="method-M000171" class="method-detail">
163
- <a name="M000171"></a>
162
+ <div id="method-M000207" class="method-detail">
163
+ <a name="M000207"></a>
164
164
 
165
165
  <div class="method-heading">
166
- <a href="#M000171" class="method-signature">
166
+ <a href="#M000207" class="method-signature">
167
167
  <span class="method-name">restore_snapshot</span><span class="method-args">(value)</span>
168
168
  </a>
169
169
  </div>
170
170
 
171
171
  <div class="method-description">
172
172
  <p><a class="source-toggle" href="#"
173
- onclick="toggleCode('M000171-source');return false;">[Source]</a></p>
174
- <div class="method-source-code" id="M000171-source">
173
+ onclick="toggleCode('M000207-source');return false;">[Source]</a></p>
174
+ <div class="method-source-code" id="M000207-source">
175
175
  <pre>
176
176
  <span class="ruby-comment cmt"># File lib/wee/core/valueholder.rb, line 16</span>
177
177
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restore_snapshot</span>(<span class="ruby-identifier">value</span>)
@@ -182,19 +182,19 @@ href="Component.html">Wee::Component</a>.
182
182
  </div>
183
183
  </div>
184
184
 
185
- <div id="method-M000170" class="method-detail">
186
- <a name="M000170"></a>
185
+ <div id="method-M000206" class="method-detail">
186
+ <a name="M000206"></a>
187
187
 
188
188
  <div class="method-heading">
189
- <a href="#M000170" class="method-signature">
189
+ <a href="#M000206" class="method-signature">
190
190
  <span class="method-name">take_snapshot</span><span class="method-args">()</span>
191
191
  </a>
192
192
  </div>
193
193
 
194
194
  <div class="method-description">
195
195
  <p><a class="source-toggle" href="#"
196
- onclick="toggleCode('M000170-source');return false;">[Source]</a></p>
197
- <div class="method-source-code" id="M000170-source">
196
+ onclick="toggleCode('M000206-source');return false;">[Source]</a></p>
197
+ <div class="method-source-code" id="M000206-source">
198
198
  <pre>
199
199
  <span class="ruby-comment cmt"># File lib/wee/core/valueholder.rb, line 12</span>
200
200
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">take_snapshot</span>