seedomatic 0.5.6 → 0.5.8

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.
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