sinatra-formkeeper 0.0.5 → 0.0.6

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/Gemfile CHANGED
@@ -6,7 +6,7 @@ gemspec
6
6
  gem "hpricot"
7
7
  gem "rack"
8
8
  gem "sinatra"
9
- gem "formkeeper", "~> 0.0.8"
9
+ gem "formkeeper", "~> 0.0.9"
10
10
 
11
11
  group :development, :test do
12
12
  gem "rspec"
data/README.md CHANGED
@@ -42,13 +42,13 @@ end
42
42
 
43
43
  ### 0: Preparation
44
44
 
45
- At your application file's header, add 'require' line for this library.
45
+ At your application file's header, add `require` line for this library.
46
46
 
47
47
  ```ruby
48
48
  require 'sinatra/formkeeper'
49
49
  ```
50
50
 
51
- And if your application is Sinatra::Base inheritance type, register Sinatra::FormKeeper
51
+ And if your application is `Sinatra::Base` inheritance type, register `Sinatra::FormKeeper`
52
52
 
53
53
  ```ruby
54
54
  class MyApp < Sinatra::Base
@@ -73,13 +73,13 @@ post '/entry' do
73
73
  end
74
74
  ```
75
75
 
76
- Calling 'form' with block which includes rule-setting,
76
+ Calling `form` with block which includes rule-setting,
77
77
  you can build a form-rule.
78
- There are some DSL-method to build rules. In this example, 'filters' and 'field' are written.
78
+ There are some DSL-method to build rules. In this example, `filters` and `field` are written.
79
79
 
80
80
  #### filters
81
81
 
82
- You can set 'filters'. All input parameters are filtered by indicated filtering feature
82
+ You can set `filters`. All input parameters are filtered by indicated filtering feature
83
83
  The filtering process is executed before validation.
84
84
 
85
85
  ```ruby
@@ -98,7 +98,7 @@ form do
98
98
  end
99
99
  ```
100
100
 
