factory_girl 4.5.0 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +25 -5
  3. data/Appraisals +11 -7
  4. data/CONTRIBUTING.md +44 -6
  5. data/GETTING_STARTED.md +175 -59
  6. data/Gemfile +5 -0
  7. data/Gemfile.lock +86 -63
  8. data/LICENSE +1 -1
  9. data/NEWS +12 -1
  10. data/README.md +21 -10
  11. data/Rakefile +1 -3
  12. data/factory_girl.gemspec +6 -14
  13. data/gemfiles/3.2.gemfile +4 -1
  14. data/gemfiles/3.2.gemfile.lock +84 -52
  15. data/gemfiles/4.0.gemfile +4 -1
  16. data/gemfiles/4.0.gemfile.lock +75 -49
  17. data/gemfiles/4.1.gemfile +4 -1
  18. data/gemfiles/4.1.gemfile.lock +78 -48
  19. data/gemfiles/4.2.gemfile +10 -0
  20. data/gemfiles/4.2.gemfile.lock +123 -0
  21. data/gemfiles/5.0.gemfile +10 -0
  22. data/gemfiles/5.0.gemfile.lock +126 -0
  23. data/lib/factory_girl.rb +13 -4
  24. data/lib/factory_girl/attribute/dynamic.rb +4 -1
  25. data/lib/factory_girl/attribute_assigner.rb +2 -2
  26. data/lib/factory_girl/configuration.rb +4 -0
  27. data/lib/factory_girl/decorator.rb +2 -2
  28. data/lib/factory_girl/decorator/class_key_hash.rb +2 -1
  29. data/lib/factory_girl/definition_proxy.rb +2 -2
  30. data/lib/factory_girl/evaluator.rb +4 -0
  31. data/lib/factory_girl/factory_runner.rb +7 -1
  32. data/lib/factory_girl/find_definitions.rb +1 -1
  33. data/lib/factory_girl/linter.rb +65 -14
  34. data/lib/factory_girl/strategy/stub.rb +25 -1
  35. data/lib/factory_girl/strategy_syntax_method_registrar.rb +4 -0
  36. data/lib/factory_girl/version.rb +1 -1
  37. metadata +26 -185
  38. data/features/find_definitions.feature +0 -75
  39. data/features/step_definitions/database_steps.rb +0 -9
  40. data/features/step_definitions/factory_girl_steps.rb +0 -36
  41. data/features/support/env.rb +0 -10
  42. data/features/support/factories.rb +0 -16
  43. data/gemfiles/3.1.gemfile +0 -7
  44. data/gemfiles/3.1.gemfile.lock +0 -91
  45. data/spec/acceptance/activesupport_instrumentation_spec.rb +0 -62
  46. data/spec/acceptance/aliases_spec.rb +0 -19
  47. data/spec/acceptance/attribute_aliases_spec.rb +0 -45
  48. data/spec/acceptance/attribute_existing_on_object_spec.rb +0 -68
  49. data/spec/acceptance/attributes_for_spec.rb +0 -97
  50. data/spec/acceptance/attributes_from_instance_spec.rb +0 -53
  51. data/spec/acceptance/attributes_ordered_spec.rb +0 -51
  52. data/spec/acceptance/build_list_spec.rb +0 -56
  53. data/spec/acceptance/build_spec.rb +0 -86
  54. data/spec/acceptance/build_stubbed_spec.rb +0 -161
  55. data/spec/acceptance/callbacks_spec.rb +0 -253
  56. data/spec/acceptance/create_list_spec.rb +0 -97
  57. data/spec/acceptance/create_pair_spec.rb +0 -32
  58. data/spec/acceptance/create_spec.rb +0 -116
  59. data/spec/acceptance/define_child_before_parent_spec.rb +0 -21
  60. data/spec/acceptance/defining_methods_inside_a_factory_spec.rb +0 -17
  61. data/spec/acceptance/definition_camel_string_spec.rb +0 -15
  62. data/spec/acceptance/definition_spec.rb +0 -21
  63. data/spec/acceptance/definition_without_block_spec.rb +0 -15
  64. data/spec/acceptance/global_initialize_with_spec.rb +0 -82
  65. data/spec/acceptance/global_to_create_spec.rb +0 -122
  66. data/spec/acceptance/initialize_with_spec.rb +0 -217
  67. data/spec/acceptance/keyed_by_class_spec.rb +0 -22
  68. data/spec/acceptance/lint_spec.rb +0 -65
  69. data/spec/acceptance/modify_factories_spec.rb +0 -184
  70. data/spec/acceptance/modify_inherited_spec.rb +0 -52
  71. data/spec/acceptance/nested_attributes_spec.rb +0 -32
  72. data/spec/acceptance/overrides_spec.rb +0 -61
  73. data/spec/acceptance/parent_spec.rb +0 -90
  74. data/spec/acceptance/private_attributes_spec.rb +0 -20
  75. data/spec/acceptance/register_strategies_spec.rb +0 -136
  76. data/spec/acceptance/sequence_context_spec.rb +0 -52
  77. data/spec/acceptance/sequence_spec.rb +0 -61
  78. data/spec/acceptance/skip_create_spec.rb +0 -19
  79. data/spec/acceptance/stub_spec.rb +0 -62
  80. data/spec/acceptance/syntax_methods_within_dynamic_attributes_spec.rb +0 -51
  81. data/spec/acceptance/traits_spec.rb +0 -727
  82. data/spec/acceptance/transient_attributes_spec.rb +0 -151
  83. data/spec/factory_girl/aliases_spec.rb +0 -31
  84. data/spec/factory_girl/attribute/association_spec.rb +0 -28
  85. data/spec/factory_girl/attribute/dynamic_spec.rb +0 -52
  86. data/spec/factory_girl/attribute/sequence_spec.rb +0 -16
  87. data/spec/factory_girl/attribute/static_spec.rb +0 -19
  88. data/spec/factory_girl/attribute_list_spec.rb +0 -143
  89. data/spec/factory_girl/attribute_spec.rb +0 -16
  90. data/spec/factory_girl/callback_spec.rb +0 -41
  91. data/spec/factory_girl/declaration/implicit_spec.rb +0 -25
  92. data/spec/factory_girl/declaration_list_spec.rb +0 -67
  93. data/spec/factory_girl/definition_proxy_spec.rb +0 -215
  94. data/spec/factory_girl/definition_spec.rb +0 -64
  95. data/spec/factory_girl/disallows_duplicates_registry_spec.rb +0 -19
  96. data/spec/factory_girl/evaluator_class_definer_spec.rb +0 -77
  97. data/spec/factory_girl/factory_spec.rb +0 -259
  98. data/spec/factory_girl/find_definitions_spec.rb +0 -110
  99. data/spec/factory_girl/null_factory_spec.rb +0 -13
  100. data/spec/factory_girl/null_object_spec.rb +0 -22
  101. data/spec/factory_girl/registry_spec.rb +0 -68
  102. data/spec/factory_girl/sequence_spec.rb +0 -95
  103. data/spec/factory_girl/strategy/attributes_for_spec.rb +0 -18
  104. data/spec/factory_girl/strategy/build_spec.rb +0 -7
  105. data/spec/factory_girl/strategy/create_spec.rb +0 -25
  106. data/spec/factory_girl/strategy/stub_spec.rb +0 -38
  107. data/spec/factory_girl/strategy_calculator_spec.rb +0 -29
  108. data/spec/factory_girl_spec.rb +0 -22
  109. data/spec/spec_helper.rb +0 -26
  110. data/spec/support/macros/define_constant.rb +0 -86
  111. data/spec/support/matchers/callback.rb +0 -9
  112. data/spec/support/matchers/declaration.rb +0 -83
  113. data/spec/support/matchers/delegate.rb +0 -44
  114. data/spec/support/matchers/trait.rb +0 -11
  115. data/spec/support/shared_examples/strategy.rb +0 -90
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b66b3ff9ce2ea6a436ba4beb95761498dd26152
4
- data.tar.gz: ce844f3fb80089bf0f88fed59de2b5a00aef949d
3
+ metadata.gz: fa9eb22350ba005f4e5f9a78f10e5dd825035c21
4
+ data.tar.gz: 2dcd957723bd03f85b6dbc4a674f031873a29a90
5
5
  SHA512:
