formeze 1.4.0 → 1.5.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 CHANGED
@@ -93,7 +93,7 @@ well defined formats, like numbers. For example:
93
93
  ```ruby
94
94
  field :number, pattern: /\A[1-9]\d*\z/
95
95
 
96
- field :card_security_code, char_limit: 5, value: /\A\d+\z/
96
+ field :card_security_code, char_limit: 5, pattern: /\A\d+\z/
97
97
  ```
98
98
 
99
99
  If you want to validate that the field value belongs to a set of predefined
@@ -187,6 +187,24 @@ Formeze will automatically define optional "utf8" and "authenticity_token"
187
187
  fields on every form so that you don't have to specify those manually.
188
188
 
189
189
 
190
+ Sinatra usage
191
+ -------------
192
+
193
+ Using formeze with sinatra is similar, the only difference is that there is
194
+ no raw_post method on the request object so the body has to be read directly:
195
+
196
+ ```ruby
197
+ form = SomeForm.new
198
+ form.parse(request.body.read)
199
+
200
+ if form.valid?
201
+ # do something with form data
202
+ else
203
+ # display form.errors to user
204
+ end
205
+ ```
206
+
207
+
190
208
  Integration with I18n
191
209
  ---------------------
192
210
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'formeze'
3
- s.version = '1.4.0'
3
+ s.version = '1.5.0'
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ['Tim Craft']
6
6
  s.email = ['mail@timcraft.com']
@@ -19,9 +19,7 @@ module Formeze
19
19
  end
20
20
 
21
21
  def scrub(value)
22
- Array(@options[:scrub]).inject(value) do |tmp, scrub_method|
23
- Formeze.scrub_methods.fetch(scrub_method).call(tmp)
24
- end
22
+ Formeze.scrub(value, @options[:scrub])
25
23
  end
26
24
 
27
25
  def validate(value)
@@ -249,6 +247,10 @@ module Formeze
249
247
  @errors ||= []
250
248
  end
251
249
 
250
+ def errors?
251
+ errors.size > 0
252
+ end
253
+
252
254
  def valid?
253
255
  errors.empty?
254
256
  end
@@ -264,6 +266,12 @@ module Formeze
264
266
  }
265
267
  end
266
268
 
269
+ def self.scrub(input, method_names)
270
+ Array(method_names).inject(input) do |tmp, method_name|
271
+ scrub_methods.fetch(method_name).call(tmp)
272
+ end
273
+ end
274
+
267
275
  def self.setup(form)
268
276
  form.send :include, InstanceMethods
269
277
 
@@ -59,6 +59,12 @@ describe 'FormWithField after parsing valid input' do
59
59
  end
60
60
  end
61
61
 
62
+ describe 'errors query method' do
63
+ it 'should return false' do
64
+ @form.errors?.must_equal(false)
65
+ end
66
+ end
67
+
62
68
  describe 'errors method' do
63
69
  it 'should return an empty array' do
64
70
  @form.errors.must_be_instance_of(Array)
@@ -79,6 +85,12 @@ describe 'FormWithField after parsing blank input' do
79
85
  end
80
86
  end
81
87
 
88
+ describe 'errors query method' do
89
+ it 'should return true' do
90
+ @form.errors?.must_equal(true)
91
+ end
92
+ end
93
+
82
94
  describe 'errors method' do
83
95
  it 'should return an array containing an error message' do
84
96
  @form.errors.must_be_instance_of(Array)
@@ -526,3 +538,11 @@ describe 'FormWithScrubbedFields' do
526
538
  end
527
539
  end
528
540
  end
541
+
542
+ describe 'Formeze' do
543
+ describe 'scrub module method' do
544
+ it 'should apply the scrub methods to the given input' do
545
+ Formeze.scrub("word\n\n", [:strip, :upcase]).must_equal('WORD')
546
+ end
547
+ end
548
+ 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.4.0
4
+ version: 1.5.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: 2012-08-21 00:00:00.000000000 Z
12
+ date: 2012-10-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
@@ -64,3 +64,4 @@ signing_key:
64
64
  specification_version: 3
65
65
  summary: See description
66
66
  test_files: []
67
+ has_rdoc: