wee 0.9.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,3 +1,39 @@
1
+ Mon Jul 25 16:56:53 CEST 2005 Michael Neumann <mneumann@ntecs.de>
2
+
3
+ * lib/wee/databases/og/scaffolder.rb: Now works again with Og >= 0.21.0.
4
+ Enhanced for password input fields and for validation.
5
+
6
+ * lib/wee/renderer/html/brushes.rb, lib/wee/renderer/html/canvas.rb:
7
+
8
+ - Fixed bug in SelectListTag#selected where you could not pre-select
9
+ from [true, false] the false item.
10
+ - Added class PasswordInputTag and method HtmlCanvasRenderer#password_input
11
+
12
+ * examples/og-test.rb: Works now with 0g 0.21.0. Enhanced.
13
+
14
+ * lib/wee.rb: Version 0.10.0
15
+
16
+ Mon Jul 25 14:59:14 CEST 2005 Michael Neumann <mneumann@ntecs.de>
17
+
18
+ * lib/wee/renderer/html/brushes.rb:
19
+
20
+ - Refactored method html_attr (removed bool_attr) and all classes that use it.
21
+
22
+ - removed methods GenericTagBrush#css_class_for and ImageTag#src_for.
23
+
24
+ Tue Jul 19 15:57:51 CEST 2005 Michael Neumann <mneumann@ntecs.de>
25
+
26
+ * lib/wee/session.rb, lib/wee/idgen/simple.rb, lib/wee/pageless/session.rb,
27
+ lib/wee/application.rb, lib/wee/renderer/html/brushes.rb,
28
+ lib/wee/adaptors/rails.rb, lib/wee/adaptors/nitro.rb, lib/wee.rb,
29
+ examples/test.rb:
30
+ Renamed Wee::SimpleIdGenerator to Wee::SequentialIdGenerator.
31
+
32
+ * lib/wee/page.rb: removed as it is not used anymore (we have
33
+ wee/core/page.rb instead).
34
+
35
+ * Rakefile: added target 'tag'
36
+
1
37
  --------------------------------------------------------------------
2
38
  TAGGED 0.9.1
3
39
  --------------------------------------------------------------------
data/Rakefile CHANGED
@@ -30,6 +30,17 @@ task :install do
30
30
  ruby 'install.rb'
31
31
  end
32
32
 
33
+ task :tag do
34
+ if File.read('lib/wee.rb') =~ /Version\s+=\s+"(\d+\.\d+\.\d+)"/
35
+ version = $1
36
+ else
37
+ raise "no version"
38
+ end
39
+ baseurl = "svn+ssh://ntecs.de/data/projects/svn/public/Wee"
40
+
41
+ sh "svn cp -m 'tagged #{ version }' #{ baseurl }/trunk #{ baseurl }/tags/wee-#{ version }"
42
+ end
43
+
33
44
  task :clean => [:clobber_rdoc]
34
45
 
35
46
  task :default => [:test, :rdoc, :clean]
data/examples/og-test.rb CHANGED
@@ -2,12 +2,20 @@
2
2
  # The datamodel
3
3
  # -----------------------------------------
4
4
 
5
- require 'og'
5
+ require 'rubygems'
6
+ require_gem 'og', '>= 0.21.0'
6
7
 
7
- class Customer
8
- prop_accessor :address, String, :sql => 'VARCHAR(100) NOT NULL'
9
- prop_accessor :email, String, :sql => 'VARCHAR(50) NOT NULL'
10
- prop_accessor :password, String, :sql => 'VARCHAR(10) NOT NULL'
8
+ class Customer < Og::Entity
9
+ property :address, String, :sql => 'VARCHAR(100) NOT NULL'
10
+ property :email, String, :sql => 'VARCHAR(50) NOT NULL'
11
+ property :password, String, :sql => 'VARCHAR(10) NOT NULL', :ui => :password
12
+
13
+ property :birth_date, Date, :label => 'Date of Birth'
14
+ property :active, TrueClass
15
+
16
+ validate_value :address
17
+ validate_value :email
18
+ validate_value :password
11
19
  end
12
20
 
13
21
  # -----------------------------------------
@@ -38,14 +46,15 @@ if __FILE__ == $0
38
46
 
39
47
  DB_CONFIG = {
40
48
  :address => "localhost",
41
- :database => "mneumann",
42
- :backend => "psql",
49
+ :name => "mneumann",
50
+ :store => "psql",
43
51
  :user => "mneumann",
44
52
  :password => "",
53
+ #:destroy => true,
45
54
  :connection_count => 10
46
55
  }
47
56
 
48
57
  app = Wee::Utils.app_for(CustomerList, :application => OgApplication, :session => OgSession)
49
- app.db = Og::Database.new(DB_CONFIG)
58
+ app.db = Og.setup(DB_CONFIG)
50
59
  Wee::WEBrickAdaptor.register('/app' => app).start
51
60
  end
data/examples/test.rb CHANGED
@@ -32,7 +32,7 @@ if __FILE__ == $0
32
32
  require 'wee/adaptors/webrick'
33
33
  app = Wee::Application.new {|app|
34
34
  app.default_request_handler { MySession.new }
35
- app.id_generator = Wee::SimpleIdGenerator.new(rand(1_000_000))
35
+ app.id_generator = Wee::SequentialIdGenerator.new(rand(1_000_000))
36
36
  app.max_request_handlers = 2
37
37
  }
38
38
  Wee::WEBrickAdaptor.register('/app' => app).start
data/lib/wee.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Wee
2
- Version = "0.9.1"
2
+ Version = "0.10.0"
3
3
  LibPath = File.dirname(__FILE__)
4
4
  end
5
5
 
@@ -24,7 +24,7 @@ require 'wee/renderer/html/brushes'
24
24
  require 'wee/renderer/html/canvas'
25
25
  Wee::DefaultRenderer = Wee::HtmlCanvasRenderer
26
26
 
27
- require 'wee/idgen/simple'
27
+ require 'wee/idgen/sequential'
28
28
  require 'wee/idgen/md5'
29
29
 
30
30
  def Wee.run(component, add_page_decoration=true, mount_path='/app')
@@ -105,7 +105,7 @@ module Wee::Nitro
105
105
  if components.has_key?(name)
106
106
  raise "disallowed to overwrite component #{ name }"
107
107
  else
108
- components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SimpleIdGenerator.new))
108
+ components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new))
109
109
  end
110
110
  end
111
111
 
@@ -122,7 +122,7 @@ module Wee::Nitro
122
122
  end
123
123
 
124
124
  def _show_component(name, hash={}, out='')
125
- cb = Wee::CallbackRegistry.new(Wee::SimpleIdGenerator.new)
125
+ cb = Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new)
126
126
  rctx = Wee::RenderingContext.new(context(), cb, Wee::HtmlWriter.new(out))
