redtape 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/lib/redtape.rb CHANGED
@@ -27,12 +27,11 @@ module Redtape
27
27
  @@model_accessors.each do |accessor|
28
28
  begin
29
29
  model = send(accessor)
30
- unless model.valid?
31
- model.errors.each do |k, v|
32
- errors.add(k, v)
33
- end
30
+ if model.invalid?
31
+ own_your_errors_in(model)
34
32
  end
35
- rescue
33
+ rescue MethodMissingError => e
34
+ fail MethodMissing Error, "#{self.class} is missing 'validates_and_saves :#{accessor}'"
36
35
  end
37
36
  end
38
37
  end
@@ -62,7 +61,15 @@ module Redtape
62
61
  end
63
62
 
64
63
  def populate
65
- fail NotImplementedError, "Implement populate in your subclass"
64
+ fail NotImplementedError, "Implement #populate in your subclass"
65
+ end
66
+
67
+ private
68
+
69
+ def own_your_errors_in(model)
70
+ model.errors.each do |k, v|
71
+ errors.add(k, v)
72
+ end
66
73
  end
67
74
  end
68
75
  end
@@ -1,3 +1,3 @@
1
1
  module Redtape
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/spec/form_spec.rb CHANGED
@@ -43,6 +43,27 @@ class TestRegistrationForm < Redtape::Form
43
43
  end
44
44
 
45
45
  describe Redtape::Form do
46
+ context "given a Form where the Form fields are a proper subset of the modeled fields" do
47
+ context "where across all involved objects" do
48
+ context "all field names are unique" do
49
+ context "and the data is invalid" do
50
+ context "in a root object" do
51
+ it "reports an error on the model as <field_name>"
52
+ end
53
+ context "in a nested belongs_to/has_one" do
54
+ it "reports an error on the model as <model_name>_<field_name>"
55
+ end
56
+ context "in a nested has_many" do
57
+ it "reports an error on the model as <model_name>_<field_name>"
58
+ end
59
+ end
60
+ end
61
+
62
+ context "some field names overlap" do
63
+ end
64
+ end
65
+ end
66
+
46
67
  context "given a Form accepting a first and last name that creates a User" do
47
68
  context "with valid data" do
48
69
  subject {
@@ -82,4 +103,5 @@ describe Redtape::Form do
82
103
  end
83
104
  end
84
105
  end
106
+
85
107
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redtape
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-11-05 00:00:00.000000000 Z
12
+ date: 2012-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: virtus
@@ -115,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  segments:
117
117
  - 0
118
- hash: 4258368386119019148
118
+ hash: -1115838229263662025
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  none: false
121
121
  requirements:
@@ -124,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  segments:
126
126
  - 0
127
- hash: 4258368386119019148
127
+ hash: -1115838229263662025
128
128
  requirements: []
129
129
  rubyforge_project:
130
130
  rubygems_version: 1.8.24