sprig 0.1.6 → 0.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a11f717b26ca547b63e3a10d77e90e5fb0b34f99
4
- data.tar.gz: 875a60cf93f12dda5e3cf04f17dca18c1201f53c
3
+ metadata.gz: e9deb6a8c1f64f83ed2fbeb9c4c7a7de28a90be5
4
+ data.tar.gz: 38ab2e9a1eee0cd9a43f5578cd5a049859ae6a21
5
5
  SHA512:
6
- metadata.gz: 3c5b80e9fbc98aeca33b2f535336a4ac577f4837ecc88b5315351f5cef5582bf67b6fad52a4af4b706c045bdb3120461c1c74b5e118eb177406f66a824e5cf99
7
- data.tar.gz: 7660d42b5f0ca71849c63de2abaef6cc4ad324ee08598b00676b4196c80050eeb49264589258e601504ad5bac97514edfe42d5ec0624dbdb87193a903d0db875
6
+ metadata.gz: b0dcb9273bb4bffb8cef23386f31e23bdfbbb5484a194a1809565514137b95ca6076927526d99d6f83779c280197c1c2d228dd9f94660869cbcaed8996870535
7
+ data.tar.gz: afbc6277ada442ce7bd424b33abd4b7d38f8e02c7112c0e1281f5fdeac8c3ed0a45533746e04168664c5110875c87eece488d43a7b61835c3732d21d57ccc0be
data/README.md CHANGED
@@ -32,7 +32,6 @@ Seed files are unique to the environment in which your Rails application is runn
32
32
 
33
33
  Todo: [Support for shared seed files]
34
34
 
35
-
36
35
  ##Seed files
37
36
 
38
37
  Hang your seed definitions on a `records` key for *yaml* and *json* files.
@@ -74,6 +73,8 @@ records:
74
73
 
75
74
  Each seed record needs a `sprig_id` defined that must be *unique across all seed files per class*. It can be an integer, string, whatever you prefer; as long as it is unique, Sprig can sort your seeds for insertion and detect any cyclic relationships.
76
75
 
76
+ ### Relationships
77
+
77
78
  Create relationships between seed records with the `sprig_record` helper:
78
79
 
79
80
  ```yaml
@@ -85,6 +86,28 @@ records:
85
86
  body: "Yaml Comment body"
86
87
  ```
87
88
 
89
+ #### Has and Belongs to Many
90
+ For `has_and_belongs_to_many` (HABTM) relationships, you may define relation ids in array format. So if `Post` `has_and_belongs_to_many :tags`, you could write:
91
+ ```yaml
92
+ #posts.yml
93
+
94
+ records:
95
+ - sprig_id: 1
96
+ title: 'All About Brains'
97
+ content: 'Lorem ipsum...'
98
+ tag_ids:
99
+ - '<%= sprig_record(Tag, 1).id %>'
100
+ - '<%= sprig_record(Tag, 2).id %>'
101
+ ```
102
+ ```yaml
103
+ #tags.yml
104
+
105
+ records:
106
+ - sprig_id: 1
107
+ name: 'Biology'
108
+ - sprig_id: 2
109
+ name: 'Neuroscience'
110
+ ```
88
111
  **Note: For namespaced or STI classes, you'll need to include the namespace with the class name in the seed file name. For example `Users::HeadManager` would need to be `users_head_managers.yml`**
89
112
 
90
113
  ### Special Options
@@ -124,6 +147,8 @@ records:
124
147
  If all your data is in `.wat` files, fear not. You can tell Sprig where to look for your data, and point it toward a custom parser class for turning your data into records. The example below tells Sprig to read `User` seed data from a Google Spreadsheet, and parse it accordingly.
125
148
 
