trowel 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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