101
- All preset filters are described at [8: Preset Filters]
101
+ All preset filters are described at [8: Preset Filters](#8-preset-filters)
102
102
 
103
103
  #### field
104
104
 
@@ -111,7 +111,7 @@ form do
111
111
  end
112
112
  ```
113
113
 
114
- This constraint works for an input form named as "field_name", for instance
114
+ This constraint works for an input form named as `field_name`, for instance
115
115
 
116
116
  ```html
117
117
  <input type="text" name="field_name" />
@@ -121,11 +121,11 @@ And key-value pares are following the field name.
121
121
  They are constraints set for the field.
122
122
  You can add your favorite constraints here.
123
123
 
124
- All preset constraints are described at [9: Preset Constraints]
124
+ All preset constraints are described at [9: Preset Constraints](#9-preset-constraints)
125
125
  Read the chapter for more detail.
126
126
 
127
- :present is a special constraint. if parameter not found for the field which
128
- set :present constraint, the field will be marked as 'not present',
127
+ `:present` is a special constraint. if parameter not found for the field which
128
+ set `:present` constraint, the field will be marked as *not present*,
129
129
  and other validation for rest constraints won't be executed.
130
130
 
131
131
  You also can set :default
@@ -140,11 +140,11 @@ end
140
140
  When it's set, if parameter not found, the indicated value will be set
141
141
  and other validation for rest constraints won't be executed.
142
142
 
143
- You aren't allowed to set both :present and :default at same time.
143
+ You aren't allowed to set both *:present* and *:default* at same time.
144
144
 
145
145
  And you can set filters here,
146
146
  if you don't want to filter all the parameters included in the request.
147
- This filtering setting only affets on :field_name.
147
+ This filtering setting only affets on `:field_name`.
148
148
 
149
149
  ```ruby
150
150
  form do
@@ -196,12 +196,12 @@ Or
196
196
  ```
197
197
 
198
198
  Rack request handle such type of name (exp: field_name[]) as Array.
199
- For this type of input, use 'selection' method.
200
- In this case, you must use :count constraints instead of :present.
199
+ For this type of input, use `selection` method.
200
+ In this case, you must use `:count` constraints instead of `:present`.
201
201
 
202
202
  #### combination
203
203
 
204
- There is another special rule, 'Combination'
204
+ There is another special rule, *Combination*
205
205
 
206
206
  ```ruby
207
207
  form do
@@ -214,7 +214,7 @@ Set rule-name as a first argument.
214
214
  And you should set multiple target fields.
215
215
  And one constraint like (:same => true), or (:any => true).
216
216
 
217
- :same and :any are called as 'Combination Constraint'
217
+ `:same` and `:any` are called as *Combination Constraint*
218
218
  For this purpose, formkeeper provides you a simple way to do same things.
219
219
 
220
220
  ```ruby
@@ -224,14 +224,14 @@ form do
224
224
  end
225
225
  ```
226
226
 
227
- You can call a name of 'Combination Constraints' as a method.
227
+ You can call a name of *Combination Constraints* as a method.
228
228
  Followed by rule-name and target-fields.
229
229
 
230
- All preset constraints are described at [10: Preset Combination Constraints]
230
+ All preset constraints are described at [10: Preset Combination Constraints](#10-preset-combination-constraints)
231
231
 
232
232
  ### 2: Check if user's input is valid or not
233
233
 
234
- 'form.failed?' can be used to judge if user's input is valid for the rule you build.
234
+ `form.failed?` can be used to judge if user's input is valid for the rule you build.
235
235
 
236
236
  ```ruby
237
237
  post '/entry' do
@@ -251,9 +251,9 @@ end
251
251
  After validation is proccessed without any failure,
252
252
  you can implement your domain logic with valid parameters.
253
253
 
254
- 'form[:field_name]' can be used to pick up a valid data.
254
+ `form[:field_name]` can be used to pick up a valid data.
255
255
  This data you can obtain through this method is a filtered data
256
- according to the rule you build (if you set a 'filters' rule).
256
+ according to the rule you build (if you set a `filters` rule).
257
257
 
258
258
  ```ruby
259
259
  post '/entry' do
@@ -273,7 +273,7 @@ end
273
273
 
274
274
  When validation is failed, you might want to provide user
275
275
  same form again, with error message that describes what fields was invalid.
276
- For this purpose, use 'failed_on?' method.
276
+ For this purpose, use `failed_on?` method.
277
277
 
278
278
  ```ruby
279
279
  post '/entry' do
@@ -310,7 +310,7 @@ __END__
310
310
 
311
311
  ### 5: Check if what field and constraint has failed?
312
312
 
313
- You can pass constraint-type to 'failed_on?' as a second argument.
313
+ You can pass constraint-type to `failed_on?` as a second argument.
314
314
  This provides you a way to show detailed error-messages.
315
315
 
316
316
  ```ruby
@@ -352,7 +352,7 @@ __END__
352
352
  ### 6: Fill in form
353
353
 
354
354
  In many case you might want to fill in form with user's last input.
355
- Do like following. 'fill_in_form' automatically fill the fields with 'params'
355
+ Do like following. `fill_in_form` automatically fill the fields with `params`
356
356
 
357
357
  ```ruby
358
358
  post '/entry' do
@@ -389,7 +389,7 @@ DEFAULT:
389
389
  -- ...
390
390
  ```
391
391
 
392
- DEFAULT is a special type. If it can't find setting for indicated validation-type, it uses message set for DEFAULT.
392
+ `DEFAULT` is a special type. If it can't find setting for indicated validation-type, it uses message set for `DEFAULT`.
393
393
  After you prepare a yaml file, load it.
394
394
 
395
395
  ```ruby
@@ -451,19 +451,202 @@ If you want to show messages for each field, separately, of course you can.
451
451
 
452
452
  ### 9: Preset Constraints
453
453
 
454
- #### present
455
454
  #### length
455
+
456
+ calculate length. this constraint use String#length internally
457
+ You can set integer.
458
+
459
+ ```ruby
460
+ post '/entry' do
461
+ form do
462
+ field :field01, :present => true, :length => 10
463
+ end
464
+ #...
465
+ end
466
+ ```
467
+
468
+ Or as range
469
+
470
+ ```ruby
471
+ post '/entry' do
472
+ form do
473
+ field :field01, :present => true, :length => 4..10
474
+ end
475
+ #...
476
+ end
477
+ ```
478
+
456
479
  #### bytesize
480
+
481
+ Calculate byte size. this constraint use String#bytesize internally
482
+ You can set integer.
483
+
484
+ ```ruby
485
+ post '/entry' do
486
+ form do
487
+ field :field01, :present => true, :bytesize => 10
488
+ end
489
+ #...
490
+ end
491
+ ```
492
+
493
+ Or as range
494
+
495
+ ```ruby
496
+ post '/entry' do
497
+ form do
498
+ field :field01, :present => true, :bytesize => 4..10
499
+ end
500
+ #...
501
+ end
502
+ ```
503
+
457
504
  #### ascii
505
+
506
+ ```ruby
507
+ post '/entry' do
508
+ form do
509
+ field :field01, :present => true, :ascii => true
510
+ end
511
+ #...
512
+ end
513
+ ```
514
+
458
515
  #### regexp
516
+
517
+ ```ruby
518
+ post '/entry' do
519
+ form do
520
+ field :field01, :present => true, :regexp => %r{regexp}
521
+ end
522
+ #...
523
+ end
524
+ ```
525
+
459
526
  #### int
527
+
528
+ ```ruby
529
+ post '/entry' do
530
+ form do
531
+ field :field01, :present => true, :int => true
532
+ end
533
+ #...
534
+ end
535
+ ```
536
+
537
+ Fore more detailed constraint,
538
+ You can use following options as a hash.
539
+
540
+ * gt: This means >
541
+ * gte: This means >=
542
+ * lt: This means <
543
+ * lte: This means <=
544
+ * between: Or you can set Range object
545
+
546
+ ```ruby
547
+ post '/entry' do
548
+ form do
549
+ field :field01, :present => true, :int => { :gt => 5, :lt => 10 }
550
+ end
551
+ #...
552
+ end
553
+ ```
554
+
555
+ ```ruby
556
+ post '/entry' do
557
+ form do
558
+ field :field01, :present => true, :int => { :gte => 5, :lte => 10 }
559
+ end
560
+ #...
561
+ end
562
+ ```
563
+
564
+ ```ruby
565
+ post '/entry' do
566
+ form do
567
+ field :field01, :present => true, :int => { :between => 5..10 }
568
+ end
569
+ #...
570
+ end
571
+ ```
572
+
460
573
  #### uint
574
+
575
+ Unsined integer. This doesn't allow lass than zero.
576
+ Except for that, it behaves same as integer
577
+
578
+ ```ruby
579
+ post '/entry' do
580
+ form do
581
+ field :field01, :present => true, :uint => { :between => 5..10 }
582
+ end
583
+ #...
584
+ end
585
+ ```
586
+
461
587
  #### alpha
588
+
589
+ Alphabet
590
+
462
591
  #### alpha_space
592
+
593
+ Alphabet and Space
594
+
463
595
  #### alnum
596
+
597
+ Alphabet and Number
598
+
464
599
  #### alnum_space
600
+
601
+ Alphabet, Number and Space
602
+
603
+ #### email
604
+
605
+ Email-Address
606
+
607
+ ```ruby
608
+ post '/entry' do
609
+ form do
610
+ field :your_address, :present => true, :email => true, :bytesize => 10..255
611
+ end
612
+ #...
613
+ end
614
+ ```
615
+
465
616
  #### uri
466
617
 
618
+ Limit a scheme as Array
619
+
620
+ ```ruby
621
+ post '/entry' do
622
+ form do
623
+ field :your_address, :present => true, :uri => [:http, :https], :bytesize => 10..255
624
+ end
625
+ #...
626
+ end
627
+ ```
628
+
629
+ ```ruby
630
+ post '/entry' do
631
+ form do
632
+ field :your_address, :present => true, :uri => [:http], :bytesize => 10..255
633
+ end
634
+ #...
635
+ end
636
+ ```
637
+
638
+ If your scheme option is only one.
639
+ You can set as a String.
640
+
641
+ ```ruby
642
+ post '/entry' do
643
+ form do
644
+ field :your_address, :present => true, :uri => :http, :bytesize => 10..255
645
+ end
646
+ #...
647
+ end
648
+ ```
649
+
467
650
  ### 10: Preset Combination Constraints
468
651
 
469
652
  #### same
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module FormKeeper
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-formkeeper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
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-24 00:00:00.000000000 Z
12
+ date: 2012-10-25 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Sinatra extension which handles stuff around HTML forms
15
15
  email: