formeze 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +4 -3
- data/formeze.gemspec +1 -1
- data/lib/formeze.rb +7 -29
- data/spec/formeze_spec.rb +0 -17
- metadata +3 -4
data/README.md
CHANGED
@@ -285,9 +285,10 @@ class ExampleForm < Formeze::Form
|
|
285
285
|
end
|
286
286
|
```
|
287
287
|
|
288
|
-
The error for the email validation would
|
289
|
-
I18n key, defaulting to "is invalid"
|
290
|
-
|
288
|
+
The error for the email field validation would include the value of the
|
289
|
+
`formeze.errors.invalid` I18n key, defaulting to "is invalid" if the I18n
|
290
|
+
key does not exist. The error for the password_confirmation field validation
|
291
|
+
would include the value of the `formeze.errors.does_not_match` I18n key.
|
291
292
|
|
292
293
|
|
293
294
|
Rails usage
|
data/formeze.gemspec
CHANGED
data/lib/formeze.rb
CHANGED
@@ -1,25 +1,11 @@
|
|
1
1
|
require 'cgi'
|
2
2
|
|
3
3
|
module Formeze
|
4
|
-
class Label
|
5
|
-
def initialize(name)
|
6
|
-
@name = name
|
7
|
-
end
|
8
|
-
|
9
|
-
def to_s
|
10
|
-
@name.to_s.tr('_', ' ').capitalize
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
4
|
class Field
|
15
5
|
attr_reader :name
|
16
6
|
|
17
7
|
def initialize(name, options = {})
|
18
8
|
@name, @options = name, options
|
19
|
-
|
20
|
-
if options.has_key?(:word_limit)
|
21
|
-
Kernel.warn '[formeze] :word_limit option is deprecated, please use custom validation instead'
|
22
|
-
end
|
23
9
|
end
|
24
10
|
|
25
11
|
def validate(value, form)
|
@@ -57,7 +43,7 @@ module Formeze
|
|
57
43
|
end
|
58
44
|
|
59
45
|
def label
|
60
|
-
@options.fetch(:label) { Formeze.translate(name, :scope => [:formeze, :labels], :default =>
|
46
|
+
@options.fetch(:label) { Formeze.translate(name, :scope => [:formeze, :labels], :default => Formeze.label(name)) }
|
61
47
|
end
|
62
48
|
|
63
49
|
def required?
|
@@ -73,21 +59,13 @@ module Formeze
|
|
73
59
|
end
|
74
60
|
|
75
61
|
def too_long?(value)
|
76
|
-
|
62
|
+
value.chars.count > @options.fetch(:maxlength) { 64 }
|
77
63
|
end
|
78
64
|
|
79
65
|
def too_short?(value)
|
80
66
|
@options.has_key?(:minlength) && value.chars.count < @options.fetch(:minlength)
|
81
67
|
end
|
82
68
|
|
83
|
-
def too_many_characters?(value)
|
84
|
-
value.chars.count > @options.fetch(:maxlength) { 64 }
|
85
|
-
end
|
86
|
-
|
87
|
-
def too_many_words?(value)
|
88
|
-
@options.has_key?(:word_limit) && value.scan(/\w+/).length > @options[:word_limit]
|
89
|
-
end
|
90
|
-
|
91
69
|
def no_match?(value)
|
92
70
|
@options.has_key?(:pattern) && value !~ @options[:pattern]
|
93
71
|
end
|
@@ -164,12 +142,8 @@ module Formeze
|
|
164
142
|
@options.has_key?(:when) ? form.instance_eval(&@options[:when]) : true
|
165
143
|
end
|
166
144
|
|
167
|
-
def value?(form)
|
168
|
-
form.send(@field.name) =~ /\S/
|
169
|
-
end
|
170
|
-
|
171
145
|
def validate(form)
|
172
|
-
if validates?(form) &&
|
146
|
+
if validates?(form) && !form.errors_on?(@field.name)
|
173
147
|
return_value = if @block.arity == 1
|
174
148
|
@block.call(form.send(@field.name))
|
175
149
|
else
|
@@ -345,6 +319,10 @@ module Formeze
|
|
345
319
|
end
|
346
320
|
end
|
347
321
|
|
322
|
+
def self.label(field_name)
|
323
|
+
field_name.to_s.tr('_', ' ').capitalize
|
324
|
+
end
|
325
|
+
|
348
326
|
def self.scrub_methods
|
349
327
|
@scrub_methods ||= {
|
350
328
|
:strip => :strip.to_proc,
|
data/spec/formeze_spec.rb
CHANGED
@@ -269,23 +269,6 @@ describe 'FormWithMinLengthField after parsing input with too few characters' do
|
|
269
269
|
end
|
270
270
|
end
|
271
271
|
|
272
|
-
class FormWithWordLimitedField < Formeze::Form
|
273
|
-
field :title, :word_limit => 2
|
274
|
-
end
|
275
|
-
|
276
|
-
describe 'FormWithWordLimitedField after parsing input with too many words' do
|
277
|
-
before do
|
278
|
-
@form = FormWithWordLimitedField.new
|
279
|
-
@form.parse('title=This+Title+Will+Be+Too+Long')
|
280
|
-
end
|
281
|
-
|
282
|
-
describe 'valid query method' do
|
283
|
-
it 'returns false' do
|
284
|
-
@form.valid?.must_equal(false)
|
285
|
-
end
|
286
|
-
end
|
287
|
-
end
|
288
|
-
|
289
272
|
class FormWithFieldThatMustMatchPattern < Formeze::Form
|
290
273
|
field :number, :pattern => /\A\d+\z/
|
291
274
|
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: 2.
|
4
|
+
version: 2.1.0
|
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: 2013-
|
12
|
+
date: 2013-08-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -75,9 +75,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
77
|
rubyforge_project:
|
78
|
-
rubygems_version: 1.8.
|
78
|
+
rubygems_version: 1.8.23
|
79
79
|
signing_key:
|
80
80
|
specification_version: 3
|
81
81
|
summary: See description
|
82
82
|
test_files: []
|
83
|
-
has_rdoc:
|