better_form 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,14 +9,21 @@ module BetterForm
9
9
  validations = generate_validations(@object, field_name)
10
10
  options.merge!(validations)
11
11
  label = options.delete(:label)
12
+
13
+ unless @object.errors[field_name].blank?
14
+ css_classes = options.delete(:class)
15
+ options.merge!({ :class => "#{css_classes} invalid" })
16
+ error_message = generate_error(field_name)
17
+ end
18
+
12
19
  if label == false
13
- super(field_name, *(args << options))
20
+ super(field_name, *(args << options)) + error_message
14
21
  elsif label
15
- generate_label(field_type, field_name, label) + super(field_name, *(args << options))
22
+ generate_label(field_type, field_name, label) + super(field_name, *(args << options)) + error_message
16
23
  elsif @template.label_all? == false
17
- super(field_name, *(args << options))
24
+ super(field_name, *(args << options)) + error_message
18
25
  else
19
- generate_label(field_type, field_name, label) + super(field_name, *(args << options))
26
+ generate_label(field_type, field_name, label) + super(field_name, *(args << options)) + error_message
20
27
  end
21
28
  end
22
29
  end
@@ -43,6 +50,12 @@ module BetterForm
43
50
  label(method, label_text, options ||= {})
44
51
  end
45
52
 
53
+ def generate_error(field_name)
54
+ error_messages = []
55
+ @object.errors[field_name].each { |error| error_messages << "#{field_name.to_s.humanize} #{error}" }
56
+ content_tag(:span, error_messages.join(', and '), :class => :error_message)
57
+ end
58
+
46
59
  def generate_validations(object, attribute)
47
60
  validations = {}
48
61
  @attribute = attribute
@@ -1,3 +1,3 @@
1
1
  module BetterForm
2
- VERSION = "0.4.4"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: better_form
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.4
5
+ version: 0.5.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nicholas Firth-McCoy
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-25 00:00:00 +10:00
13
+ date: 2011-04-28 00:00:00 +10:00
14
14
  default_executable:
15
15
  dependencies: []
16
16