trowel 0.0.2 → 0.0.3

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.
@@ -6,9 +6,14 @@ module Trowel
6
6
  YAML::load_file(path).each do |attributes|
7
7
  object = klass.new
8
8
  attributes.each { |k,v| object.send("#{k}=", v) }
9
- process_callback(:before_save, object)
10
- object.save!
11
- process_callback(:after_save, object)
9
+ begin
10
+ process_callback(:before_save, object)
11
+ object.save!
12
+ process_callback(:after_save, object)
13
+ rescue => e # ActiveRecord::RecordInvalid, SuperModel::InvalidRecord
14
+ message = e.message + "\n[FATAL] Error saving #{object} with attributes: #{object.attributes.inspect}"
15
+ raise(RecordNotSaved, message)
16
+ end
12
17
  end
13
18
  end
14
19
 
@@ -24,5 +29,8 @@ module Trowel
24
29
  when Proc then @options[name].call(object)
25
30
  end
26
31
  end
32
+
33
+ class RecordNotSaved < StandardError
34
+ end
27
35
  end
28
36
  end
@@ -1,3 +1,3 @@
1
1
  module Trowel
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -34,5 +34,23 @@ describe Trowel::Sow do
34
34
  User.all.should be_all(&:confirmed?)
35
35
  end
36
36
  end
37
+
38
+ context "invalid records" do
39
+ let(:attributes) { {:foo => 'bar'} }
40
+ before do
41
+ User.any_instance.stub(:valid?).and_return(false)
42
+ User.any_instance.stub(:attributes).and_return(attributes)
43
+ end
44
+ it "raises exception" do
45
+ expect do
46
+ Trowel::Sow.new(users_yaml_path, :after_save => :confirm!)
47
+ end.to raise_error(Trowel::Sow::RecordNotSaved)
48
+ end
49
+ it "shows attributes" do
50
+ expect { Trowel::Sow.new(users_yaml_path, :after_save => :confirm!) }.to raise_error { |error|
51
+ error.message.should include(attributes.inspect)
52
+ }
53
+ end
54
+ end
37
55
  end
38
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trowel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-03 00:00:00.000000000 +10:00
12
+ date: 2012-06-25 00:00:00.000000000 +10:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &70332189283620 !ruby/object:Gem::Requirement
17
+ requirement: &70299849291500 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70332189283620
25
+ version_requirements: *70299849291500
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: pry
28
- requirement: &70332189282540 !ruby/object:Gem::Requirement
28
+ requirement: &70299849291040 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70332189282540
36
+ version_requirements: *70299849291040
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rake
39
- requirement: &70332189281720 !ruby/object:Gem::Requirement
39
+ requirement: &70299849290600 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *70332189281720
47
+ version_requirements: *70299849290600
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec
50
- requirement: &70332189277760 !ruby/object:Gem::Requirement
50
+ requirement: &70299849290140 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *70332189277760
58
+ version_requirements: *70299849290140
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: supermodel
61
- requirement: &70332189277140 !ruby/object:Gem::Requirement
61
+ requirement: &70299849289680 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,7 +66,7 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *70332189277140
69
+ version_requirements: *70299849289680
70
70
  description: Loads ActiveRecord seed data from YAML
71
71
  email:
72
72
  - zubin.henner@gmail.com
@@ -101,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
101
  version: '0'
102
102
  segments:
103
103
  - 0
104
- hash: -2148754529628456972
104
+ hash: -3733079287008344898
105
105
  required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  segments:
112
112
  - 0
113
- hash: -2148754529628456972
113
+ hash: -3733079287008344898
114
114
  requirements: []
115
115
  rubyforge_project: trowel
116
116
  rubygems_version: 1.6.2