126
149
  ```ruby
150
+ require 'open-uri'
151
+
127
152
  fanciness = {
128
153
  :class => User,
129
154
  :source => open('https://spreadsheets.google.com/feeds/list/somerandomtoken/1/public/values?alt=json'),
@@ -150,7 +175,7 @@ end
150
175
  ## Populate Seed Files from Database
151
176
 
152
177
  Want to create Sprig seed files from the records in your database? Well,
153
- [Sprig::Reap](http://www.rubygems.org/sprig-reap) can create them for you! Check out the gem's
178
+ [Sprig::Reap](https://rubygems.org/gems/sprig-reap) can create them for you! Check out the gem's
154
179
  [README](https://github.com/vigetlabs/sprig-reap#sprigreap) for installation instructions and
155
180
  details on usage.
156
181
 
data/lib/sprig.rb CHANGED
@@ -19,6 +19,23 @@ module Sprig
19
19
  autoload :Seed, 'sprig/seed'
20
20
 
21
21
  class << self
22
+ attr_writer :adapter
23
+
24
+ def adapter
25
+ @adapter ||= :active_record
26
+ end
27
+
28
+ def adapter_model_class
29
+ @adapter_model_class ||= case adapter
30
+ when :active_record
31
+ ActiveRecord::Base
32
+ when :mongoid
33
+ Mongoid::Document
34
+ else
35
+ raise "Unknown model class for adapter #{adapter}"
36
+ end
37
+ end
38
+
22
39
  def configuration
23
40
  @@configuration ||= Sprig::Configuration.new
24
41
  end
@@ -7,7 +7,7 @@ module Sprig
7
7
  case
8
8
  when args.is_a?(Hash)
9
9
  args
10
- when args.is_a?(Class) && args < ActiveRecord::Base
10
+ when args.is_a?(Class) && args < Sprig.adapter_model_class
11
11
  { :class => args }
12
12
  else
13
13
  raise ArgumentError, argument_error_message
@@ -30,8 +30,8 @@ module Sprig
30
30
  private
31
31
 
32
32
  def argument_error_message
33
- 'Sprig::Directive must be instantiated with an '\
34
- 'ActiveRecord subclass or a Hash with :class defined'
33
+ 'Sprig::Directive must be instantiated with a(n) '\
34
+ "#{Sprig.adapter_model_class} class or a Hash with :class defined"
35
35
  end
36
36
  end
37
37
  end
@@ -30,7 +30,7 @@ module Sprig
30
30
  def klass=(klass)
31
31
  raise ArgumentError, 'Must provide a Class as first argument' unless klass.is_a? Class
32
32
 
33
- klass.reset_column_information
33
+ klass.reset_column_information if defined?(ActiveRecord) && klass < ActiveRecord::Base
34
34
  @klass = klass
35
35
  end
36
36
 
data/lib/sprig/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sprig
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -0,0 +1,34 @@
1
+ require "database_cleaner"
2
+
3
+ RSpec.configure do |c|
4
+ c.before(:suite) do
5
+ DatabaseCleaner[:active_record].strategy = :transaction
6
+ DatabaseCleaner[:active_record].clean_with(:truncation)
7
+ end
8
+
9
+ c.before(:each) do
10
+ DatabaseCleaner[:active_record].start
11
+ end
12
+
13
+ c.after(:each) do
14
+ DatabaseCleaner[:active_record].clean
15
+ end
16
+ end
17
+
18
+ # Database
19
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => "spec/db/activerecord.db")
20
+
21
+ User.connection.execute "DROP TABLE IF EXISTS users;"
22
+ User.connection.execute "CREATE TABLE users (id INTEGER PRIMARY KEY , first_name VARCHAR(255), last_name VARCHAR(255), type VARCHAR(255));"
23
+
24
+ Post.connection.execute "DROP TABLE IF EXISTS posts;"
25
+ Post.connection.execute "CREATE TABLE posts (id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(255), content VARCHAR(255), photo VARCHAR(255), published BOOLEAN , user_id INTEGER);"
26
+
27
+ Comment.connection.execute "DROP TABLE IF EXISTS comments;"
28
+ Comment.connection.execute "CREATE TABLE comments (id INTEGER PRIMARY KEY , post_id INTEGER, body VARCHAR(255));"
29
+
30
+ Tag.connection.execute "DROP TABLE IF EXISTS tags;"
31
+ Tag.connection.execute "CREATE TABLE tags (id INTEGER PRIMARY KEY , name VARCHAR(255));"
32
+
33
+ Tag.connection.execute "DROP TABLE IF EXISTS posts_tags;"
34
+ Tag.connection.execute "CREATE TABLE posts_tags (id INTEGER PRIMARY KEY , post_id INTEGER, tag_id INTEGER);"
@@ -0,0 +1,19 @@
1
+ require "database_cleaner"
2
+
3
+ RSpec.configure do |c|
4
+ c.before(:suite) do
5
+ DatabaseCleaner[:mongoid].strategy = :truncation
6
+ DatabaseCleaner[:mongoid].clean_with(:truncation)
7
+ end
8
+
9
+ c.before(:each) do
10
+ DatabaseCleaner[:mongoid].start
11
+ end
12
+
13
+ c.after(:each) do
14
+ DatabaseCleaner[:mongoid].clean
15
+ end
16
+ end
17
+
18
+ # Datastore
19
+ Mongoid.load!(File.join File.dirname(__FILE__), 'mongoid.yml')
@@ -0,0 +1,12 @@
1
+ test:
2
+ sessions:
3
+ default:
4
+ database: sprig_test
5
+ hosts:
6
+ - localhost:27017
7
+ options:
8
+ read: primary
9
+ # In the test environment we lower the retries and retry interval to
10
+ # low amounts for fast failures.
11
+ max_retries: 1
12
+ retry_interval: 0
Binary file
@@ -0,0 +1,9 @@
1
+ class Comment
2
+ include Mongoid::Document
3
+
4
+ field :body, :type => String
5
+
6
+ belongs_to :post
7
+
8
+ validates :post, :presence => true
9
+ end
@@ -0,0 +1,18 @@
1
+ class Post
2
+ include Mongoid::Document
3
+
4
+ if Mongoid::VERSION.split('.').first == "3"
5
+ field :user_id, :type => Moped::BSON::ObjectId
6
+ else
7
+ field :user_id, :type => BSON::ObjectId
8
+ end
9
+ field :title, :type => String
10
+ field :content, :type => String
11
+ field :published, :type => Boolean
12
+
13
+ has_and_belongs_to_many :tags
14
+
15
+ def photo=(file)
16
+ write_attribute(:photo, File.basename(file.path))
17
+ end
18
+ end
@@ -0,0 +1,7 @@
1
+ class Tag
2
+ include Mongoid::Document
3
+
4
+ field :name, :type => String
5
+
6
+ validates :name, :presence => true
7
+ end
@@ -0,0 +1,9 @@
1
+ class User
2
+ include Mongoid::Document
3
+
4
+ field :first_name, :type => String
5
+ field :last_name, :type => String
6
+ field :type, :type => String
7
+
8
+ validates :first_name, :last_name, :presence => true
9
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
  require 'generators/sprig/install_generator'
3
3
 
4
- describe Sprig::Generators::InstallGenerator do
4
+ describe Sprig::Generators::InstallGenerator, type: :generator do
5
5
  destination File.expand_path("../../tmp", __FILE__)
6
6
 
7
7
  before do
@@ -29,7 +29,7 @@ end
29
29
  # Generator arguments are set on a class basis. We need to open
30
30
  # a new describe block to make these examples work.
31
31
 
32
- describe Sprig::Generators::InstallGenerator do
32
+ describe Sprig::Generators::InstallGenerator, type: :generator do
33
33
  context "with arguments" do
34
34
  destination File.expand_path("../../tmp", __FILE__)
35
35
  arguments %w(development test integration)
@@ -34,8 +34,8 @@ describe Sprig::Directive do
34
34
  subject.klass
35
35
  }.to raise_error(
36
36
  ArgumentError,
37
- 'Sprig::Directive must be instantiated with an '\
38
- 'ActiveRecord subclass or a Hash with :class defined'
37
+ 'Sprig::Directive must be instantiated with a(n) '\
38
+ "#{Sprig.adapter_model_class} class or a Hash with :class defined"
39
39
  )
40
40
  end
41
41
  end
@@ -7,6 +7,57 @@ describe Sprig do
7
7
  Sprig::Configuration.stub(:new).and_return(configuration)
8
8
  end
9
9
 
10
+ describe '.adapter' do
11
+ it { expect(described_class).to respond_to(:adapter).with(0).arguments }
12
+
13
+ it { expect(described_class.adapter).not_to be nil }
14
+ end
15
+
16
+ describe '.adapter=' do
17
+ let(:value) { :mongo_mapper }
18
+
19
+ around(:each) do |example|
20
+ previous_value = described_class.adapter
21
+
22
+ example.run
23
+
24
+ described_class.adapter = previous_value
25
+ end
26
+
27
+ it { expect(described_class).to respond_to(:adapter=).with(1).argument }
28
+
29
+ it 'changes the value' do
30
+ expect { described_class.adapter = value }.to change(described_class, :adapter).to(value)
31
+ end
32
+ end
33
+
34
+ describe '.adapter_model_class' do
35
+ let(:expected_class) do
36
+ case Sprig.adapter
37
+ when :active_record
38
+ ActiveRecord::Base
39
+ when :mongoid
40
+ Mongoid::Document
41
+ end
42
+ end
43
+
44
+ before(:each) { described_class.instance_variable_set(:@adapter_model_class, nil) }
45
+
46
+ it { expect(described_class).to respond_to(:adapter_model_class).with(0).arguments }
47
+
48
+ it { expect(described_class.adapter_model_class).to be expected_class }
49
+
50
+ describe 'with an unrecognized adapter' do
51
+ let(:value) { :mongo_mapper }
52
+
53
+ it 'raises an error' do
54
+ allow(described_class).to receive(:adapter).and_return(value)
55
+
56
+ expect { described_class.adapter_model_class }.to raise_error(/unknown model class/i)
57
+ end
58
+ end
59
+ end
60
+
10
61
  describe ".configuration" do
11
62
  context "when there is not yet a Configuration instance" do
12
63
  it "returns a new Configuration instance" do
data/spec/spec_helper.rb CHANGED
@@ -7,8 +7,6 @@ SimpleCov.formatter = Coveralls::SimpleCov::Formatter
7
7
  SimpleCov.start "rails"
8
8
 
9
9
  require "rails"
10
- require "active_record"
11
- require "database_cleaner"
12
10
  require "webmock"
13
11
  require "vcr"
14
12
  require "pry"
@@ -17,25 +15,13 @@ require "generator_spec"
17
15
  require "sprig"
18
16
  include Sprig::Helpers
19
17
 
20
- Dir[File.dirname(__FILE__) + '/fixtures/models/*.rb'].each {|file| require file }
21
18
  Dir[File.dirname(__FILE__) + '/support/**/*.rb'].each {|file| require file}
22
19
 
23
20
  RSpec.configure do |c|
24
21
  c.include ColoredText
25
22
  c.include LoggerMock
26
23
 
27
- c.before(:suite) do
28
- DatabaseCleaner.strategy = :transaction
29
- DatabaseCleaner.clean_with(:truncation)
30
- end
31
-
32
- c.before(:each) do
33
- DatabaseCleaner.start
34
- end
35
-
36
24
  c.after(:each) do
37
- DatabaseCleaner.clean
38
-
39
25
  Sprig.reset_configuration
40
26
  end
41
27
  end
@@ -46,23 +32,25 @@ VCR.configure do |c|
46
32
  c.hook_into :webmock
47
33
  end
48
34
 
49
- # Database
50
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => "spec/db/activerecord.db")
35
+ # ActiveRecord (via SQlite3)
36
+ begin
37
+ require 'active_record'
38
+ require 'sqlite3'
51
39
 
52
- User.connection.execute "DROP TABLE IF EXISTS users;"
53
- User.connection.execute "CREATE TABLE users (id INTEGER PRIMARY KEY , first_name VARCHAR(255), last_name VARCHAR(255), type VARCHAR(255));"
40
+ Sprig.adapter = :active_record
41
+ rescue LoadError; end
54
42
 
55
- Post.connection.execute "DROP TABLE IF EXISTS posts;"
56
- Post.connection.execute "CREATE TABLE posts (id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(255), content VARCHAR(255), photo VARCHAR(255), published BOOLEAN , user_id INTEGER);"
43
+ # Mongoid
44
+ begin
45
+ require 'mongoid'
57
46
 
58
- Comment.connection.execute "DROP TABLE IF EXISTS comments;"
59
- Comment.connection.execute "CREATE TABLE comments (id INTEGER PRIMARY KEY , post_id INTEGER, body VARCHAR(255));"
47
+ Sprig.adapter = :mongoid
48
+ rescue LoadError; end
60
49
 
61
- Tag.connection.execute "DROP TABLE IF EXISTS tags;"
62
- Tag.connection.execute "CREATE TABLE tags (id INTEGER PRIMARY KEY , name VARCHAR(255));"
50
+ # Require model files.
51
+ Dir[File.dirname(__FILE__) + "/fixtures/models/#{Sprig.adapter}/*.rb"].each {|file| require file}
63
52
 
64
- Tag.connection.execute "DROP TABLE IF EXISTS posts_tags;"
65
- Tag.connection.execute "CREATE TABLE posts_tags (id INTEGER PRIMARY KEY , post_id INTEGER, tag_id INTEGER);"
53
+ require "adapters/#{Sprig.adapter}.rb"
66
54
 
67
55
  # Helpers
68
56
  #
data/spec/sprig_spec.rb CHANGED
@@ -2,6 +2,14 @@ require 'spec_helper'
2
2
  require 'open-uri'
3
3
 
4
4
  describe "Seeding an application" do
5
+ let(:missing_record_error) do
6
+ if defined?(ActiveRecord) && Post < ActiveRecord::Base
7
+ ActiveRecord::RecordNotFound
8
+ elsif defined?(Mongoid) && Post < Mongoid::Document
9
+ Mongoid::Errors::DocumentNotFound
10
+ end
11
+ end
12
+
5
13
  before do
6
14
  stub_rails_root
7
15
  end
@@ -272,7 +280,7 @@ describe "Seeding an application" do
272
280
  end
273
281
 
274
282
  context "with a malformed directive" do
275
- let(:expected_error_message) { 'Sprig::Directive must be instantiated with an ActiveRecord subclass or a Hash with :class defined' }
283
+ let(:expected_error_message) { "Sprig::Directive must be instantiated with a(n) #{Sprig.adapter_model_class} class or a Hash with :class defined" }
276
284
 
277
285
  context "including a class that is not a subclass of AR" do
278
286
  it "raises an argument error" do
@@ -327,7 +335,7 @@ describe "Seeding an application" do
327
335
 
328
336
  expect {
329
337
  existing_match.reload
330
- }.to raise_error(ActiveRecord::RecordNotFound)
338
+ }.to raise_error(missing_record_error)
331
339
 
332
340
  expect {
333
341
  existing_nonmatch.reload
@@ -408,5 +416,33 @@ describe "Seeding an application" do
408
416
  end
409
417
  end
410
418
  end
419
+
420
+ context "defined within the directive" do
421
+ let!(:existing) do
422
+ Post.create(
423
+ :title => "Yaml title",
424
+ :content => "Existing content")
425
+ end
426
+
427
+ around do |example|
428
+ load_seeds('posts.yml', &example)
429
+ end
430
+
431
+ it "respects the directive option" do
432
+ sprig [
433
+ {
434
+ :class => Post,
435
+ :source => open("spec/fixtures/seeds/test/posts.yml"),
436
+ :delete_existing_by => :title
437
+ }
438
+ ]
439
+
440
+ Post.count.should == 1
441
+
442
+ expect {
443
+ existing.reload
444
+ }.to raise_error(missing_record_error)
445
+ end
446
+ end
411
447
  end
412
448
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lawson Kurtz
@@ -9,36 +9,42 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-27 00:00:00.000000000 Z
12
+ date: 2015-03-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rails
15
+ name: appraisal
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: '3.1'
20
+ version: '1.0'
21
+ - - '>='
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.3
21
24
  type: :development
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
27
- version: '3.1'
30
+ version: '1.0'
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.3
28
34
  - !ruby/object:Gem::Dependency
29
- name: sqlite3
35
+ name: rails
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
38
  - - ~>
33
39
  - !ruby/object:Gem::Version
34
- version: 1.3.8
40
+ version: '3.1'
35
41
  type: :development
36
42
  prerelease: false
37
43
  version_requirements: !ruby/object:Gem::Requirement
38
44
  requirements:
39
45
  - - ~>
40
46
  - !ruby/object:Gem::Version
41
- version: 1.3.8
47
+ version: '3.1'
42
48
  - !ruby/object:Gem::Dependency
43
49
  name: rspec
44
50
  requirement: !ruby/object:Gem::Requirement
@@ -193,16 +199,23 @@ files:
193
199
  - lib/sprig/sprig_record_store.rb
194
200
  - lib/sprig/tsortable_hash.rb
195
201
  - lib/sprig/version.rb
202
+ - spec/adapters/active_record.rb
203
+ - spec/adapters/mongoid.rb
204
+ - spec/adapters/mongoid.yml
196
205
  - spec/db/activerecord.db
197
206
  - spec/feature/configurations_spec.rb
198
207
  - spec/fixtures/cassettes/google_spreadsheet_json_posts.yml
199
208
  - spec/fixtures/config/environments/development.rb
200
209
  - spec/fixtures/config/environments/production.rb
201
210
  - spec/fixtures/config/environments/test.rb
202
- - spec/fixtures/models/comment.rb
203
- - spec/fixtures/models/post.rb
204
- - spec/fixtures/models/tag.rb
205
- - spec/fixtures/models/user.rb
211
+ - spec/fixtures/models/active_record/comment.rb
212
+ - spec/fixtures/models/active_record/post.rb
213
+ - spec/fixtures/models/active_record/tag.rb
214
+ - spec/fixtures/models/active_record/user.rb
215
+ - spec/fixtures/models/mongoid/comment.rb
216
+ - spec/fixtures/models/mongoid/post.rb
217
+ - spec/fixtures/models/mongoid/tag.rb
218
+ - spec/fixtures/models/mongoid/user.rb
206
219
  - spec/fixtures/seeds/staging/posts.yml
207
220
  - spec/fixtures/seeds/test/comments.yml
208
221
  - spec/fixtures/seeds/test/files/cat.png
@@ -263,16 +276,23 @@ signing_key:
263
276
  specification_version: 4
264
277
  summary: Relational, environment-specific seeding for Rails apps.
265
278
  test_files:
279
+ - spec/adapters/active_record.rb
280
+ - spec/adapters/mongoid.rb
281
+ - spec/adapters/mongoid.yml
266
282
  - spec/db/activerecord.db
267
283
  - spec/feature/configurations_spec.rb
268
284
  - spec/fixtures/cassettes/google_spreadsheet_json_posts.yml
269
285
  - spec/fixtures/config/environments/development.rb
270
286
  - spec/fixtures/config/environments/production.rb
271
287
  - spec/fixtures/config/environments/test.rb
272
- - spec/fixtures/models/comment.rb
273
- - spec/fixtures/models/post.rb
274
- - spec/fixtures/models/tag.rb
275
- - spec/fixtures/models/user.rb
288
+ - spec/fixtures/models/active_record/comment.rb
289
+ - spec/fixtures/models/active_record/post.rb
290
+ - spec/fixtures/models/active_record/tag.rb
291
+ - spec/fixtures/models/active_record/user.rb
292
+ - spec/fixtures/models/mongoid/comment.rb
293
+ - spec/fixtures/models/mongoid/post.rb
294
+ - spec/fixtures/models/mongoid/tag.rb
295
+ - spec/fixtures/models/mongoid/user.rb
276
296
  - spec/fixtures/seeds/staging/posts.yml
277
297
  - spec/fixtures/seeds/test/comments.yml
278
298
  - spec/fixtures/seeds/test/files/cat.png