masterview 0.0.2 → 0.0.3

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.
Files changed (76) hide show
  1. data/CHANGELOG +3 -1
  2. data/Rakefile +201 -37
  3. metadata +23 -85
  4. data/generators/masterview/USAGE +0 -32
  5. data/generators/masterview/masterview_generator.rb +0 -277
  6. data/generators/masterview/templates/controller.rb +0 -50
  7. data/generators/masterview/templates/fields_scaffold.rhtml +0 -1
  8. data/generators/masterview/templates/form_scaffold.rhtml +0 -3
  9. data/generators/masterview/templates/functional_test.rb +0 -83
  10. data/generators/masterview/templates/helper.rb +0 -2
  11. data/generators/masterview/templates/layout.rhtml +0 -11
  12. data/generators/masterview/templates/list_head_scaffold.rhtml +0 -4
  13. data/generators/masterview/templates/list_line_scaffold.rhtml +0 -6
  14. data/generators/masterview/templates/masterview.rhtml +0 -182
  15. data/generators/masterview/templates/mvpreview.js +0 -31
  16. data/generators/masterview/templates/semantic.cache +0 -84
  17. data/generators/masterview/templates/show_scaffold.rhtml +0 -3
  18. data/generators/masterview/templates/style.css +0 -61
  19. data/generators/masterview_gem_plugin/masterview_gem_plugin_generator.rb +0 -21
  20. data/generators/masterview_gem_plugin/templates/init.rb +0 -43
  21. data/init.rb +0 -43
  22. data/lib/masterview/directive_base.rb +0 -163
  23. data/lib/masterview/directive_helpers.rb +0 -176
  24. data/lib/masterview/directives/block.rb +0 -30
  25. data/lib/masterview/directives/content.rb +0 -10
  26. data/lib/masterview/directives/else.rb +0 -25
  27. data/lib/masterview/directives/elsif.rb +0 -26
  28. data/lib/masterview/directives/form.rb +0 -19
  29. data/lib/masterview/directives/global_inline_erb.rb +0 -39
  30. data/lib/masterview/directives/hidden_field.rb +0 -31
  31. data/lib/masterview/directives/if.rb +0 -24
  32. data/lib/masterview/directives/insert_generated_comment.rb +0 -30
  33. data/lib/masterview/directives/javascript_include.rb +0 -15
  34. data/lib/masterview/directives/link_to.rb +0 -17
  35. data/lib/masterview/directives/link_to_if.rb +0 -21
  36. data/lib/masterview/directives/link_to_remote.rb +0 -17
  37. data/lib/masterview/directives/password_field.rb +0 -33
  38. data/lib/masterview/directives/preview.rb +0 -10
  39. data/lib/masterview/directives/replace.rb +0 -18
  40. data/lib/masterview/directives/stylesheet_link.rb +0 -14
  41. data/lib/masterview/directives/submit.rb +0 -14
  42. data/lib/masterview/directives/testfilter.rb +0 -55
  43. data/lib/masterview/directives/text_area.rb +0 -34
  44. data/lib/masterview/directives/text_field.rb +0 -33
  45. data/lib/masterview/extras/rails_init.rb +0 -67
  46. data/lib/masterview/extras/watcher.rb +0 -30
  47. data/lib/masterview/masterview_version.rb +0 -9
  48. data/lib/masterview/parser.rb +0 -585
  49. data/lib/masterview/plugin_load_tracking.rb +0 -41
  50. data/lib/masterview/runtime_helpers.rb +0 -9
  51. data/lib/masterview/string_extensions.rb +0 -15
  52. data/lib/masterview.rb +0 -130
  53. data/test/block_test.rb +0 -47
  54. data/test/content_test.rb +0 -26
  55. data/test/else_test.rb +0 -31
  56. data/test/elsif_test.rb +0 -31
  57. data/test/example_test.rb +0 -11
  58. data/test/filter_helpers_test.rb +0 -142
  59. data/test/form_test.rb +0 -66
  60. data/test/global_inline_erb_test.rb +0 -30
  61. data/test/hidden_field_test.rb +0 -62
  62. data/test/if_test.rb +0 -23
  63. data/test/javascript_include_test.rb +0 -26
  64. data/test/link_to_if_test.rb +0 -27
  65. data/test/link_to_test.rb +0 -52
  66. data/test/parser_test.rb +0 -166
  67. data/test/password_field_test.rb +0 -89
  68. data/test/replace_test.rb +0 -27
  69. data/test/run_parser_test.rb +0 -27
  70. data/test/stylesheet_link_test.rb +0 -26
  71. data/test/submit_test.rb +0 -54
  72. data/test/template_file_watcher_test.rb +0 -50
  73. data/test/template_test.rb +0 -181
  74. data/test/test_helper.rb +0 -24
  75. data/test/text_area_test.rb +0 -81
  76. data/test/text_field_test.rb +0 -89