6
- metadata.gz: 4ae8b04a6f0c57e39b6361e48d098b5f91f8f12f01f8ad78e82467f7c6d664fb075ec8f3002ca42815d5d9a3460a70ac7c168dd9afc654d7385d4a705b6a4ae0
7
- data.tar.gz: 8dd8a73ad04e9fbc5725959108366f6e9970204f24f0f81e66c65387a09a32c22a094ffde3ff75504c62ca2a9f8efb327d84f81cf954afa75a3026750a6cb10e
6
+ metadata.gz: c3b3e8264c3284d727289be55a71a8f641b801e5610f9261e3caa5d35894fba887d8d23e518e61562751ea25d4d2fcb4a704a0d2132d18e7a0f5fadfedc474df
7
+ data.tar.gz: 2bab54b8012900039840a4259c4c5cb98378a312f899530825b4743de4bb1c9d344920cb1073a63e057b7e99b19e06c75c001d1f53fb7ba3c559310b48f9b42b
@@ -2,18 +2,38 @@ rvm:
2
2
  - 1.9.3
3
3
  - 2.0.0
4
4
  - 2.1.0
5
+ - 2.2.2
6
+ - 2.3.0
5
7
  - jruby-19mode
8
+ - rbx-2
6
9
  before_install:
7
10
  - gem update --system
