seedomatic 0.5.6 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d14bc3c7282abf61784cf857ce53b3890a0c99b5
4
+ data.tar.gz: ac308741f84c8700f338cfbd38f832f1552bfece
5
+ SHA512:
6
+ metadata.gz: 994dc21a1ea0fee69afb95d2eca165ea0939ee84a8472c869a73e1006a7b2981cd7f984481d179563983ba299fdfa589f4bc3b612e48bef4f7081a5638d0b7f1
7
+ data.tar.gz: 8c52da3a650a20f84bb1416cc207c367e15dd7dfd55202f5c924e53232ec5cf4a4a29b9a2e3c403e7617bbb16b4174a125c0456de9f5d1076ab0fc059577f65c
@@ -23,11 +23,12 @@ module SeedOMatic
23
23
  updated_records += 1
24
24
  end
25
25
 
26
- clean_up_associations(model, attrs)
27
-
28
26
  if model.new_record? || seed_mode == 'always'
27
+ clean_up_associations(model, attrs)
29
28
  model.attributes = process_lookups(attrs)
30
- model.save!
29
+ if !model.save
30
+ raise "Unable to save model: #{model} - #{model.errors.full_messages.join(", ")}"
31
+ end
31
32
  end
32
33
  end
33
34
 
@@ -72,4 +73,4 @@ module SeedOMatic
72
73
  end
73
74
 
74
75
  end
75
- end
76
+ end
@@ -1,3 +1,3 @@
1
1
  module Seedomatic
2
- VERSION = "0.5.6"
2
+ VERSION = "0.5.8"
3
3
  end
data/seedomatic.gemspec CHANGED
@@ -20,5 +20,6 @@ Gem::Specification.new do |s|
20
20
 
21
21
  # specify any dependencies here; for example:
22
22
  s.add_development_dependency "rspec", '~> 2.9.0'
23
+ s.add_development_dependency "pry"
23
24
  s.add_runtime_dependency "activesupport"
24
25
  end
@@ -114,6 +114,22 @@ describe SeedOMatic::Seeder do
114
114
  new_mock.should_receive(:save!)
115
115
  subject
116
116
  end
117
+
118
+ describe "nested associations" do
119
+ let(:items) {
120
+ [{'name' => 'foo', 'code' => 'existing', 'foos_attributes' => [{'a' => 1}]}]
121
+ }
122
+
123
+ it "should not destroy existing ones" do
124
+ mock_association = mock('foos')
125
+
126
+ MyModel.stub(:reflect_on_association).and_return(stub('association', collection?: true))
127
+ existing_mock.stub(:foos).and_return(mock_association)
128
+ mock_association.should_not_receive(:destroy_all)
129
+
130
+ subject
131
+ end
132
+ end
117
133
  end
118
134
  context "always" do
119
135
  let(:seed_mode) { 'always' }
@@ -123,6 +139,22 @@ describe SeedOMatic::Seeder do
123
139
  new_mock.should_receive(:save!)
124
140
  subject
125
141
  end
142
+
143
+ describe "nested associations" do
144
+ let(:items) {
145
+ [{'name' => 'foo', 'code' => 'existing', 'foos_attributes' => [{'a' => 1}]}]
146
+ }
147
+
148
+ it "should destroy previously existing ones" do
149
+ mock_association = mock('foos')
150
+
151
+ MyModel.stub(:reflect_on_association).and_return(stub('association', collection?: true))
152
+ existing_mock.stub(:foos).and_return(mock_association)
153
+ mock_association.should_receive(:destroy_all)
154
+
155
+ subject
156
+ end
157
+ end
126
158
  end
127
159
  end
128
160
 
@@ -167,4 +199,4 @@ describe SeedOMatic::Seeder do
167
199
  end
168
200
  end
169
201
  end
170
- end
202
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'seedomatic'
2
2
 
3
3
  require 'support/my_model.rb'
4
- require 'ostruct'
4
+ require 'ostruct'
5
+ require 'pry'
@@ -17,6 +17,10 @@ class MyModel
17
17
  @@models = []
18
18
  end
19
19
 
20
+ def self.unscoped
21
+ self
22
+ end
23
+
20
24
  def self.create(params = {})
21
25
  @@models << m = new(params)
22
26
  m.new_record = false
@@ -48,4 +52,4 @@ class MyModel
48
52
  @@models
49
53
  end
50
54
 
51
- end
55
+ end
metadata CHANGED
@@ -1,38 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seedomatic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
5
- prerelease:
4
+ version: 0.5.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ryan Brunner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-25 00:00:00.000000000 Z
11
+ date: 2013-12-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
- requirement: &70103169952640 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
19
  version: 2.9.0
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *70103169952640
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 2.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
25
41
  - !ruby/object:Gem::Dependency
26
42
  name: activesupport
27
- requirement: &70103169952220 !ruby/object:Gem::Requirement
28
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
29
44
  requirements:
30
- - - ! '>='
45
+ - - '>='
31
46
  - !ruby/object:Gem::Version
32
47
  version: '0'
33
48
  type: :runtime
34
49
  prerelease: false
35
- version_requirements: *70103169952220
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
36
55
  description: Create repeatable seed fixtures that you can continually use and deploy
37
56
  to multiple environments and tenants.
38
57
  email:
@@ -64,27 +83,26 @@ files:
64
83
  - tasks/seed.rake
65
84
  homepage: http://github.com/ryanbrunner/seedomatic
66
85
  licenses: []
86
+ metadata: {}
67
87
  post_install_message:
68
88
  rdoc_options: []
69
89
  require_paths:
70
90
  - lib
71
91
  required_ruby_version: !ruby/object:Gem::Requirement
72
- none: false
73
92
  requirements:
74
- - - ! '>='
93
+ - - '>='
75
94
  - !ruby/object:Gem::Version
76
95
  version: '0'
77
96
  required_rubygems_version: !ruby/object:Gem::Requirement
78
- none: false
79
97
  requirements:
80
- - - ! '>='
98
+ - - '>='
81
99
  - !ruby/object:Gem::Version
82
100
  version: '0'
83
101
  requirements: []
84
102
  rubyforge_project: seedomatic
85
- rubygems_version: 1.8.15
103
+ rubygems_version: 2.1.11
86
104
  signing_key:
87
- specification_version: 3
105
+ specification_version: 4
88
106
  summary: Seed-O-Matic makes seeding easier.
89
107
  test_files:
90
108
  - spec/lib/seed_o_matic_spec.rb