formeze 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +20 -8
- data/formeze.gemspec +1 -1
- data/lib/formeze.rb +6 -0
- data/spec/formeze_spec.rb +26 -45
- metadata +2 -2
data/README.md
CHANGED
@@ -17,20 +17,16 @@ what it accepts as input.
|
|
17
17
|
Example usage
|
18
18
|
-------------
|
19
19
|
|
20
|
-
Forms are just "plain old ruby objects"
|
21
|
-
|
22
|
-
untouched (i.e. you can define your own initialization). Here is a minimal
|
23
|
-
example, which defines a form with a single "title" field:
|
20
|
+
Forms are just "plain old ruby objects" with added behaviour. Here is a
|
21
|
+
minimal example, which defines a form with a single "title" field:
|
24
22
|
|
25
23
|
```ruby
|
26
|
-
class ExampleForm
|
27
|
-
Formeze.setup(self)
|
28
|
-
|
24
|
+
class ExampleForm < Formeze::Form
|
29
25
|
field :title
|
30
26
|
end
|
31
27
|
```
|
32
28
|
|
33
|
-
This form can then be used to parse and validate
|
29
|
+
This form can then be used to parse and validate input data like this:
|
34
30
|
|
35
31
|
```ruby
|
36
32
|
form = ExampleForm.new
|
@@ -40,6 +36,22 @@ form.parse('title=Title')
|
|
40
36
|
form.title # => "Title"
|
41
37
|
```
|
42
38
|
|
39
|
+
If you prefer not to inherit from the `Formeze::Form` class then you can
|
40
|
+
instead call the `Formeze.setup` method like this:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
class ExampleForm
|
44
|
+
Formeze.setup(self)
|
45
|
+
|
46
|
+
field :title
|
47
|
+
end
|
48
|
+
```
|
49
|
+
|
50
|
+
Both styles of setup will include the formeze class methods and instance
|
51
|
+
methods but will otherwise leave the object untouched (i.e. you can define
|
52
|
+
your own initialization logic).
|
53
|
+
|
54
|
+
|
43
55
|
Detecting errors
|
44
56
|
----------------
|
45
57
|
|
data/formeze.gemspec
CHANGED
data/lib/formeze.rb
CHANGED
data/spec/formeze_spec.rb
CHANGED
@@ -3,9 +3,7 @@ require 'minitest/autorun'
|
|
3
3
|
require_relative '../lib/formeze'
|
4
4
|
require 'i18n'
|
5
5
|
|
6
|
-
class FormWithField
|
7
|
-
Formeze.setup(self)
|
8
|
-
|
6
|
+
class FormWithField < Formeze::Form
|
9
7
|
field :title
|
10
8
|
end
|
11
9
|
|
@@ -113,9 +111,7 @@ describe 'FormWithField after parsing input containing newlines' do
|
|
113
111
|
end
|
114
112
|
end
|
115
113
|
|
116
|
-
class FormWithOptionalField
|
117
|
-
Formeze.setup(self)
|
118
|
-
|
114
|
+
class FormWithOptionalField < Formeze::Form
|
119
115
|
field :title, required: false
|
120
116
|
end
|
121
117
|
|
@@ -132,9 +128,7 @@ describe 'FormWithOptionalField after parsing blank input' do
|
|
132
128
|
end
|
133
129
|
end
|
134
130
|
|
135
|
-
class FormWithFieldThatCanHaveMultipleLines
|
136
|
-
Formeze.setup(self)
|
137
|
-
|
131
|
+
class FormWithFieldThatCanHaveMultipleLines < Formeze::Form
|
138
132
|
field :description, multiline: true
|
139
133
|
end
|
140
134
|
|
@@ -151,9 +145,7 @@ describe 'FormWithFieldThatCanHaveMultipleLines after parsing input containing n
|
|
151
145
|
end
|
152
146
|
end
|
153
147
|
|
154
|
-
class FormWithCharacterLimitedField
|
155
|
-
Formeze.setup(self)
|
156
|
-
|
148
|
+
class FormWithCharacterLimitedField < Formeze::Form
|
157
149
|
field :title, char_limit: 16
|
158
150
|
end
|
159
151
|
|
@@ -170,9 +162,7 @@ describe 'FormWithCharacterLimitedField after parsing input with too many charac
|
|
170
162
|
end
|
171
163
|
end
|
172
164
|
|
173
|
-
class FormWithWordLimitedField
|
174
|
-
Formeze.setup(self)
|
175
|
-
|
165
|
+
class FormWithWordLimitedField < Formeze::Form
|
176
166
|
field :title, word_limit: 2
|
177
167
|
end
|
178
168
|
|
@@ -189,9 +179,7 @@ describe 'FormWithWordLimitedField after parsing input with too many words' do
|
|
189
179
|
end
|
190
180
|
end
|
191
181
|
|
192
|
-
class FormWithFieldThatMustMatchPattern
|
193
|
-
Formeze.setup(self)
|
194
|
-
|
182
|
+
class FormWithFieldThatMustMatchPattern < Formeze::Form
|
195
183
|
field :number, pattern: /\A\d+\z/
|
196
184
|
end
|
197
185
|
|
@@ -221,9 +209,7 @@ describe 'FormWithFieldThatMustMatchPattern after parsing input that does not ma
|
|
221
209
|
end
|
222
210
|
end
|
223
211
|
|
224
|
-
class FormWithFieldThatCanHaveMultipleValues
|
225
|
-
Formeze.setup(self)
|
226
|
-
|
212
|
+
class FormWithFieldThatCanHaveMultipleValues < Formeze::Form
|
227
213
|
field :colour, multiple: true
|
228
214
|
end
|
229
215
|
|
@@ -303,9 +289,7 @@ describe 'FormWithFieldThatCanHaveMultipleValues after parsing input with no val
|
|
303
289
|
end
|
304
290
|
end
|
305
291
|
|
306
|
-
class FormWithFieldThatCanOnlyHaveSpecifiedValues
|
307
|
-
Formeze.setup(self)
|
308
|
-
|
292
|
+
class FormWithFieldThatCanOnlyHaveSpecifiedValues < Formeze::Form
|
309
293
|
field :answer, values: %w(yes no)
|
310
294
|
end
|
311
295
|
|
@@ -322,9 +306,7 @@ describe 'FormWithFieldThatCanOnlyHaveSpecifiedValues after parsing input with a
|
|
322
306
|
end
|
323
307
|
end
|
324
308
|
|
325
|
-
class FormWithGuardCondition
|
326
|
-
Formeze.setup(self)
|
327
|
-
|
309
|
+
class FormWithGuardCondition < Formeze::Form
|
328
310
|
field :account_name
|
329
311
|
field :account_vat_number, defined_if: proc { @business_account }
|
330
312
|
|
@@ -370,9 +352,7 @@ describe 'FormWithGuardCondition with business_account set to false after parsin
|
|
370
352
|
end
|
371
353
|
end
|
372
354
|
|
373
|
-
class FormWithHaltingCondition
|
374
|
-
Formeze.setup(self)
|
375
|
-
|
355
|
+
class FormWithHaltingCondition < Formeze::Form
|
376
356
|
field :delivery_address
|
377
357
|
field :same_address, values: %w(yes no)
|
378
358
|
field :billing_address, defined_unless: :same_address?
|
@@ -407,9 +387,7 @@ describe 'FormWithHaltingCondition after parsing input with same_address set and
|
|
407
387
|
end
|
408
388
|
end
|
409
389
|
|
410
|
-
class FormWithCustomValidation
|
411
|
-
Formeze.setup(self)
|
412
|
-
|
390
|
+
class FormWithCustomValidation < Formeze::Form
|
413
391
|
field :email
|
414
392
|
|
415
393
|
check { email.include?(?@) }
|
@@ -429,9 +407,7 @@ describe 'FormWithCustomValidation after parsing invalid input' do
|
|
429
407
|
end
|
430
408
|
end
|
431
409
|
|
432
|
-
class FormWithOptionalKey
|
433
|
-
Formeze.setup(self)
|
434
|
-
|
410
|
+
class FormWithOptionalKey < Formeze::Form
|
435
411
|
field :accept_terms, values: %w(true), key_required: false
|
436
412
|
end
|
437
413
|
|
@@ -448,9 +424,7 @@ describe 'FormWithOptionalKey after parsing input without the key' do
|
|
448
424
|
end
|
449
425
|
end
|
450
426
|
|
451
|
-
class FormWithOptionalFieldThatCanOnlyHaveSpecifiedValues
|
452
|
-
Formeze.setup(self)
|
453
|
-
|
427
|
+
class FormWithOptionalFieldThatCanOnlyHaveSpecifiedValues < Formeze::Form
|
454
428
|
field :size, required: false, values: %w(S M L XL)
|
455
429
|
end
|
456
430
|
|
@@ -469,9 +443,7 @@ end
|
|
469
443
|
|
470
444
|
Rails = Object.new
|
471
445
|
|
472
|
-
class RailsForm
|
473
|
-
Formeze.setup(self)
|
474
|
-
|
446
|
+
class RailsForm < Formeze::Form
|
475
447
|
field :title
|
476
448
|
end
|
477
449
|
|
@@ -520,9 +492,7 @@ describe 'I18n integration' do
|
|
520
492
|
end
|
521
493
|
end
|
522
494
|
|
523
|
-
class FormWithScrubbedFields
|
524
|
-
Formeze.setup(self)
|
525
|
-
|
495
|
+
class FormWithScrubbedFields < Formeze::Form
|
526
496
|
field :postcode, scrub: [:strip, :squeeze, :upcase], pattern: /\A[A-Z0-9]{2,4} [A-Z0-9]{3}\z/
|
527
497
|
field :bio, scrub: [:strip, :squeeze_lines], multiline: true
|
528
498
|
end
|
@@ -546,3 +516,14 @@ describe 'Formeze' do
|
|
546
516
|
end
|
547
517
|
end
|
548
518
|
end
|
519
|
+
|
520
|
+
class FormClassWithExplicitSetupCall
|
521
|
+
Formeze.setup(self)
|
522
|
+
end
|
523
|
+
|
524
|
+
describe 'FormClassWithExplicitSetupCall' do
|
525
|
+
it 'includes the formeze class methods and instance methods' do
|
526
|
+
FormClassWithExplicitSetupCall.singleton_class.must_include(Formeze::ClassMethods)
|
527
|
+
FormClassWithExplicitSetupCall.must_include(Formeze::InstanceMethods)
|
528
|
+
end
|
529
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formeze
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|