127
127
  rctx.component_name = name
128
128
  rctx.controller = self
@@ -98,7 +98,7 @@ module Wee::Rails
98
98
  if components.has_key?(name)
99
99
  raise "disallowed to overwrite component #{ name }"
100
100
  else
101
- components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SimpleIdGenerator.new))
101
+ components[name] = Wee::PagelessComponentDriver.new(obj, Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new))
102
102
  end
103
103
  end
104
104
 
@@ -115,7 +115,7 @@ module Wee::Rails
115
115
  end
116
116
 
117
117
  def _show_component(name, hash={}, out='')
118
- cb = Wee::CallbackRegistry.new(Wee::SimpleIdGenerator.new)
118
+ cb = Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new)
119
119
  ctx = Wee::Context.new(@request, @response, @session)
120
120
  rctx = Wee::RenderingContext.new(ctx, cb, Wee::HtmlWriter.new(out))
121
121
  rctx.component_name = name
@@ -27,14 +27,14 @@ class Wee::Application
27
27
  #
28
28
  # Wee::Application.new {|app|
29
29
  # app.default_request_handler { MySession.new }
30
- # app.id_generator = Wee::SimpleIdGenerator.new
30
+ # app.id_generator = Wee::SequentialIdGenerator.new
31
31
  # app.max_request_handlers = 1000
32
32
  # }
33
33
 
34
34
  def initialize(&block)
35
35
  @request_handlers = Hash.new
36
36
  block.call(self)
37
- @id_generator ||= Wee::SimpleIdGenerator.new(rand(1_000_000))
37
+ @id_generator ||= Wee::SequentialIdGenerator.new(rand(1_000_000))
38
38
  if @default_request_handler.nil?
39
39
  raise ArgumentError, "No default request handler specified"
40
40
  end
@@ -1,11 +1,10 @@
1
- # This is a Rails-like scaffolder for use with Og (http://navel.gr/nitro)
2
- # domain objects.
1
+ # This is a Rails-like scaffolder for use with Og >= 0.21.0
2
+ # (http://navel.gr/nitro).
3
3
 
4
4
  class OgScaffolder < Wee::Component
5
5
  def initialize(domain_class)
6
6
  super()
7
7
  @domain_class = domain_class
8
- @props = @domain_class.__props.reject {|a| a.name == 'oid'}
9
8
  end
10
9
 
11
10
  def render
@@ -21,7 +20,7 @@ class OgScaffolder < Wee::Component
21
20
 
22
21
  def render_header