8
- install: "bundle install"
9
- script: "bundle exec rake spec:unit spec:acceptance features"
10
- jdk:
11
- - openjdk6
11
+ - gem update bundler
12
+ - gem cleanup bundler
13
+ install: "bundle install --jobs 8"
14
+ script: "bundle exec rake"
12
15
  gemfile:
13
- - gemfiles/3.1.gemfile
14
16
  - gemfiles/3.2.gemfile
15
17
  - gemfiles/4.0.gemfile
16
18
  - gemfiles/4.1.gemfile
19
+ - gemfiles/4.2.gemfile
20
+ - gemfiles/5.0.gemfile
21
+ matrix:
22
+ fast_finish: true
23
+ allow_failures:
24
+ - rvm: jruby-19mode
25
+ gemfile: gemfiles/5.0.gemfile
26
+ - rvm: 1.9.3
27
+ gemfile: gemfiles/5.0.gemfile
28
+ - rvm: 2.0.0
29
+ gemfile: gemfiles/5.0.gemfile
30
+ - rvm: 2.1.0
31
+ gemfile: gemfiles/5.0.gemfile
32
+ - rvm: rbx-2
33
+ gemfile: gemfiles/5.0.gemfile
17
34
  branches:
18
35
  only:
19
36
  - master
37
+
38
+ sudo: false
39
+ cache: bundler
data/Appraisals CHANGED
@@ -1,15 +1,19 @@
1
- appraise "3.1" do
2
- gem "activerecord", "~> 3.1.12"
3
- end
4
-
5
1
  appraise "3.2" do
6
- gem "activerecord", "~> 3.2.15"
2
+ gem "activerecord", git: 'https://github.com/rails/rails.git', branch: '3-2-stable'
7
3
  end
8
4
 
9
5
  appraise '4.0' do
10
- gem 'activerecord', "~> 4.0.1"
6
+ gem 'activerecord', "~> 4.0.13"
11
7
  end
12
8
 
13
9
  appraise '4.1' do
14
- gem 'activerecord', "~> 4.1.1"
10
+ gem 'activerecord', "~> 4.1.14"
11
+ end
12
+
13
+ appraise '4.2' do
14
+ gem 'activerecord', "~> 4.2.5.1"
15
+ end
16
+
17
+ appraise '5.0' do
18
+ gem 'activerecord', "~> 5.0.0.beta2"
15
19
  end
@@ -1,10 +1,48 @@
1
- Contributing to factory\_girl:
1
+ # Contributing to Factory Girl
2
2
 
