config_scripts 0.4.3 → 0.4.4
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/lib/config_scripts/seeds/seed_set.rb +59 -15
- data/lib/config_scripts/seeds/seed_type.rb +2 -1
- data/lib/config_scripts/version.rb +1 -1
- data/spec/dummy/app/models/hair_color.rb +1 -0
- data/spec/dummy/app/models/person.rb +2 -0
- data/spec/dummy/db/migrate/20140520061856_add_archived_to_people.rb +5 -0
- data/spec/dummy/db/schema.rb +2 -1
- data/spec/seeds/seed_set_spec.rb +79 -9
- data/spec/seeds/seed_type_spec.rb +39 -1
- metadata +30 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a161b59fb0e28a4b36f776dc7c544cee24713e44
|
4
|
+
data.tar.gz: c927b4b738d5fae4c9b48ae89c422c2feaea9dbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ee4b06ae66ba9c16a0a538116d950d6af3fcf175e7922e5700cd4b29b9c0be2f07c8abbd01005ca771f80d42ba904cf4c0255c325b15818a1922908df9f1f81
|
7
|
+
data.tar.gz: df3d33f6d667d3840c1dc1babd22b5d2f00627416b22fe18c1da142d407131b3e5325247e38d23dd3fd5327bb93dfcb5a61fdcd1b0d4096b4b2459345c132c37
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Version 0.4.4 - 20 May 2014
|
2
|
+
|
3
|
+
* Adds the ability to remove default scopes when reading and writing seeds
|
4
|
+
* Adds more error messaging when a seed entry cannot be read
|
5
|
+
|
1
6
|
# Version 0.4.3 - 24 April 2014
|
2
7
|
|
3
8
|
* Ensures the config scripts run in alphabetical order by filename,
|
data/Gemfile.lock
CHANGED
@@ -153,6 +153,7 @@ module ConfigScripts
|
|
153
153
|
@folder = folder || @name
|
154
154
|
@options = options
|
155
155
|
@seed_types = {}
|
156
|
+
@unscoped_classes = []
|
156
157
|
self.instance_eval(&block) if block_given?
|
157
158
|
ConfigScripts::Seeds::SeedSet.register_seed_set(self)
|
158
159
|
end
|
@@ -164,29 +165,61 @@ module ConfigScripts
|
|
164
165
|
# It will create the folder and then write the file for each seed type
|
165
166
|
# that has been defined.
|
166
167
|
def write
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
168
|
+
self.write_with_unscoped(@unscoped_classes)
|
169
|
+
end
|
170
|
+
|
171
|
+
# This method writes the data for this seed set to its seed folder.
|
172
|
+
#
|
173
|
+
# It will remove all default scopes from the classes provided before doing the write.
|
174
|
+
#
|
175
|
+
# @param [Array<Class>] unscoped_classes
|
176
|
+
# The classes whose scopes we will remove.
|
177
|
+
def write_with_unscoped(unscoped_classes)
|
178
|
+
if unscoped_classes.any?
|
179
|
+
unscoped_classes.first.unscoped do
|
180
|
+
self.write_with_unscoped(unscoped_classes[1..-1])
|
181
|
+
end
|
182
|
+
else
|
183
|
+
folder_path = Rails.root.join('db', 'seeds', 'data', self.folder)
|
184
|
+
FileUtils.mkdir_p(folder_path)
|
185
|
+
puts "Writing seeds for #{self.name} to #{folder_path}"
|
186
|
+
self.seed_types.each do |klass, seed_type|
|
187
|
+
seed_type.write_to_folder(folder_path)
|
188
|
+
end
|
172
189
|
end
|
173
190
|
end
|
174
191
|
|
175
192
|
# This method reads the data for this seed set from its seed folder.
|
176
193
|
#
|
177
|
-
# @param [Boolean] reset
|
178
|
-
# Whether we should reset the existing records before loading the seeds.
|
179
|
-
#
|
180
194
|
# It will load the data for each seed type's file, enclosing all the
|
181
195
|
# seed types in a transaction block.
|
196
|
+
#
|
197
|
+
# @param [Boolean] reset
|
198
|
+
# Whether we should reset the existing records before loading the seeds.
|
182
199
|
def read(reset=false)
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
200
|
+
self.read_with_unscoped(reset, @unscoped_classes)
|
201
|
+
end
|
202
|
+
|
203
|
+
# This method reads the data for this seed set from its seed folder.
|
204
|
+
#
|
205
|
+
# @param [Boolean] reset
|
206
|
+
# Whether we should reset the existing records before loading the seeds.
|
207
|
+
#
|
208
|
+
# @param [Array<Class>] unscoped_classes
|
209
|
+
# The classes that we need to remove default scopes from before loading
|
210
|
+
# the seeds.
|
211
|
+
def read_with_unscoped(reset, unscoped_classes)
|
212
|
+
if unscoped_classes.any?
|
213
|
+
unscoped_classes.first.unscoped { self.read_with_unscoped(reset, unscoped_classes[1..-1]) }
|
214
|
+
else
|
215
|
+
folder_path = Rails.root.join('db', 'seeds', 'data', self.folder)
|
216
|
+
FileUtils.mkdir_p(folder_path)
|
217
|
+
puts "Reading seeds for #{self.name} from #{folder_path}"
|
218
|
+
ActiveRecord::Base.transaction do
|
219
|
+
self.reset_records if reset
|
220
|
+
self.seed_types.each do |klass, seed_type|
|
221
|
+
seed_type.read_from_folder(folder_path)
|
222
|
+
end
|
190
223
|
end
|
191
224
|
end
|
192
225
|
end
|
@@ -229,6 +262,17 @@ module ConfigScripts
|
|
229
262
|
@reset_block = block
|
230
263
|
end
|
231
264
|
|
265
|
+
# This method specifies classes that will be unscoped when writing the seed data.
|
266
|
+
#
|
267
|
+
# @param [Array<Class>] classes
|
268
|
+
# The classes to unscope.
|
269
|
+
#
|
270
|
+
# @return [Array<Class>]
|
271
|
+
# The new list of unscoped classes.
|
272
|
+
def unscope(*classes)
|
273
|
+
@unscoped_classes += classes
|
274
|
+
end
|
275
|
+
|
232
276
|
# @!group Seed Identifiers
|
233
277
|
|
234
278
|
# This method gets a seed type that we have on file for a class.
|
@@ -204,6 +204,7 @@ module ConfigScripts
|
|
204
204
|
record.save!
|
205
205
|
rescue
|
206
206
|
puts "#{self.filename}.csv"
|
207
|
+
puts "#{row}"
|
207
208
|
raise
|
208
209
|
end
|
209
210
|
end
|
@@ -350,7 +351,7 @@ module ConfigScripts
|
|
350
351
|
# The record
|
351
352
|
def record_for_seed_identifier(identifier)
|
352
353
|
return nil if identifier.blank?
|
353
|
-
records = self.
|
354
|
+
records = self.items
|
354
355
|
self.identifier_attributes.each_with_index do |attribute, index|
|
355
356
|
if self.associations.has_key?(attribute)
|
356
357
|
value = self.read_value_for_association(attribute, identifier)
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20140520061856) do
|
15
15
|
|
16
16
|
create_table "config_scripts", force: true do |t|
|
17
17
|
t.string "name"
|
@@ -31,6 +31,7 @@ ActiveRecord::Schema.define(version: 20140209132911) do
|
|
31
31
|
t.integer "hair_color_id"
|
32
32
|
t.string "scope_type"
|
33
33
|
t.integer "scope_id"
|
34
|
+
t.boolean "archived", default: false, null: false
|
34
35
|
end
|
35
36
|
|
36
37
|
add_index "people", ["hair_color_id"], name: "index_people_on_hair_color_id"
|
data/spec/seeds/seed_set_spec.rb
CHANGED
@@ -106,23 +106,59 @@ describe ConfigScripts::Seeds::SeedSet do
|
|
106
106
|
set.stub :seed_types => {Person: seed_type}
|
107
107
|
seed_type.stub write_to_folder: nil, read_from_folder: true
|
108
108
|
set.stub :puts
|
109
|
+
Person.create(name: 'John', archived: true)
|
110
|
+
Person.create(name: 'Jane', archived: false)
|
109
111
|
end
|
110
112
|
|
111
113
|
describe "write" do
|
112
|
-
|
113
|
-
|
114
|
-
|
114
|
+
context do
|
115
|
+
before do
|
116
|
+
set.write
|
117
|
+
end
|
118
|
+
|
119
|
+
it "creates the seed folder" do
|
120
|
+
expect(FileUtils).to have_received(:mkdir_p).with(seed_folder)
|
121
|
+
end
|
115
122
|
|
116
|
-
|
117
|
-
|
123
|
+
it "writes all of the seed types to the folder" do
|
124
|
+
expect(seed_type).to have_received(:write_to_folder).with(seed_folder)
|
125
|
+
end
|
126
|
+
|
127
|
+
it "says where it's writing the seeds to" do
|
128
|
+
expect(set).to have_received(:puts).with("Writing seeds for test_seeds to #{seed_folder}")
|
129
|
+
end
|
118
130
|
end
|
119
131
|
|
120
|
-
|
121
|
-
|
132
|
+
context "with no unscoped seed types" do
|
133
|
+
it "does not see records filtered out by a default scope" do
|
134
|
+
seed_type.stub :write_to_folder do
|
135
|
+
expect(Person.count).to eq 1
|
136
|
+
end
|
137
|
+
set.write
|
138
|
+
end
|
122
139
|
end
|
123
140
|
|
124
|
-
|
125
|
-
|
141
|
+
context "with unscoped seed types" do
|
142
|
+
before do
|
143
|
+
set.unscope Person
|
144
|
+
end
|
145
|
+
|
146
|
+
it "sees records filtered out by a default scope" do
|
147
|
+
seed_type.stub :write_to_folder do
|
148
|
+
expect(Person.count).to eq 2
|
149
|
+
end
|
150
|
+
set.write
|
151
|
+
end
|
152
|
+
|
153
|
+
it "sees records filtered out by a default scope in associations" do
|
154
|
+
hair_color = HairColor.create!(color: 'blonde')
|
155
|
+
Person.unscoped.first.update_attributes(hair_color: hair_color)
|
156
|
+
expect(hair_color.people.count).to eq 0
|
157
|
+
seed_type.stub :write_to_folder do
|
158
|
+
expect(hair_color.people.count).to eq 1
|
159
|
+
end
|
160
|
+
set.write
|
161
|
+
end
|
126
162
|
end
|
127
163
|
end
|
128
164
|
|
@@ -149,6 +185,28 @@ describe ConfigScripts::Seeds::SeedSet do
|
|
149
185
|
end
|
150
186
|
end
|
151
187
|
|
188
|
+
context "with no unscoped seed types" do
|
189
|
+
it "does not see records filtered out by a default scope" do
|
190
|
+
seed_type.stub :read_from_folder do
|
191
|
+
expect(Person.count).to eq 1
|
192
|
+
end
|
193
|
+
set.read
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
context "with unscoped seed types" do
|
198
|
+
before do
|
199
|
+
set.unscope Person
|
200
|
+
end
|
201
|
+
|
202
|
+
it "sees records filtered out by a default scope" do
|
203
|
+
seed_type.stub :read_from_folder do
|
204
|
+
expect(Person.count).to eq 2
|
205
|
+
end
|
206
|
+
set.read
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
152
210
|
context "when resetting" do
|
153
211
|
it "resets the records" do
|
154
212
|
set.read(true)
|
@@ -238,6 +296,18 @@ describe ConfigScripts::Seeds::SeedSet do
|
|
238
296
|
expect(value).to eq 1
|
239
297
|
end
|
240
298
|
end
|
299
|
+
|
300
|
+
describe "unscoped" do
|
301
|
+
let(:set) { ConfigScripts::Seeds::SeedSet.new('test_seeds', 1) }
|
302
|
+
|
303
|
+
it "adds the arguments to the list" do
|
304
|
+
expect(set.instance_variable_get("@unscoped_classes")).to eq []
|
305
|
+
set.unscope String
|
306
|
+
expect(set.instance_variable_get("@unscoped_classes")).to eq [String]
|
307
|
+
set.unscope Person, HairColor
|
308
|
+
expect(set.instance_variable_get("@unscoped_classes")).to eq [String, Person, HairColor]
|
309
|
+
end
|
310
|
+
end
|
241
311
|
end
|
242
312
|
|
243
313
|
describe "seed identifiers" do
|
@@ -199,8 +199,13 @@ describe ConfigScripts::Seeds::SeedType do
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "outputs the problem file name" do
|
202
|
-
expect($stdout).to receive(:puts).with('people.csv')
|
203
202
|
expect{ subject }.to raise_error
|
203
|
+
expect($stdout).to have_received(:puts).with('people.csv')
|
204
|
+
end
|
205
|
+
|
206
|
+
it "outputs the problem row" do
|
207
|
+
expect{subject}.to raise_error
|
208
|
+
expect($stdout).to have_received(:puts).with('{"name"=>"a", "hair_color"=>"b"}')
|
204
209
|
end
|
205
210
|
end
|
206
211
|
|
@@ -358,6 +363,17 @@ describe ConfigScripts::Seeds::SeedType do
|
|
358
363
|
it "gets the records by applying the scope" do
|
359
364
|
expect(subject).to eq [person2, person1]
|
360
365
|
end
|
366
|
+
|
367
|
+
it "does not include a record filtered out by a default scope" do
|
368
|
+
person2.update_attributes archived: true
|
369
|
+
expect(subject).not_to include person2
|
370
|
+
end
|
371
|
+
|
372
|
+
it "allows using the unscoped method to filter out records by a scope" do
|
373
|
+
seed_type.has_scope :unscoped
|
374
|
+
person2.update_attributes archived: true
|
375
|
+
expect(subject).to include person2
|
376
|
+
end
|
361
377
|
end
|
362
378
|
|
363
379
|
describe "options" do
|
@@ -414,6 +430,28 @@ describe ConfigScripts::Seeds::SeedType do
|
|
414
430
|
end
|
415
431
|
end
|
416
432
|
|
433
|
+
context "with a record that is filtered out by a default scope" do
|
434
|
+
let(:identifier) { ['Jim'] }
|
435
|
+
before do
|
436
|
+
seed_type.has_identifier_attributes :name
|
437
|
+
person3.update_attributes archived: true, name: 'Jim'
|
438
|
+
end
|
439
|
+
|
440
|
+
context "when the scope is in place" do
|
441
|
+
it "does not find the record" do
|
442
|
+
expect(subject).to be_nil
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
context "when it is unscoped" do
|
447
|
+
it "finds the record" do
|
448
|
+
seed_type.has_scope :unscoped
|
449
|
+
expect(subject).to eq person3
|
450
|
+
end
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
454
|
+
|
417
455
|
context "with a multi-field reference to another record" do
|
418
456
|
let(:identifier) { ['red','FF0000','John'] }
|
419
457
|
|
metadata
CHANGED
@@ -1,153 +1,153 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config_scripts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Brownlee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: sqlite3
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: timecop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: generator_spec
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: rspec-rails
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
description: Library for creating trackable config scripts, and reading and writing
|
@@ -158,9 +158,9 @@ executables: []
|
|
158
158
|
extensions: []
|
159
159
|
extra_rdoc_files: []
|
160
160
|
files:
|
161
|
-
- .gitignore
|
162
|
-
- .rspec
|
163
|
-
- .yardopts
|
161
|
+
- ".gitignore"
|
162
|
+
- ".rspec"
|
163
|
+
- ".yardopts"
|
164
164
|
- CHANGELOG.md
|
165
165
|
- Gemfile
|
166
166
|
- Gemfile.lock
|
@@ -223,6 +223,7 @@ files:
|
|
223
223
|
- spec/dummy/db/migrate/20140208182101_add_hair_color_to_person.rb
|
224
224
|
- spec/dummy/db/migrate/20140208225801_add_scope_to_people.rb
|
225
225
|
- spec/dummy/db/migrate/20140209132911_add_hex_value_to_hair_color.rb
|
226
|
+
- spec/dummy/db/migrate/20140520061856_add_archived_to_people.rb
|
226
227
|
- spec/dummy/db/schema.rb
|
227
228
|
- spec/dummy/lib/assets/.keep
|
228
229
|
- spec/dummy/log/.keep
|
@@ -250,17 +251,17 @@ require_paths:
|
|
250
251
|
- lib
|
251
252
|
required_ruby_version: !ruby/object:Gem::Requirement
|
252
253
|
requirements:
|
253
|
-
- -
|
254
|
+
- - ">="
|
254
255
|
- !ruby/object:Gem::Version
|
255
256
|
version: '0'
|
256
257
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
257
258
|
requirements:
|
258
|
-
- -
|
259
|
+
- - ">="
|
259
260
|
- !ruby/object:Gem::Version
|
260
261
|
version: '0'
|
261
262
|
requirements: []
|
262
263
|
rubyforge_project:
|
263
|
-
rubygems_version: 2.
|
264
|
+
rubygems_version: 2.2.2
|
264
265
|
signing_key:
|
265
266
|
specification_version: 4
|
266
267
|
summary: Config scripts and seed files for Rails
|
@@ -305,6 +306,7 @@ test_files:
|
|
305
306
|
- spec/dummy/db/migrate/20140208182101_add_hair_color_to_person.rb
|
306
307
|
- spec/dummy/db/migrate/20140208225801_add_scope_to_people.rb
|
307
308
|
- spec/dummy/db/migrate/20140209132911_add_hex_value_to_hair_color.rb
|
309
|
+
- spec/dummy/db/migrate/20140520061856_add_archived_to_people.rb
|
308
310
|
- spec/dummy/db/schema.rb
|
309
311
|
- spec/dummy/lib/assets/.keep
|
310
312
|
- spec/dummy/log/.keep
|