formeze 2.0.0 → 2.1.0
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 +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:
|