3
- 1. Fork the [official repository](https://github.com/thoughtbot/factory_girl/tree/master).
4
- 2. Make your changes in a topic branch.
5
- 3. Send a pull request.
3
+ We love pull requests from everyone. By participating in this project, you
4
+ agree to abide by the thoughtbot [code of conduct].
6
5
 
7
- Notes:
6
+ [code of conduct]: https://thoughtbot.com/open-source-code-of-conduct
8
7
 
9
- * Contributions without tests won't be accepted.
8
+ Here are some ways *you* can contribute:
9
+
10
+ * by using alpha, beta, and prerelease versions
11
+ * by reporting bugs
12
+ * by suggesting new features
13
+ * by writing or editing documentation
14
+ * by writing specifications
15
+ * by writing code ( **no patch is too small** : fix typos, add comments, clean up inconsistent whitespace )
16
+ * by refactoring code
17
+ * by closing [issues][]
18
+ * by reviewing patches
19
+
20
+ [issues]: https://github.com/thoughtbot/factory_girl/issues
21
+
22
+ ## Submitting an Issue
23
+ We use the [GitHub issue tracker][issues] to track bugs and features. Before
24
+ submitting a bug report or feature request, check to make sure it hasn't
25
+ already been submitted. When submitting a bug report, please include a [Gist][]
26
+ that includes a stack trace and any details that may be necessary to reproduce
27
+ the bug, including your gem version, Ruby version, and operating system.
28
+ Ideally, a bug report should include a pull request with failing specs.
29
+
30
+ [gist]: https://gist.github.com/
31
+
32
+ ## Submitting a Pull Request
33
+ 1. [Fork][fork] the [official repository][repo].
34
+ 2. [Create a topic branch.][branch]
35
+ 3. Implement your feature or bug fix.
36
+ 4. Add, commit, and push your changes.
37
+ 5. [Submit a pull request.][pr]
38
+
39
+ ## Notes
40
+ * Please add tests if you changed code. Contributions without tests won't be accepted.
10
41
  * Please don't update the Gem version.
42
+
43
+ [repo]: https://github.com/thoughtbot/factory_girl/tree/master
44
+ [fork]: https://help.github.com/articles/fork-a-repo/
45
+ [branch]: https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/
46
+ [pr]: https://help.github.com/articles/using-pull-requests/
47
+
48
+ Inspired by https://github.com/middleman/middleman-heroku/blob/master/CONTRIBUTING.md
@@ -35,12 +35,28 @@ RSpec.configure do |config|
35
35
  config.include FactoryGirl::Syntax::Methods
36
36
  end
37
37
 
38
+ # RSpec without Rails
39
+ RSpec.configure do |config|
40
+ config.include FactoryGirl::Syntax::Methods
41
+
42
+ config.before(:suite) do
43
+ FactoryGirl.find_definitions
44
+ end
45
+ end
46
+
47
+ Remember to require the above file in your spec_helper since the support folder isn't eagerly loaded
48
+
49
+ ```ruby
50
+ require 'support/factory_girl'
51
+ ```
52
+
38
53
  # Test::Unit
39
54
  class Test::Unit::TestCase
40
55
  include FactoryGirl::Syntax::Methods
41
56
  end
42
57
 
43
58
  # Cucumber
59
+ # env.rb (Rails example location - RAILS_ROOT/features/support/env.rb)
44
60
  World(FactoryGirl::Syntax::Methods)
45
61
 
46
62
  # Spinach
@@ -48,74 +64,24 @@ class Spinach::FeatureSteps
48
64
  include FactoryGirl::Syntax::Methods
49
65
  end
50
66
 
51
- # MiniTest
52
- class MiniTest::Unit::TestCase
67
+ # Minitest
68
+ class Minitest::Unit::TestCase
53
69
  include FactoryGirl::Syntax::Methods
54
70
  end
55
71
 
56
- # MiniTest::Spec
57
- class MiniTest::Spec
72
+ # Minitest::Spec
73
+ class Minitest::Spec
58
74
  include FactoryGirl::Syntax::Methods
59
75
  end
60
76
 
61
77
  # minitest-rails
62
- class MiniTest::Rails::ActiveSupport::TestCase
78
+ class ActiveSupport::TestCase
63
79
  include FactoryGirl::Syntax::Methods
64
80
  end
65
81
  ```
66
82
 
67
83
  If you do not include `FactoryGirl::Syntax::Methods` in your test suite, then all factory_girl methods will need to be prefaced with `FactoryGirl`.
68
84
 
69
- Linting Factories
70
- -----------------
71
-
72
- factory_girl allows for linting known factories:
73
-
74
- ```ruby
75
- FactoryGirl.lint
76
- ```
77
-
78
- `FactoryGirl.lint` builds each factory and subsequently calls `#valid?` on it
79
- (if `#valid?` is defined); if any calls to `#valid?` return `false`,
80
- `FactoryGirl::InvalidFactoryError` is raised with a list of the offending
81
- factories. Recommended usage of `FactoryGirl.lint` is to invoke this once
82
- before the test suite is run.
83
-
84
- With RSpec:
85
-
86
- ```ruby
87
- # spec/support/factory_girl.rb
88
- RSpec.configure do |config|
89
- # additional factory_girl configuration
90
-
91
- config.before(:suite) do
92
- begin
93
- DatabaseCleaner.start
94
- FactoryGirl.lint
95
- ensure
96
- DatabaseCleaner.clean
97
- end
98
- end
99
- end
100
- ```
101
-
102
- After calling `FactoryGirl.lint`, you'll likely want to clear out the
103
- database, as built factories will create associated records. The provided
104
- example above uses the database_cleaner gem to clear out the database; be sure
105
- to add the gem to your Gemfile under the appropriate groups.
106
-
107
- You can lint factories selectively by passing only factories you want linted:
108
-
109
- ```ruby
110
- factories_to_lint = FactoryGirl.factories.reject do |factory|
111
- factory.name =~ /^old_/
112
- end
113
-
114
- FactoryGirl.lint factories_to_lint
115
- ```
116
-
117
- This would lint all factories that aren't prefixed with `old_`.
118
-
119
85
  Defining factories
120
86
  ------------------
121
87
 
@@ -143,8 +109,9 @@ It is highly recommended that you have one factory for each class that provides
143
109
 
144
110
  Attempting to define multiple factories with the same name will raise an error.
145
111
 
146
- Factories can be defined anywhere, but will be automatically loaded if they
147
- are defined in files at the following locations:
112
+ Factories can be defined anywhere, but will be automatically loaded after
113
+ calling `FactoryGirl.find_definitions` if factories are defined in files at the
114
+ following locations:
148
115
 
149
116
  test/factories.rb
150
117
  spec/factories.rb
@@ -201,10 +168,18 @@ factory :user do
201
168
  end
202
169
  ```
203
170
 
171
+ Because of the block syntax in Ruby, defining attributes as `Hash`es (for
172
+ serialized/JSON columns, for example) requires two sets of curly brackets:
173
+
174
+ ```ruby
175
+ factory :program do
176
+ configuration { { auto_resolve: false, auto_define: true } }
177
+ end
178
+ ```
179
+
204
180
  Aliases
205
181
  -------
206
-
207
- Aliases allow you to use named associations more easily.
182
+ FactoryGirl allows you to define aliases to existing factories to make them easier to re-use. This could come in handy when, for example, your Post object has a author attribute that actually refers to an instance of a User class. While normally FactoryGirl can infer the factory name from the association name, in this case it will look for a author factory in vain. So, alias your user factory so it can be used under alias names.
208
183
 
209
184
  ```ruby
210
185
  factory :user, aliases: [:author, :commenter] do
@@ -278,6 +253,22 @@ you would expect. If you need to access the evaluator in a factory_girl callback
278
253
  you'll need to declare a second block argument (for the evaluator) and access
279
254
  transient attributes from there.
280
255
 
256
+ Method Name / Reserved Word Attributes
257
+ -------------------------------
258
+
259
+ If your attributes conflict with existing methods or reserved words you can define them with `add_attribute`.
260
+
261
+ ```ruby
262
+ factory :dna do
263
+ add_attribute(:sequence) { 'GATTACA' }
264
+ end
265
+
266
+ factory :payment do
267
+ add_attribute(:method) { 'paypal' }
268
+ end
269
+
270
+ ```
271
+
281
272
  Associations
282
273
  ------------
283
274
 
@@ -381,6 +372,57 @@ create(:user_with_posts).posts.length # 5
381
372
  create(:user_with_posts, posts_count: 15).posts.length # 15
382
373
  ```
383
374
 
375
+ Generating data for a `has_and_belongs_to_many` relationship is very similar
376
+ to the above `has_many` relationship, with a small change, you need to pass an
377
+ array of objects to the model's pluralized attribute name rather than a single
378
+ object to the singular version of the attribute name.
379
+
380
+ Here's an example with two models that are related via
381
+ `has_and_belongs_to_many`:
382
+
383
+ ```ruby
384
+ FactoryGirl.define do
385
+
386
+ # language factory with a `belongs_to` association for the profile
387
+ factory :language do
388
+ title "Through the Looking Glass"
389
+ profile
390
+ end
391
+
392
+ # profile factory without associated languages
393
+ factory :profile do
394
+ name "John Doe"
395
+
396
+ # profile_with_languages will create language data after the profile has
397
+ # been created
398
+ factory :profile_with_languages do
399
+ # languages_count is declared as an ignored attribute and available in
400
+ # attributes on the factory, as well as the callback via the evaluator
401
+ transient do
402
+ languages_count 5
403
+ end
404
+
405
+ # the after(:create) yields two values; the profile instance itself and
406
+ # the evaluator, which stores all values from the factory, including
407
+ # ignored attributes; `create_list`'s second argument is the number of
408
+ # records to create and we make sure the profile is associated properly
409
+ # to the language
410
+ after(:create) do |profile, evaluator|
411
+ create_list(:language, evaluator.languages_count, profiles: [profile])
412
+ end
413
+ end
414
+ end
415
+ end
416
+ ```
417
+
418
+ This allows us to do:
419
+
420
+ ```ruby
421
+ create(:profile).languages.length # 0
422
+ create(:profile_with_languages).languages.length # 5
423
+ create(:profile_with_languages, languages_count: 15).languages.length # 15
424
+ ```
425
+
384
426
  Inheritance
385
427
  -----------
386
428
 
@@ -866,6 +908,80 @@ built_users = build_pair(:user) # array of two built users
866
908
  created_users = create_pair(:user) # array of two created users
867
909
  ```
868
910
 
911
+ Linting Factories
912
+ -----------------
913
+
914
+ factory_girl allows for linting known factories:
915
+
916
+ ```ruby
917
+ FactoryGirl.lint
918
+ ```
919
+
920
+ `FactoryGirl.lint` creates each factory and catches any exceptions raised
921
+ during the creation process. `FactoryGirl::InvalidFactoryError` is raised with
922
+ a list of factories (and corresponding exceptions) for factories which could
923
+ not be created.
924
+
925
+ Recommended usage of `FactoryGirl.lint`
926
+ is to run this in a task
927
+ before your test suite is executed.
928
+ Running it in a `before(:suite)`,
929
+ will negatively impact the performance
930
+ of your tests
931
+ when running single tests.
932
+
933
+ Example Rake task:
934
+
935
+ ```ruby
936
+ # lib/tasks/factory_girl.rake
937
+ namespace :factory_girl do
938
+ desc "Verify that all FactoryGirl factories are valid"
939
+ task lint: :environment do
940
+ if Rails.env.test?
941
+ begin
942
+ DatabaseCleaner.start
943
+ FactoryGirl.lint
944
+ ensure
945
+ DatabaseCleaner.clean
946
+ end
947
+ else
948
+ system("bundle exec rake factory_girl:lint RAILS_ENV='test'")
949
+ end
950
+ end
951
+ end
952
+ ```
953
+
954
+ After calling `FactoryGirl.lint`, you'll likely want to clear out the
955
+ database, as records will most likely be created. The provided example above
956
+ uses the database_cleaner gem to clear out the database; be sure to add the
957
+ gem to your Gemfile under the appropriate groups.
958
+
959
+ You can lint factories selectively by passing only factories you want linted:
960
+
961
+ ```ruby
962
+ factories_to_lint = FactoryGirl.factories.reject do |factory|
963
+ factory.name =~ /^old_/
964
+ end
965
+
966
+ FactoryGirl.lint factories_to_lint
967
+ ```
968
+
969
+ This would lint all factories that aren't prefixed with `old_`.
970
+
971
+ Traits can also be linted. This option verifies that each
972
+ and every trait of a factory generates a valid object on its own.
973
+ This is turned on by passing `traits: true` to the `lint` method:
974
+
975
+ ```ruby
976
+ FactoryGirl.lint traits:true
977
+ ```
978
+
979
+ This can also be combined with other arguments:
980
+
981
+ ```ruby
982
+ FactoryGirl.lint factories_to_lint, traits: true
983
+ ```
984
+
869
985
  Custom Construction
870
986
  -------------------
871
987
 
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
6
+ gem 'jdbc-sqlite3', platforms: :jruby
7
+
8
+ gem 'sqlite3', '~> 1.3.10', platforms: :ruby