data/CHANGELOG CHANGED
@@ -1 +1,3 @@
1
- 0.0.2 - April 16, 2006 - First public release
1
+ 0.0.3 - April 18, 2006 - Repackaging
2
+
3
+ 0.0.2 - April 16, 2006 - First public release
data/Rakefile CHANGED
@@ -9,31 +9,11 @@ require 'rake/contrib/rubyforgepublisher'
9
9
  $LOAD_PATH.unshift( File.join( File.dirname(__FILE__), 'lib') )
10
10
  require 'masterview'
11
11
 
12
- PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
13
- PKG_NAME = 'masterview'
14
- PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
15
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
16
- PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
17
-
18
- RELEASE_NAME = "REL #{PKG_VERSION}"
19
-
20
12
  RUBY_FORGE_PROJECT = "masterview"
21
13
  RUBY_FORGE_USER = "jeffbski"
22
14
  RUBY_FORGE_GROUPID = "1290"
23
15
  RUBY_FORGE_PACKAGEID = "1581" #verify this from http://rubyforge.org/frs/admin/?group_id=1290
24
16
 
25
-
26
- PKG_FILES = FileList[
27
- "lib/**/*",
28
- "generators/**/*",
29
- "directives/**/*",
30
- "test/**/*",
31
- "example/**/*",
32
- "[A-Z]*",
33
- "Rakefile",
34
- "init.rb"
35
- ].exclude(/\bCVS\b|~$|\.svn/)
36
-
37
17
  desc "Default Task"
38
18
  task :default => [ :test ]
39
19
 
@@ -114,28 +94,212 @@ end
114
94
  # Rake::SshDirPublisher.new("foobar.com", "dist/api/#{PKG_NAME}", "doc").upload
115
95
  #end
116
96
 