23
22
  r.table_row.with {
24
- @props.each {|prop|
23
+ each_property {|prop|
25
24
  render_property_header(prop)
26
25
  }
27
26
  render_action_header
@@ -35,7 +34,7 @@ class OgScaffolder < Wee::Component
35
34
 
36
35
  def render_property_header(prop)
37
36
  r.table_header.with {
38
- r.bold(prop.name.to_s.capitalize)
37
+ r.bold(prop.meta[:label] || prop.symbol.to_s.capitalize)
39
38
  }
40
39
  end
41
40
 
@@ -45,7 +44,7 @@ class OgScaffolder < Wee::Component
45
44
 
46
45
  def render_object(obj)
47
46
  r.table_row {
48
- @props.each {|prop| render_property(obj, prop) }
47
+ each_property {|prop| render_property(obj, prop) }
49
48
  render_action(obj)
50
49
  }
51
50
  end
@@ -59,7 +58,7 @@ class OgScaffolder < Wee::Component
59
58
  end
60
59
 
61
60
  def render_property(obj, prop)
62
- r.table_data(obj.send(prop.name).to_s)
61
+ r.table_data(obj.send(prop.symbol).to_s)
63
62
  end
64
63
 
65
64
  def edit(obj)
@@ -76,7 +75,7 @@ class OgScaffolder < Wee::Component
76
75
  end
77
76
 
78
77
  def confirm_destroy(obj, confirmed)
79
- obj.delete! if confirmed
78
+ obj.delete if confirmed
80
79
  end
81
80
 
82
81
  def domain_objects
@@ -90,6 +89,15 @@ class OgScaffolder < Wee::Component
90
89
  def editor_for(obj)
91
90
  editor_class.new(obj).add_decoration(Wee::FormDecoration.new)
92
91
  end
92
+
93
+ protected
94
+
95
+ def each_property
96
+ @domain_class.properties.each {|prop|
97
+ yield prop if prop.symbol != :oid
98
+ }
99
+ end
100
+
93
101
  end
94
102
 
95
103
  class OgScaffolder::Editor < Wee::Component
@@ -97,15 +105,15 @@ class OgScaffolder::Editor < Wee::Component
97
105
  def initialize(domain_object)
98
106
  super()
99
107
  @domain_object = domain_object
108
+ @errors = nil
100
109
  end
101
110
 
102
111
  def render
103
112
  render_header
113
+ render_errors if @errors
104
114
  each_property {|prop|
105
- unless prop.name == 'oid'
106
- render_label(prop)
107
- render_property(prop)
108
- end
115
+ render_label(prop)
116
+ render_property(prop)
109
117
  }
110
118
  render_buttons
111
119
  end
@@ -121,12 +129,27 @@ class OgScaffolder::Editor < Wee::Component
121
129
  r.h1 "#{ action } #{ @domain_object.class }"
122
130
  end
123
131
 
132
+ def render_errors
133
+ r.paragraph
134
+ r.h2 "Errors"
135
+ if @errors == :validation
136
+ r.ul {
137
+ @domain_object.errors.each do |sym, msg|
138
+ r.li("#{ sym }: #{ msg }")
139
+ end
140
+ }
141
+ else
142
+ r.text("Unexpected error occured")
143
+ end
144
+ end
145
+
124
146
  def render_property(prop)
125
147
  if prop.klass.ancestors.include?(Numeric)
126
148
  render_numeric(prop)
127
149
  elsif prop.klass.ancestors.include?(String)
128
150
  render_string(prop)
129
- elsif prop.klass.ancestors.include?(TrueClass)
151
+ elsif prop.klass.ancestors.include?(TrueClass) or
152
+ prop.klass.ancestors.include?(FalseClass)
130
153
  render_bool(prop)
131
154
  elsif prop.klass.ancestors.include?(Date)
132
155
  render_date(prop)
@@ -138,8 +161,11 @@ class OgScaffolder::Editor < Wee::Component
138
161
  end
139
162
 
140
163
  def render_string(prop)
141
- if prop.meta[:ui] == :textarea
164
+ case prop.meta[:ui]
165
+ when :textarea
142
166
  r.text_area.callback(:set_value_of, prop).with(get_value_of(prop))
167
+ when :password
168
+ r.password_input.value(get_value_of(prop)).callback(:set_value_of, prop)
143
169
  else
144
170
  r.text_input.value(get_value_of(prop)).callback(:set_value_of, prop)
145
171
  end
@@ -148,7 +174,7 @@ class OgScaffolder::Editor < Wee::Component
148
174
  def render_bool(prop)
149
175
  selected = get_value_of(prop) ? true : false
150
176
  r.select_list([true, false]).labels(["Yes", "No"]).selected(selected).
151
- callback {|choosen| set_value_of(prop, choosen) }
177
+ callback(:set_value_of, prop)
152
178
  end
153
179
 
154
180
  require 'date'
@@ -173,19 +199,31 @@ class OgScaffolder::Editor < Wee::Component
173
199
 
174
200
  def render_label(prop)
175
201
  r.paragraph
176
- r.text prop.name.capitalize
202
+ r.text(prop.meta[:label] || prop.symbol.to_s.capitalize)
177
203
  r.break
178
204
  end
179
205
 
180
- private
206
+ protected
181
207
 
182
- def each_property(&block)
183
- @domain_object.class.__props.each(&block)
208
+ def each_property
209
+ @domain_object.class.properties.each {|prop|
210
+ yield prop if prop.symbol != :oid
211
+ }
184
212
  end
185
213
 
186
214
  def save
187
- @domain_object.save!
188
- answer @domain_object
215
+ if @domain_object.valid?
216
+ begin
217
+ @domain_object.save
218
+ @errors = nil
219
+ rescue => err
220
+ @errors = err
221
+ end
222
+ else
223
+ @errors = :validation
224
+ end
225
+
226
+ answer @domain_object if @errors.nil?
189
227
  end
190
228
 
191
229
  def cancel
@@ -1,6 +1,6 @@
1
1
  # Returned ids are guaranteed to be unique, but they are easily guessable.
2
2
 
3
- class Wee::SimpleIdGenerator < Wee::IdGenerator
3
+ class Wee::SequentialIdGenerator < Wee::IdGenerator
4
4
  def initialize(initial_value=0)
5
5
  @value = initial_value
6
6
  end
@@ -34,7 +34,7 @@ class Wee::PagelessSession < Wee::Session
34
34
  end
35
35
 
36
36
  def handle_render_phase
37
- new_callbacks = Wee::CallbackRegistry.new(Wee::SimpleIdGenerator.new)
37
+ new_callbacks = Wee::CallbackRegistry.new(Wee::SequentialIdGenerator.new)
38
38
  respond(@context, new_callbacks) # render
39
39
  self.callbacks = new_callbacks
40
40
  end
@@ -19,7 +19,9 @@ class Brush
19
19
  end
20
20
  end
21
21
 
22
- class Brush::GenericTextBrush < Brush
22
+ class Brush
23
+
24
+ class GenericTextBrush < Brush
23
25
  def initialize(text)
24
26
  super()
25
27
  @text = text
@@ -33,7 +35,7 @@ class Brush::GenericTextBrush < Brush
33
35
  end
34
36
  end
35
37
 
36
- class Brush::GenericEncodedTextBrush < Brush
38
+ class GenericEncodedTextBrush < Brush
37
39
  def initialize(text)
38
40
  super()
39
41
  @text = text
@@ -47,36 +49,53 @@ class Brush::GenericEncodedTextBrush < Brush
47
49
  end
48
50
  end
49
51
 
50
- class Brush::GenericTagBrush < Brush
52
+ class GenericTagBrush < Brush
51
53
 
52
54
  class << self
53
55
  private
54
56
 
55
- def bool_attr(*attrs)
56
- attrs.each { |a|
57
+ def html_attr(attr, hash={})
58
+ name = hash[:html_name] || attr
59
+
60
+ case hash[:type]
61
+ when :bool
57
62
  class_eval "
58
- def #{ a }(bool=true)
63
+ def #{ attr }(bool=true)
59
64
  if bool
60
- @attributes['#{ a }'] = nil
65
+ @attributes['#{ name }'] = nil
61
66
  else
62
- @attributes.delete('#{ a }')
67
+ @attributes.delete('#{ name }')
63
68
  end
64
69
  self
65
70
  end
66
71
  "
67
- }
68
- end
69
-
70
- def html_attr(*attrs)
71
- attrs.each { |a|
72
+ else
72
73
  class_eval "
73
- def #{ a }(value)
74
- html_attr('#{ a }', value)
74
+ def #{ attr }(value)
75
+ if value == nil
76
+ @attributes.delete('#{ name }')
77
+ else
78
+ @attributes['#{ name }'] = value.to_s
79
+ end
80
+ self
75
81
  end
76
82
  "
77
- }
78
- end
83
+ end
79
84
 
85
+ if hash[:aliases]
86
+ hash[:aliases].each do |a|
87
+ class_eval "alias #{ a } #{ attr }"
88
+ end
89
+ end
90
+
91
+ if hash[:shortcuts]
92
+ hash[:shortcuts].each_pair do |k,v|
93
+ class_eval "
94
+ def #{ k }() #{ attr }(#{ v.inspect }) end
95
+ "
96
+ end
97
+ end
98
+ end
80
99
  end
81
100
 
82
101
  private
@@ -139,11 +158,9 @@ class Brush::GenericTagBrush < Brush
139
158
  @attributes = Hash.new
140
159
  end
141
160
 
142
- html_attr :type, :id
143
-
144
- def css_class(c)
145
- html_attr("class", c)
146
- end
161
+ html_attr 'type'
162
+ html_attr 'id'
163
+ html_attr 'css_class', :html_name => 'class'
147
164
 
148
165
  def onclick_callback(symbol=nil, *args, &block)
149
166
  raise ArgumentError if symbol and block
@@ -157,15 +174,6 @@ class Brush::GenericTagBrush < Brush
157
174
  onclick("javascript: new Ajax.Updater('#{ update_id }', '#{ url }', {method:'get'}); return false;")
158
175
  end
159
176
 
160
- # This method construct the css-class attribute by looking up the property
161
- # from the current component.
162
-
163
- def css_class_for(prop)
164
- val = @canvas.current_component.lookup_property(prop)
165
- raise "no property found for: <#{ prop }>" if val.nil?
166
- css_class(val)
167
- end
168
-
169
177
  def with(text=nil, &block)
170
178
  doc = @canvas.document
171
179
  if @is_single_tag
@@ -186,26 +194,17 @@ class Brush::GenericTagBrush < Brush
186
194
  end
187
195
  end
188
196
 
189
- class Brush::GenericSingleTagBrush < Brush::GenericTagBrush
197
+ class GenericSingleTagBrush < GenericTagBrush
190
198
  def initialize(tag)
191
199
  super(tag, true)
192
200
  end
193
201
  end
194
202
 
195
- class Brush::ImageTag < Brush::GenericSingleTagBrush
196
- html_attr :src
197
-
198
- # This method construct the src attribute by looking up the property from the
199
- # current component.
200
-
201
- def src_for(prop)
202
- val = @canvas.current_component.lookup_property(prop)
203
- raise "no property found for: <#{ prop }>" if val.nil?
204
- src(val)
205
- end
203
+ class ImageTag < GenericSingleTagBrush
204
+ html_attr 'src'
206
205
 
207
206
  def initialize
208
- super("img")
207
+ super('img')
209
208
  end
210
209
 
211
210
  def with
@@ -213,29 +212,31 @@ class Brush::ImageTag < Brush::GenericSingleTagBrush
213
212
  end
214
213
  end
215
214
 
216
- class Brush::JavascriptTag < Brush::GenericTagBrush
217
- html_attr :src, :type
215
+ class JavascriptTag < GenericTagBrush
216
+ html_attr 'src'
217
+ html_attr 'type'
218
218
 
219
219
  def initialize
220
- super("script")
221
- type("text/javascript")
220
+ super('script')
221
+ type('text/javascript')
222
222
  end
223
223
  end
224
224
 
225
- class Brush::TableTag < Brush::GenericTagBrush
225
+ class TableTag < GenericTagBrush
226
226
  def initialize
227
227
  super('table')
228
228
  end
229
229
  end
230
230
 
231
- class Brush::TableRowTag < Brush::GenericTagBrush
231
+ class TableRowTag < GenericTagBrush
232
232
  def initialize
233
233
  super('tr')
234
234
  end
235
235
 
236
- def align_top
237
- html_attr('align', 'top')
238
- end
236
+ html_attr 'align', :shortcuts => {
237
+ :align_top => 'top',
238
+ :align_bottom => 'bottom'
239
+ }
239
240
 
240
241
  def columns(*cols, &block)
241
242
  with {
@@ -278,28 +279,44 @@ class Brush::TableRowTag < Brush::GenericTagBrush
278
279
  end
279
280
  end
280
281
 
281
- class Brush::InputTag < Brush::GenericSingleTagBrush
282
+ class InputTag < GenericSingleTagBrush
282
283
  def initialize
283
284
  super('input')
284
285
  end
285
286
 
286
- html_attr :type, :name, :value, :size, :maxlength, :src
287
- bool_attr :checked, :disabled, :readonly
287
+ html_attr 'type'
288
+ html_attr 'name'
289
+ html_attr 'value'
290
+ html_attr 'size'
291
+ html_attr 'maxlength'
292
+ html_attr 'src'
293
+ html_attr 'checked', :type => :bool
294
+ html_attr 'disabled', :type => :bool
295
+ html_attr 'readonly', :type => :bool
288
296
 
289
297
  def with
290
298
  super
291
299
  end
292
300
  end
293
301
 
294
- class Brush::TextAreaTag < Brush::GenericTagBrush
302
+ class TextAreaTag < GenericTagBrush
295
303
  def initialize
296
304
  super('textarea')
297
305
  end
298
306
 
299
307
  alias callback __input_callback
300
308
 
301
- html_attr :name, :rows, :cols, :tabindex, :accesskey, :onfocus, :onblur, :onselect, :onchange
302
- bool_attr :disabled, :readonly
309
+ html_attr 'name'
310
+ html_attr 'rows'
311
+ html_attr 'cols'
312
+ html_attr 'tabindex'
313
+ html_attr 'accesskey'
314
+ html_attr 'onfocus'
315
+ html_attr 'onblur'
316
+ html_attr 'onselect'
317
+ html_attr 'onchange'
318
+ html_attr 'disabled', :type => :bool
319
+ html_attr 'readonly', :type => :bool
303
320
 
304
321
  def value(val)
305
322
  @value = val
@@ -319,18 +336,19 @@ class Brush::TextAreaTag < Brush::GenericTagBrush
319
336
  end
320
337
  end
321
338
 
322
- class Brush::SelectOptionTag < Brush::GenericTagBrush
339
+ class SelectOptionTag < GenericTagBrush
323
340
  def initialize
324
341
  super('option')
325
342
  end
326
343
 
327
- bool_attr :selected
344
+ html_attr 'selected', :type => :bool
328
345
  end
329
346
 
330
- class Brush::SelectListTag < Brush::GenericTagBrush
347
+ class SelectListTag < GenericTagBrush
331
348
 
332
- bool_attr :disabled, :readonly, :multiple
333
- alias multi multiple
349
+ html_attr 'disabled', :type => :bool
350
+ html_attr 'readonly', :type => :bool
351
+ html_attr 'multiple', :type => :bool, :aliases => [:multi]
334
352
 
335
353
  def initialize(items)
336
354
  super('select')
@@ -344,7 +362,7 @@ class Brush::SelectListTag < Brush::GenericTagBrush
344
362
 
345
363
  def selected(arg=nil, &block)
346
364
  raise if arg and block
347
- @selected = arg || block
365
+ @selected = block || arg
348
366
  self
349
367
  end
350
368
 
@@ -410,7 +428,7 @@ class Brush::SelectListTag < Brush::GenericTagBrush
410
428
  end
411
429
  end
412
430
 
413
- class Brush::HiddenInputTag < Brush::InputTag
431
+ class HiddenInputTag < InputTag
414
432
  def initialize
415
433
  super
416
434
  type('hidden')
@@ -419,7 +437,16 @@ class Brush::HiddenInputTag < Brush::InputTag
419
437
  alias callback __input_callback
420
438
  end
421
439
 
422
- class Brush::TextInputTag < Brush::InputTag
440
+ class PasswordInputTag < InputTag
441
+ def initialize
442
+ super
443
+ type('password')
444
+ end
445
+
446
+ alias callback __input_callback
447
+ end
448
+
449
+ class TextInputTag < InputTag
423
450
  def initialize
424
451
  super
425
452
  type('text')
@@ -428,7 +455,7 @@ class Brush::TextInputTag < Brush::InputTag
428
455
  alias callback __input_callback
429
456
  end
430
457
 
431
- class Brush::RadioButtonTag < Brush::InputTag
458
+ class RadioButtonTag < InputTag
432
459
  def initialize
433
460
  super
434
461
  type('radio')
@@ -438,7 +465,7 @@ class Brush::RadioButtonTag < Brush::InputTag
438
465
  def initialize(canvas)
439
466
  @name = canvas.register_callback(:input, self)
440
467
  @callbacks = {}
441
- @ids = Wee::SimpleIdGenerator.new
468
+ @ids = Wee::SequentialIdGenerator.new
442
469
  end
443
470
 
444
471
  def add_callback(callback)
@@ -478,7 +505,7 @@ class Brush::RadioButtonTag < Brush::InputTag
478
505
 
479
506
  end
480
507
 
481
- class Brush::CheckboxTag < Wee::Brush::InputTag
508
+ class CheckboxTag < InputTag
482
509
  def initialize
483
510
  super
484
511
  type('checkbox')
@@ -486,7 +513,7 @@ class Brush::CheckboxTag < Wee::Brush::InputTag
486
513
  alias callback __input_callback
487
514
  end
488
515
 
489
- class Brush::FileUploadTag < Brush::InputTag
516
+ class FileUploadTag < InputTag
490
517
  def initialize
491
518
  super
492
519
  type('file')
@@ -495,7 +522,7 @@ class Brush::FileUploadTag < Brush::InputTag
495
522
  alias callback __input_callback
496
523
  end
497
524
 
498
- class Brush::SubmitButtonTag < Brush::InputTag
525
+ class SubmitButtonTag < InputTag
499
526
  def initialize
500
527
  super
501
528
  type('submit')
@@ -511,7 +538,7 @@ end
511
538
  # #value method. Note that it's neccessary to parse the passed form-fields and
512
539
  # generate a "name" fields in the request, to make this image-button work.
513
540
 
514
- class Brush::ImageButtonTag < Brush::InputTag
541
+ class ImageButtonTag < InputTag
515
542
  def initialize
516
543
  super
517
544
  type('image')
@@ -524,29 +551,31 @@ class Brush::ImageButtonTag < Brush::InputTag
524
551
  end
525
552
  end
526
553
 
527
- class Brush::TableDataTag < Brush::GenericTagBrush
554
+ class TableDataTag < GenericTagBrush
528
555
  def initialize
529
556
  super('td')
530
557
  end
531
558
 
532
- def align_top
533
- html_attr('align', 'top')
534
- end
559
+ html_attr 'align', :shortcuts => {
560
+ :align_top => 'top',
561
+ :align_bottom => 'bottom'
562
+ }
535
563
  end
536
564
 
537
- class Brush::TableHeaderTag < Brush::GenericTagBrush
565
+ class TableHeaderTag < GenericTagBrush
538
566
  def initialize
539
567
  super('th')
540
568
  end
541
569
  end
542
570
 
543
- class Brush::FormTag < Brush::GenericTagBrush
571
+ class FormTag < GenericTagBrush
544
572
  def initialize
545
573
  super('form')
546
574
  @attributes['method'] = 'POST'
547
575
  end
548
576
 
549
- html_attr :action, :enctype
577
+ html_attr 'action'
578
+ html_attr 'enctype'
550
579
 
551
580
  alias __set_url action
552
581
  alias callback __actionurl_callback
@@ -567,14 +596,13 @@ class Brush::FormTag < Brush::GenericTagBrush
567
596
  end
568
597
  end
569
598
 
570
- class Brush::AnchorTag < Brush::GenericTagBrush
599
+ class AnchorTag < GenericTagBrush
571
600
  def initialize
572
601
  super('a')
573
602
  end
574
603
 
575
- html_attr :href, :title
576
- alias url href
577
- alias tooltip title
604
+ html_attr 'href', :aliases => [:url]
605
+ html_attr 'title', :aliases => [:tooltip]
578
606
 
579
607
  alias __set_url url
580
608
 
@@ -601,7 +629,7 @@ class Brush::AnchorTag < Brush::GenericTagBrush
601
629
 
602
630
  end
603
631
 
604
- class Brush::Page < Brush
632
+ class Page < Brush
605
633
  def title(t)
606
634
  @title = t
607
635
  self
@@ -634,4 +662,6 @@ class Brush::Page < Brush
634
662
  end
635
663
  end
636
664
 
665
+ end # class Brush
666
+
637
667
  end # module Wee
@@ -124,6 +124,10 @@ class HtmlCanvasRenderer < Renderer
124
124
  handle(Brush::HiddenInputTag.new, *args, &block)
125
125
  end
126
126
 
127
+ def password_input(*args, &block)
128
+ handle(Brush::PasswordInputTag.new, *args, &block)
129
+ end
130
+
127
131
  def text_input(*args, &block)
128
132
  handle(Brush::TextInputTag.new, *args, &block)
129
133
  end
data/lib/wee/session.rb CHANGED
@@ -21,7 +21,7 @@ class Wee::Session < Wee::AbstractSession
21
21
  protected
22
22
 
23
23
  def setup(&block)
24
- @idgen = Wee::SimpleIdGenerator.new
24
+ @idgen = Wee::SequentialIdGenerator.new
25
25
 
26
26
  with_session do
27
27
  block.call(self) if block
@@ -143,7 +143,7 @@ class Wee::Session < Wee::AbstractSession
143
143
  # Return a new Wee::Page object with the given snapshot assigned.
144
144
 
145
145
  def create_page(snapshot)
146
- idgen = Wee::SimpleIdGenerator.new
146
+ idgen = Wee::SequentialIdGenerator.new
147
147
  page = Wee::Page.new(snapshot, Wee::CallbackRegistry.new(idgen))
148
148
  end
149
149
 
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.8.4
3
3
  specification_version: 1
4
4
  name: wee
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.9.1
7
- date: 2005-07-18 00:00:00 +02:00
6
+ version: 0.10.0
7
+ date: 2005-07-25
8
8
  summary: Wee is a framework for building highly dynamic web applications.
9
9
  require_paths:
10
10
  - lib
@@ -24,8 +24,6 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
24
24
  version: 0.0.0
25
25
  version:
26
26
  platform: ruby
27
- signing_key:
28
- cert_chain:
29
27
  authors:
30
28
  - Michael Neumann
31
29
  files:
@@ -88,7 +86,6 @@ files:
88
86
  - doc/rdoc/files/lib/wee/idgen
89
87
  - doc/rdoc/files/lib/wee/databases
90
88
  - doc/rdoc/files/lib/wee/utils
91
- - doc/rdoc/files/lib/wee/examples
92
89
  - doc/rdoc/files/lib/wee/snapshot_ext_rb.html
93
90
  - doc/rdoc/files/lib/wee/callback_rb.html
94
91
  - doc/rdoc/files/lib/wee/snapshot_rb.html
@@ -96,6 +93,7 @@ files:
96
93
  - doc/rdoc/files/lib/wee/component_rb.html
97
94
  - doc/rdoc/files/lib/wee/template_rb.html
98
95
  - doc/rdoc/files/lib/wee/page_rb.html
96
+ - doc/rdoc/files/lib/wee/examples
99
97
  - doc/rdoc/files/lib/wee/component_ext_rb.html
100
98
  - doc/rdoc/files/lib/wee/components_rb.html
101
99
  - doc/rdoc/files/lib/wee/core_rb.html
@@ -105,8 +103,6 @@ files:
105
103
  - doc/rdoc/files/lib/wee/pageless_rb.html
106
104
  - doc/rdoc/files/lib/wee/application_rb.html
107
105
  - doc/rdoc/files/lib/wee/presenter_rb.html
108
- - doc/rdoc/files/lib/wee/abstractsession_rb.html
109
- - doc/rdoc/files/lib/wee/core_ext_rb.html
110
106
  - doc/rdoc/files/lib/wee/state_registry_rb.html
111
107
  - doc/rdoc/files/lib/wee/continuation_rb.html
112
108
  - doc/rdoc/files/lib/wee/holder_rb.html
@@ -118,24 +114,26 @@ files:
118
114
  - doc/rdoc/files/lib/wee/decoration_rb.html
119
115
  - doc/rdoc/files/lib/wee/stuff_rb.html
120
116
  - doc/rdoc/files/lib/wee/request_rb.html
121
- - doc/rdoc/files/lib/wee/components/login_decoration_rb.html
117
+ - doc/rdoc/files/lib/wee/core_ext_rb.html
118
+ - doc/rdoc/files/lib/wee/abstractsession_rb.html
119
+ - doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html
122
120
  - doc/rdoc/files/lib/wee/components/form_decoration_rb.html
123
121
  - doc/rdoc/files/lib/wee/components/messagebox_rb.html
124
- - doc/rdoc/files/lib/wee/components/pager_rb.html
125
- - doc/rdoc/files/lib/wee/components/wrapper_decoration_rb.html
126
122
  - doc/rdoc/files/lib/wee/components/page_decoration_rb.html
127
123
  - doc/rdoc/files/lib/wee/components/component_dispatcher_rb.html
124
+ - doc/rdoc/files/lib/wee/components/login_decoration_rb.html
125
+ - doc/rdoc/files/lib/wee/components/pager_rb.html
128
126
  - doc/rdoc/files/lib/wee/core/componentrunner_rb.html
129
127
  - doc/rdoc/files/lib/wee/core/valueholder_rb.html
130
128
  - doc/rdoc/files/lib/wee/core/callback_rb.html
131
129
  - doc/rdoc/files/lib/wee/core/snapshot_rb.html
132
- - doc/rdoc/files/lib/wee/core/page_rb.html
133
130
  - doc/rdoc/files/lib/wee/core/component_rb.html
131
+ - doc/rdoc/files/lib/wee/core/decoration_rb.html
132
+ - doc/rdoc/files/lib/wee/core/presenter_rb.html
134
133
  - doc/rdoc/files/lib/wee/core/context_rb.html
135
134
  - doc/rdoc/files/lib/wee/core/idgen_rb.html
136
135
  - doc/rdoc/files/lib/wee/core/renderer_rb.html
137
- - doc/rdoc/files/lib/wee/core/decoration_rb.html
138
- - doc/rdoc/files/lib/wee/core/presenter_rb.html
136
+ - doc/rdoc/files/lib/wee/core/page_rb.html
139
137
  - doc/rdoc/files/lib/wee/pageless/application_rb.html
140
138
  - doc/rdoc/files/lib/wee/pageless/session_rb.html
141
139
  - doc/rdoc/files/lib/wee/pageless/request_rb.html
@@ -150,10 +148,10 @@ files:
150
148
  - doc/rdoc/files/lib/wee/rendering/html/brushes_rb.html
151
149
  - doc/rdoc/files/lib/wee/rendering/html/canvas_rb.html
152
150
  - doc/rdoc/files/lib/wee/rendering/html/writer_rb.html
151
+ - doc/rdoc/files/lib/wee/adaptors/webrick_rb.html
152
+ - doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html
153
153
  - doc/rdoc/files/lib/wee/adaptors/rails_rb.html
154
154
  - doc/rdoc/files/lib/wee/adaptors/nitro_rb.html
155
- - doc/rdoc/files/lib/wee/adaptors/fastcgi_rb.html
156
- - doc/rdoc/files/lib/wee/adaptors/webrick_rb.html
157
155
  - doc/rdoc/files/lib/wee/skeleton/og
158
156
  - doc/rdoc/files/lib/wee/skeleton/simple
159
157
  - doc/rdoc/files/lib/wee/skeleton/og/models
@@ -185,14 +183,12 @@ files:
185
183
  - doc/rdoc/classes/Wee
186
184
  - doc/rdoc/classes/OgScaffolder
187
185
  - doc/rdoc/classes/Cache
188
- - doc/rdoc/classes/ActionView
189
186
  - doc/rdoc/classes/Enumerable.html
190
187
  - doc/rdoc/classes/Array.html
191
- - doc/rdoc/classes/ActionView.html
188
+ - doc/rdoc/classes/OgSession.html
192
189
  - doc/rdoc/classes/Wee.html
193
- - doc/rdoc/classes/Hash.html
194
- - doc/rdoc/classes/Main.html
195
190
  - doc/rdoc/classes/Struct.html
191
+ - doc/rdoc/classes/Main.html
196
192
  - doc/rdoc/classes/Cache.html
197
193
  - doc/rdoc/classes/OgApplication.html
198
194
  - doc/rdoc/classes/LiteralMethod.html
@@ -200,123 +196,125 @@ files:
200
196
  - doc/rdoc/classes/String.html
201
197
  - doc/rdoc/classes/Object.html
202
198
  - doc/rdoc/classes/Recipe.html
203
- - doc/rdoc/classes/OgSession.html
204
- - doc/rdoc/classes/Wee/Rails
205
- - doc/rdoc/classes/Wee/Nitro
199
+ - doc/rdoc/classes/ActionView.html
200
+ - doc/rdoc/classes/Hash.html
201
+ - doc/rdoc/classes/ActionView
206
202
  - doc/rdoc/classes/Wee/Utils
207
203
  - doc/rdoc/classes/Wee/Component
208
204
  - doc/rdoc/classes/Wee/StateRegistry
209
- - doc/rdoc/classes/Wee/Examples
210
205
  - doc/rdoc/classes/Wee/Brush
211
- - doc/rdoc/classes/Wee/LiteralMethodCallback.html
212
- - doc/rdoc/classes/Wee/SimpleIdGenerator.html
213
- - doc/rdoc/classes/Wee/Helper.html
214
206
  - doc/rdoc/classes/Wee/Session.html
215
- - doc/rdoc/classes/Wee/HtmlCanvasRenderer.html
207
+ - doc/rdoc/classes/Wee/Page.html
208
+ - doc/rdoc/classes/Wee/Helper.html
209
+ - doc/rdoc/classes/Wee/RefreshResponse.html
210
+ - doc/rdoc/classes/Wee/SimpleIdGenerator.html
211
+ - doc/rdoc/classes/Wee/GenericResponse.html
212
+ - doc/rdoc/classes/Wee/PageDecoration.html
213
+ - doc/rdoc/classes/Wee/RequestHandler.html
214
+ - doc/rdoc/classes/Wee/Decoration.html
215
+ - doc/rdoc/classes/Wee/AnswerDecoration.html
216
216
  - doc/rdoc/classes/Wee/MessageBox.html
217
217
  - doc/rdoc/classes/Wee/Response.html
218
- - doc/rdoc/classes/Wee/Pager.html
219
218
  - doc/rdoc/classes/Wee/Snapshot.html
220
- - doc/rdoc/classes/Wee/WEBrickAdaptor.html
221
219
  - doc/rdoc/classes/Wee/HtmlWriter.html
220
+ - doc/rdoc/classes/Wee/WEBrickAdaptor.html
221
+ - doc/rdoc/classes/Wee/PagelessRequest.html
222
222
  - doc/rdoc/classes/Wee/CallbackStream.html
223
223
  - doc/rdoc/classes/Wee/StateRegistry.html
224
- - doc/rdoc/classes/Wee/ValueHolder.html
225
- - doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html
226
224
  - doc/rdoc/classes/Wee/Delegate.html
225
+ - doc/rdoc/classes/Wee/ValueHolder.html
227
226
  - doc/rdoc/classes/Wee/Canvas.html
228
227
  - doc/rdoc/classes/Wee/FormDecoration.html
229
- - doc/rdoc/classes/Wee/PagelessRequest.html
230
- - doc/rdoc/classes/Wee/LoginDecoration.html
228
+ - doc/rdoc/classes/Wee/RedirectResponse.html
229
+ - doc/rdoc/classes/Wee/StateHolder.html
230
+ - doc/rdoc/classes/Wee/PagelessApplication.html
231
231
  - doc/rdoc/classes/Wee/RenderingContext.html
232
+ - doc/rdoc/classes/Wee/Brush.html
233
+ - doc/rdoc/classes/Wee/Context.html
232
234
  - doc/rdoc/classes/Wee/CallbackRegistry.html
233
235
  - doc/rdoc/classes/Wee/ErrorPage.html
234
236
  - doc/rdoc/classes/Wee/Request.html
237
+ - doc/rdoc/classes/Wee/LiteralMethodCallback.html
235
238
  - doc/rdoc/classes/Wee/WrapperDecoration.html
236
- - doc/rdoc/classes/Wee/Nitro.html
237
- - doc/rdoc/classes/Wee/HtmlCanvas.html
238
- - doc/rdoc/classes/Wee/Component.html
239
- - doc/rdoc/classes/Wee/RefreshResponse.html
240
- - doc/rdoc/classes/Wee/Page.html
241
- - doc/rdoc/classes/Wee/ComponentDispatcher.html
242
- - doc/rdoc/classes/Wee/Examples.html
243
- - doc/rdoc/classes/Wee/CanvasMixin.html
244
- - doc/rdoc/classes/Wee/PageDecoration.html
245
- - doc/rdoc/classes/Wee/RequestHandler.html
246
- - doc/rdoc/classes/Wee/Decoration.html
247
- - doc/rdoc/classes/Wee/GenericResponse.html
248
- - doc/rdoc/classes/Wee/ComponentRunner.html
249
- - doc/rdoc/classes/Wee/IdGenerator.html
250
- - doc/rdoc/classes/Wee/PagelessComponentDriver.html
251
- - doc/rdoc/classes/Wee/Renderer.html
252
- - doc/rdoc/classes/Wee/AnswerDecoration.html
253
- - doc/rdoc/classes/Wee/AbstractSession.html
254
- - doc/rdoc/classes/Wee/RedirectResponse.html
255
- - doc/rdoc/classes/Wee/StateHolder.html
256
- - doc/rdoc/classes/Wee/Context.html
257
- - doc/rdoc/classes/Wee/Brush.html
258
- - doc/rdoc/classes/Wee/PagelessApplication.html
259
- - doc/rdoc/classes/Wee/FastCGIAdaptor.html
260
239
  - doc/rdoc/classes/Wee/Callback.html
261
240
  - doc/rdoc/classes/Wee/MethodCallback.html
241
+ - doc/rdoc/classes/Wee/HtmlCanvas.html
262
242
  - doc/rdoc/classes/Wee/Utils.html
243
+ - doc/rdoc/classes/Wee/Component.html
263
244
  - doc/rdoc/classes/Wee/Application.html
264
245
  - doc/rdoc/classes/Wee/Presenter.html
265
246
  - doc/rdoc/classes/Wee/PagelessSession.html
266
247
  - doc/rdoc/classes/Wee/ErrorResponse.html
267
248
  - doc/rdoc/classes/Wee/Md5IdGenerator.html
249
+ - doc/rdoc/classes/Wee/Nitro
250
+ - doc/rdoc/classes/Wee/Nitro.html
251
+ - doc/rdoc/classes/Wee/Rails
252
+ - doc/rdoc/classes/Wee/CanvasMixin.html
268
253
  - doc/rdoc/classes/Wee/Rails.html
269
- - doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html
270
- - doc/rdoc/classes/Wee/Rails/FormTag.html
271
- - doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html
272
- - doc/rdoc/classes/Wee/Rails/ControllerMixin.html
273
- - doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html
274
- - doc/rdoc/classes/Wee/Nitro/FormTag.html
275
- - doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html
276
- - doc/rdoc/classes/Wee/Nitro/ControllerMixin.html
254
+ - doc/rdoc/classes/Wee/Examples
255
+ - doc/rdoc/classes/Wee/ComponentDispatcher.html
256
+ - doc/rdoc/classes/Wee/DupReplaceSnapshotMixin.html
257
+ - doc/rdoc/classes/Wee/Examples.html
258
+ - doc/rdoc/classes/Wee/ComponentRunner.html
259
+ - doc/rdoc/classes/Wee/IdGenerator.html
260
+ - doc/rdoc/classes/Wee/Renderer.html
261
+ - doc/rdoc/classes/Wee/Pager.html
262
+ - doc/rdoc/classes/Wee/FastCGIAdaptor.html
263
+ - doc/rdoc/classes/Wee/LoginDecoration.html
264
+ - doc/rdoc/classes/Wee/PagelessComponentDriver.html
265
+ - doc/rdoc/classes/Wee/AbstractSession.html
266
+ - doc/rdoc/classes/Wee/HtmlCanvasRenderer.html
277
267
  - doc/rdoc/classes/Wee/Utils/LRUCache.html
278
268
  - doc/rdoc/classes/Wee/Component/OnAnswer.html
279
269
  - doc/rdoc/classes/Wee/StateRegistry/Snapshot.html
280
270
  - doc/rdoc/classes/Wee/StateRegistry/WithObject.html
281
- - doc/rdoc/classes/Wee/Examples/Counter.html
282
- - doc/rdoc/classes/Wee/Examples/Window.html
283
- - doc/rdoc/classes/Wee/Examples/Calculator.html
284
- - doc/rdoc/classes/Wee/Examples/EditableCounter.html
285
271
  - doc/rdoc/classes/Wee/Brush/SelectListTag
286
- - doc/rdoc/classes/Wee/Brush/RadioButtonTag
287
- - doc/rdoc/classes/Wee/Brush/TableTag.html
272
+ - doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html
273
+ - doc/rdoc/classes/Wee/Brush/GenericTagBrush.html
288
274
  - doc/rdoc/classes/Wee/Brush/Page.html
289
- - doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html
290
275
  - doc/rdoc/classes/Wee/Brush/TableDataTag.html
291
- - doc/rdoc/classes/Wee/Brush/ActionMixin.html
292
- - doc/rdoc/classes/Wee/Brush/RadioButtonTag.html
293
- - doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html
294
- - doc/rdoc/classes/Wee/Brush/SelectOptionTag.html
295
- - doc/rdoc/classes/Wee/Brush/TableHeaderTag.html
296
- - doc/rdoc/classes/Wee/Brush/FormTag.html
297
- - doc/rdoc/classes/Wee/Brush/SelectListTag.html
298
- - doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html
299
- - doc/rdoc/classes/Wee/Brush/ToCallback.html
300
- - doc/rdoc/classes/Wee/Brush/FileUploadTag.html
301
276
  - doc/rdoc/classes/Wee/Brush/ImageTag.html
302
- - doc/rdoc/classes/Wee/Brush/HiddenInputTag.html
303
- - doc/rdoc/classes/Wee/Brush/TextAreaTag.html
304
- - doc/rdoc/classes/Wee/Brush/TableRowTag.html
305
- - doc/rdoc/classes/Wee/Brush/GenericTagBrush.html
306
- - doc/rdoc/classes/Wee/Brush/GenericSingleTagBrush.html
307
277
  - doc/rdoc/classes/Wee/Brush/InputCallbackMixin.html
308
- - doc/rdoc/classes/Wee/Brush/CheckboxTag.html
278
+ - doc/rdoc/classes/Wee/Brush/FileUploadTag.html
279
+ - doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html
280
+ - doc/rdoc/classes/Wee/Brush/ActionURLCallbackMixin.html
281
+ - doc/rdoc/classes/Wee/Brush/ActionMixin.html
282
+ - doc/rdoc/classes/Wee/Brush/TableTag.html
309
283
  - doc/rdoc/classes/Wee/Brush/GenericTextBrush.html
310
284
  - doc/rdoc/classes/Wee/Brush/AssignMixin.html
311
285
  - doc/rdoc/classes/Wee/Brush/InputTag.html
286
+ - doc/rdoc/classes/Wee/Brush/SubmitButtonTag.html
287
+ - doc/rdoc/classes/Wee/Brush/TableHeaderTag.html
288
+ - doc/rdoc/classes/Wee/Brush/FormTag.html
289
+ - doc/rdoc/classes/Wee/Brush/ActionCallbackMixin.html
290
+ - doc/rdoc/classes/Wee/Brush/ToCallback.html
312
291
  - doc/rdoc/classes/Wee/Brush/TextInputTag.html
313
292
  - doc/rdoc/classes/Wee/Brush/CallbackMixin.html
314
293
  - doc/rdoc/classes/Wee/Brush/JavascriptTag.html
294
+ - doc/rdoc/classes/Wee/Brush/SelectOptionTag.html
315
295
  - doc/rdoc/classes/Wee/Brush/AnchorTag.html
316
- - doc/rdoc/classes/Wee/Brush/GenericEncodedTextBrush.html
296
+ - doc/rdoc/classes/Wee/Brush/RadioButtonTag
297
+ - doc/rdoc/classes/Wee/Brush/SelectListTag.html
298
+ - doc/rdoc/classes/Wee/Brush/TextAreaTag.html
317
299
  - doc/rdoc/classes/Wee/Brush/ImageButtonTag.html
300
+ - doc/rdoc/classes/Wee/Brush/TableRowTag.html
301
+ - doc/rdoc/classes/Wee/Brush/HiddenInputTag.html
302
+ - doc/rdoc/classes/Wee/Brush/CheckboxTag.html
303
+ - doc/rdoc/classes/Wee/Brush/RadioButtonTag.html
318
304
  - doc/rdoc/classes/Wee/Brush/SelectListTag/SelectListCallback.html
319
305
  - doc/rdoc/classes/Wee/Brush/RadioButtonTag/RadioGroup.html
306
+ - doc/rdoc/classes/Wee/Nitro/ControllerClassMixin.html
307
+ - doc/rdoc/classes/Wee/Nitro/ControllerMixin.html
308
+ - doc/rdoc/classes/Wee/Nitro/FormTag.html
309
+ - doc/rdoc/classes/Wee/Nitro/HtmlCanvasRenderer.html
310
+ - doc/rdoc/classes/Wee/Rails/ControllerClassMixin.html
311
+ - doc/rdoc/classes/Wee/Rails/ControllerMixin.html
312
+ - doc/rdoc/classes/Wee/Rails/FormTag.html
313
+ - doc/rdoc/classes/Wee/Rails/HtmlCanvasRenderer.html
314
+ - doc/rdoc/classes/Wee/Examples/EditableCounter.html
315
+ - doc/rdoc/classes/Wee/Examples/Calculator.html
316
+ - doc/rdoc/classes/Wee/Examples/Window.html
317
+ - doc/rdoc/classes/Wee/Examples/Counter.html
320
318
  - doc/rdoc/classes/OgScaffolder/Editor.html
321
319
  - doc/rdoc/classes/Cache/Strategy
322
320
  - doc/rdoc/classes/Cache/StorageCache.html
@@ -360,7 +358,6 @@ files:
360
358
  - lib/wee/core_ext.rb
361
359
  - lib/wee/abstractsession.rb
362
360
  - lib/wee/template.rb
363
- - lib/wee/page.rb
364
361
  - lib/wee/skeleton/og
365
362
  - lib/wee/skeleton/simple
366
363
  - lib/wee/skeleton/og/models
@@ -382,8 +379,8 @@ files:
382
379
  - lib/wee/components/page_decoration.rb
383
380
  - lib/wee/components/component_dispatcher.rb
384
381
  - lib/wee/components/form_decoration.rb
385
- - lib/wee/idgen/simple.rb
386
382
  - lib/wee/idgen/md5.rb
383
+ - lib/wee/idgen/sequential.rb
387
384
  - lib/wee/databases/og
388
385
  - lib/wee/databases/og.rb
389
386
  - lib/wee/databases/og/old_scaffolder.rb
data/lib/wee/page.rb DELETED
@@ -1 +0,0 @@
1
- class Wee::Page < Struct.new(:snapshot, :callbacks); end