97
+ desc 'Build all packages'
98
+ task :package_all => ['masterview_complete:package',
99
+ 'masterview:package',
100
+ 'masterview_parser:package',
101
+ 'masterview_generator:package',
102
+ 'masterview_gem_plugin_generator:package']
103
+
104
+ desc 'Re-build all packages'
105
+ task :repackage_all => ['masterview_complete:repackage',
106
+ 'masterview:repackage',
107
+ 'masterview_parser:repackage',
108
+ 'masterview_generator:repackage',
109
+ 'masterview_gem_plugin_generator:repackage']
110
+
111
+ namespace 'masterview_complete' do
112
+ module MasterViewComplete
113
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
114
+ PKG_NAME = 'masterview_complete'
115
+ PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
116
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
117
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
118
+ RELEASE_NAME = "REL #{PKG_VERSION}"
119
+ PKG_FILES = FileList[
120
+ "lib/**/*",
121
+ "generators/**/*",
122
+ "directives/**/*",
123
+ "test/**/*",
124
+ "example/**/*",
125
+ "[A-Z]*",
126
+ "Rakefile",
127
+ "init.rb"
128
+ ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
129
+
130
+ spec = Gem::Specification.new do |s|
131
+ s.name = PKG_NAME
132
+ s.version = PKG_VERSION
133
+ s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials. This is the plugin version which contains everything."
134
+ s.has_rdoc = true
135
+ s.files = PKG_FILES
136
+ s.require_path = 'lib'
137
+ s.autorequire = 'masterview'
138
+ s.author = "Jeff Barczewski"
139
+ s.email = "jeff.barczewski@gmail.com"
140
+ s.homepage = "http://masterview.org/"
141
+ end
142
+
143
+ # Create Rubygem package
144
+ Rake::GemPackageTask.new(spec) do |p|
145
+ p.gem_spec = spec
146
+ p.need_tar = true
147
+ p.need_zip = true
148
+ end
149
+ end
150
+ end
151
+
152
+ namespace 'masterview' do
153
+ module MasterViewGem
154
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
155
+ PKG_NAME = 'masterview'
156
+ PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
157
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
158
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
159
+ RELEASE_NAME = "REL #{PKG_VERSION}"
160
+ PKG_FILES = FileList[
161
+ "[A-Z]*",
162
+ ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
163
+
164
+ spec = Gem::Specification.new do |s|
165
+ s.name = PKG_NAME
166
+ s.version = PKG_VERSION
167
+ s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials. Main gem which requires all others"
168
+ s.has_rdoc = true
169
+ s.files = PKG_FILES
170
+ s.require_path = 'lib'
171
+ #s.autorequire = 'masterview'
172
+ s.add_dependency 'masterview_parser'
173
+ s.add_dependency 'masterview_generator'
174
+ s.add_dependency 'masterview_gem_plugin_generator'
175
+ s.author = "Jeff Barczewski"
176
+ s.email = "jeff.barczewski@gmail.com"
177
+ s.homepage = "http://masterview.org/"
178
+ end
179
+
180
+ # Create Rubygem package
181
+ Rake::GemPackageTask.new(spec) do |p|
182
+ p.gem_spec = spec
183
+ p.need_tar = false
184
+ p.need_zip = false
185
+ end
186
+ end
187
+ end
188
+
189
+ namespace 'masterview_parser' do
190
+ module MasterViewParser
191
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
192
+ PKG_NAME = 'masterview_parser'
193
+ PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
194
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
195
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
196
+ RELEASE_NAME = "REL #{PKG_VERSION}"
197
+ PKG_FILES = FileList[
198
+ "lib/**/*",
199
+ "directives/**/*",
200
+ "test/**/*",
201
+ "example/**/*",
202
+ "[A-Z]*",
203
+ "Rakefile",
204
+ "init.rb"
205
+ ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
206
+
207
+ spec = Gem::Specification.new do |s|
208
+ s.name = PKG_NAME
209
+ s.version = PKG_VERSION
210
+ s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials. Parser gem"
211
+ s.has_rdoc = true
212
+ s.files = PKG_FILES
213
+ s.require_path = 'lib'
214
+ s.autorequire = 'masterview'
215
+ s.author = "Jeff Barczewski"
216
+ s.email = "jeff.barczewski@gmail.com"
217
+ s.homepage = "http://masterview.org/"
218
+ end
117
219
 
118
- spec = Gem::Specification.new do |s|
119
- s.name = PKG_NAME
120
- s.version = PKG_VERSION
121
- s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials"
122
- s.has_rdoc = true
123
- s.files = PKG_FILES
124
- s.require_path = 'lib'
125
- s.autorequire = 'masterview'
126
- s.add_dependency 'facets'
127
- s.author = "Jeff Barczewski"
128
- s.email = "jeff.barczewski@gmail.com"
129
- s.homepage = "http://masterview.org/"
220
+ # Create Rubygem package
221
+ Rake::GemPackageTask.new(spec) do |p|
222
+ p.gem_spec = spec
223
+ p.need_tar = false
224
+ p.need_zip = false
225
+ end
226
+ end
130
227
  end
131
228
 
132
- # Create Rubygem package
133
- Rake::GemPackageTask.new(spec) do |p|
134
- p.gem_spec = spec
135
- p.need_tar = true
136
- p.need_zip = true
229
+ namespace 'masterview_generator' do
230
+ module MasterViewGenerator
231
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
232
+ PKG_NAME = 'masterview_generator'
233
+ PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
234
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
235
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
236
+ RELEASE_NAME = "REL #{PKG_VERSION}"
237
+ PKG_FILES = FileList[
238
+ "generators/masterview/**/*",
239
+ "[A-Z]*"
240
+ ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
241
+
242
+ spec = Gem::Specification.new do |s|
243
+ s.name = PKG_NAME
244
+ s.version = PKG_VERSION
245
+ s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials. MasterView Generator for GEM"
246
+ s.has_rdoc = true
247
+ s.files = PKG_FILES
248
+ s.require_path = 'generators/masterview'
249
+ #s.autorequire = 'masterview_generator'
250
+ s.add_dependency 'masterview_parser'
251
+ s.author = "Jeff Barczewski"
252
+ s.email = "jeff.barczewski@gmail.com"
253
+ s.homepage = "http://masterview.org/"
254
+ end
255
+
256
+ # Create Rubygem package
257
+ Rake::GemPackageTask.new(spec) do |p|
258
+ p.gem_spec = spec
259
+ p.need_tar = false
260
+ p.need_zip = false
261
+ end
262
+ end
137
263
  end
138
264
 
265
+
266
+ namespace 'masterview_gem_plugin_generator' do
267
+ module MasterViewGemPluginGenerator
268
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
269
+ PKG_NAME = 'masterview_gem_plugin_generator'
270
+ PKG_VERSION = MasterView::VERSION::STRING + PKG_BUILD
271
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
272
+ PKG_DESTINATION = ENV["RAILS_PKG_DESTINATION"] || "../#{PKG_NAME}"
273
+ RELEASE_NAME = "REL #{PKG_VERSION}"
274
+ PKG_FILES = FileList[
275
+ "generators/masterview_gem_plugin/**/*",
276
+ "[A-Z]*"
277
+ ].exclude(/\bCVS\b|~$|\.svn|semantic.cache/)
278
+
279
+ spec = Gem::Specification.new do |s|
280
+ s.name = PKG_NAME
281
+ s.version = PKG_VERSION
282
+ s.summary = "A (x)html friendly template engine for rails with the power of layouts, and partials. MasterView Plugin Generator for GEM"
283
+ s.has_rdoc = true
284
+ s.files = PKG_FILES
285
+ s.require_path = 'generators/masterview_gem_plugin'
286
+ #s.autorequire = 'masterview_gem_plugin_generator'
287
+ s.add_dependency 'masterview_parser'
288
+ s.author = "Jeff Barczewski"
289
+ s.email = "jeff.barczewski@gmail.com"
290
+ s.homepage = "http://masterview.org/"
291
+ end
292
+
293
+ # Create Rubygem package
294
+ Rake::GemPackageTask.new(spec) do |p|
295
+ p.gem_spec = spec
296
+ p.need_tar = false
297
+ p.need_zip = false
298
+ end
299
+ end
300
+ end
301
+
302
+
139
303
  # --- Ruby forge release manager by florian gross -------------------------------------------------
140
304
  desc "Publish the release files to RubyForge."
141
305
  task :release => [:gem, :package] do
metadata CHANGED
@@ -3,16 +3,16 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: masterview
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.2
7
- date: 2006-04-17 00:00:00 -05:00
8
- summary: A (x)html friendly template engine for rails with the power of layouts, and partials
6
+ version: 0.0.3
7
+ date: 2006-04-18 00:00:00 -05:00
8
+ summary: A (x)html friendly template engine for rails with the power of layouts, and partials. Main gem which requires all others
9
9
  require_paths:
10
10
  - lib
11
11
  email: jeff.barczewski@gmail.com
12
12
  homepage: http://masterview.org/
13
13
  rubyforge_project:
14
14
  description:
15
- autorequire: masterview
15
+ autorequire:
16
16
  default_executable:
17
17
  bindir: bin
18
18
  has_rdoc: true
@@ -28,90 +28,10 @@ cert_chain:
28
28
  authors:
29
29
  - Jeff Barczewski
30
30
  files:
31
- - lib/masterview
32
- - lib/masterview.rb
33
- - lib/masterview/directives
34
- - lib/masterview/extras
35
- - lib/masterview/directive_base.rb
36
- - lib/masterview/masterview_version.rb
37
- - lib/masterview/parser.rb
38
- - lib/masterview/plugin_load_tracking.rb
39
- - lib/masterview/runtime_helpers.rb
40
- - lib/masterview/string_extensions.rb
41
- - lib/masterview/directive_helpers.rb
42
- - lib/masterview/directives/block.rb
43
- - lib/masterview/directives/content.rb
44
- - lib/masterview/directives/else.rb
45
- - lib/masterview/directives/elsif.rb
46
- - lib/masterview/directives/form.rb
47
- - lib/masterview/directives/global_inline_erb.rb
48
- - lib/masterview/directives/hidden_field.rb
49
- - lib/masterview/directives/if.rb
50
- - lib/masterview/directives/javascript_include.rb
51
- - lib/masterview/directives/link_to.rb
52
- - lib/masterview/directives/link_to_if.rb
53
- - lib/masterview/directives/link_to_remote.rb
54
- - lib/masterview/directives/password_field.rb
55
- - lib/masterview/directives/preview.rb
56
- - lib/masterview/directives/replace.rb
57
- - lib/masterview/directives/stylesheet_link.rb
58
- - lib/masterview/directives/testfilter.rb
59
- - lib/masterview/directives/text_area.rb
60
- - lib/masterview/directives/text_field.rb
61
- - lib/masterview/directives/submit.rb
62
- - lib/masterview/directives/insert_generated_comment.rb
63
- - lib/masterview/extras/rails_init.rb
64
- - lib/masterview/extras/watcher.rb
65
- - generators/masterview
66
- - generators/masterview_gem_plugin
67
- - generators/masterview/masterview_generator.rb
68
- - generators/masterview/templates
69
- - generators/masterview/USAGE
70
- - generators/masterview/templates/controller.rb
71
- - generators/masterview/templates/fields_scaffold.rhtml
72
- - generators/masterview/templates/form_scaffold.rhtml
73
- - generators/masterview/templates/functional_test.rb
74
- - generators/masterview/templates/helper.rb
75
- - generators/masterview/templates/layout.rhtml
76
- - generators/masterview/templates/list_head_scaffold.rhtml
77
- - generators/masterview/templates/list_line_scaffold.rhtml
78
- - generators/masterview/templates/masterview.rhtml
79
- - generators/masterview/templates/mvpreview.js
80
- - generators/masterview/templates/semantic.cache
81
- - generators/masterview/templates/show_scaffold.rhtml
82
- - generators/masterview/templates/style.css
83
- - generators/masterview_gem_plugin/templates
84
- - generators/masterview_gem_plugin/masterview_gem_plugin_generator.rb
85
- - generators/masterview_gem_plugin/templates/init.rb
86
- - test/block_test.rb
87
- - test/content_test.rb
88
- - test/else_test.rb
89
- - test/elsif_test.rb
90
- - test/example_test.rb
91
- - test/filter_helpers_test.rb
92
- - test/form_test.rb
93
- - test/global_inline_erb_test.rb
94
- - test/hidden_field_test.rb
95
- - test/if_test.rb
96
- - test/javascript_include_test.rb
97
- - test/link_to_if_test.rb
98
- - test/link_to_test.rb
99
- - test/parser_test.rb
100
- - test/password_field_test.rb
101
- - test/replace_test.rb
102
- - test/run_parser_test.rb
103
- - test/stylesheet_link_test.rb
104
- - test/submit_test.rb
105
- - test/template_file_watcher_test.rb
106
- - test/template_test.rb
107
- - test/test_helper.rb
108
- - test/text_area_test.rb
109
- - test/text_field_test.rb
110
31
  - CHANGELOG
111
32
  - MIT-LICENSE
112
33
  - Rakefile
113
34
  - README
114
- - init.rb
115
35
  test_files: []
116
36
 
117
37
  rdoc_options: []
@@ -126,7 +46,25 @@ requirements: []
126
46
 
127
47
  dependencies:
128
48
  - !ruby/object:Gem::Dependency
129
- name: facets
49
+ name: masterview_parser
50
+ version_requirement:
51
+ version_requirements: !ruby/object:Gem::Version::Requirement
52
+ requirements:
53
+ - - ">"
54
+ - !ruby/object:Gem::Version
55
+ version: 0.0.0
56
+ version:
57
+ - !ruby/object:Gem::Dependency
58
+ name: masterview_generator
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Version::Requirement
61
+ requirements:
62
+ - - ">"
63
+ - !ruby/object:Gem::Version
64
+ version: 0.0.0
65
+ version:
66
+ - !ruby/object:Gem::Dependency
67
+ name: masterview_gem_plugin_generator
130
68
  version_requirement:
131
69
  version_requirements: !ruby/object:Gem::Version::Requirement
132
70
  requirements:
@@ -1,32 +0,0 @@
1
- Description:
2
- The masterview generator creates a controller to interact with a model.
3
- If the model does not exist, it creates the model as well. The generated
4
- code is equivalent to the "scaffold :model" declaration, making it easy
5
- to migrate when you wish to customize your controller and views.
6
-
7
- The generator takes a model name, an optional controller name, and a
8
- list of views as arguments. Scaffolded actions and views are created
9
- automatically. Any views left over generate empty stubs.
10
-
11
- The scaffolded actions and views are:
12
- index, list, show, new, create, edit, update, destroy
13
-
14
- If a controller name is not given, the plural form of the model name
15
- will be used. The model and controller names may be given in CamelCase
16
- or under_score and should not be suffixed with 'Model' or 'Controller'.
17
- Both model and controller names may be prefixed with a module like a
18
- file path; see the Modules Example for usage.
19
-
20
- The masterview generator is heavily based on the shipped scaffold generator
21
- and the postback_generator by Tobias Luetke which follows the
22
- selfpostback style and moves the generated form into
23
- an partial. It also offers a lot more css hooks for customization.
24
-
25
- Example:
26
- ./script/generate masterview Account Bank debit credit
27
-
28
- This will generate an Account model and BankController with a full test
29
- suite and a basic user interface. Now create the accounts table in your
30
- database and browse to http://localhost/bank/ -- voila, you're on Rails!
31
-
32
-