factory_bot_variants 0.1.0 → 0.2.0

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
  SHA256:
3
- metadata.gz: '0768f2e9df6a8788bb8a2ef27fb3fdc064b8e35addeabba424dde8fd3fe56ca7'
4
- data.tar.gz: b50b24636ae73f91d8f1c8a8585a57de34f81c223f1d7ae71c7d4c94a86fe23c
3
+ metadata.gz: 8bcb867528da166eeab75c1cc12e51a82a1a0e25761400cd9f3393c728a43b62
4
+ data.tar.gz: 4464e316f54ba850dab80703d3d6bb37ff5d400fe1ec05253ca7681b0eacbc9e
5
5
  SHA512:
6
- metadata.gz: 728ff7c516e59fc5bb54381890fb567c4d2c59a6ba47c2ce199c5ae3763b0f2a917e973872042e1d61fedb9a21224b8ae494db967bc9a7efcf138b0efb75fed7
7
- data.tar.gz: 724f1d76b2a24776e46708b16e068a115e2b0e221a513322ef06cc81b090296a4b190d8ae4f4b798aaade49749d10d8a9ef76e7d56619b24f4158f18e97a8b5e
6
+ metadata.gz: 78a7ca78478aecab65825b93e434de40adbfb3420d0d3f2e5fc11577e82cd5f5fc46d467fab5630f53ad75ecae20bd12ddb684142440916c6103b3ca821bf0fa
7
+ data.tar.gz: 15c98590aede45c9e24cfba652191588ed29a9cc37accb9ef1c7a2db53039ea8a0512003190fecf0c1258335e8645f9db7f079021f5a0cbf655e741dbecb2f60
data/.gitignore CHANGED
@@ -8,3 +8,5 @@
8
8
  /tmp/
9
9
 
10
10
  spec/examples.txt
11
+
12
+ gemfiles/*.lock
@@ -0,0 +1,7 @@
1
+ appraise "factory_bot_4_8" do
2
+ gem "factory_bot", "~> 4.8"
3
+ end
4
+
5
+ appraise "factory_bot_5" do
6
+ gem "factory_bot", "~> 5.0"
7
+ end
@@ -1,22 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- factory_bot_variants (0.1.0)
5
- factory_bot (~> 4.8)
4
+ factory_bot_variants (0.2.0)
5
+ factory_bot (>= 4.8, < 6)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (5.2.1)
10
+ activesupport (5.2.3)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  i18n (>= 0.7, < 2)
13
13
  minitest (~> 5.1)
14
14
  tzinfo (~> 1.1)
15
- concurrent-ruby (1.0.5)
15
+ appraisal (2.2.0)
16
+ bundler
17
+ rake
18
+ thor (>= 0.14.0)
19
+ concurrent-ruby (1.1.5)
16
20
  diff-lcs (1.3)
17
- factory_bot (4.11.1)
18
- activesupport (>= 3.0.0)
19
- i18n (1.1.0)
21
+ factory_bot (5.0.2)
22
+ activesupport (>= 4.2.0)
23
+ i18n (1.6.0)
20
24
  concurrent-ruby (~> 1.0)
21
25
  minitest (5.11.3)
22
26
  rake (10.5.0)
@@ -33,6 +37,7 @@ GEM
33
37
  diff-lcs (>= 1.2.0, < 2.0)
34
38
  rspec-support (~> 3.8.0)
35
39
  rspec-support (3.8.0)
40
+ thor (0.20.3)
36
41
  thread_safe (0.3.6)
37
42
  tzinfo (1.2.5)
38
43
  thread_safe (~> 0.1)
@@ -41,10 +46,11 @@ PLATFORMS
41
46
  ruby
42
47
 
43
48
  DEPENDENCIES
49
+ appraisal (~> 2.2)
44
50
  bundler (~> 1.16)
45
51
  factory_bot_variants!
46
52
  rake (~> 10.0)
47
53
  rspec (~> 3.8)
48
54
 
49
55
  BUNDLED WITH
50
- 1.16.5
56
+ 1.17.2
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # FactoryBotVariants
2
2
 
3
- In tests, particularly when asserting the order of entities, it's common to
4
- create several objects which vary by only one or two attributes:
3
+ In tests it's common to create several objects which vary by only one or two
4
+ attributes (particularly when asserting the order, or filtering, of entities):
5
5
 
6
6
  ```ruby
7
7
  it "sorts dogs oldest to youngest" do
@@ -28,7 +28,7 @@ If you have common attributes to assign to each variant, use the `:all` key:
28
28
  build_variants(:dog, names: ["Brutus", "Avril"], all: { cute: false })
29
29
  ```
30
30
 
31
- ## Usage
31
+ ## Installation
32
32
 
33
33
  In your gemfile:
34
34
 
@@ -61,3 +61,32 @@ RSpec.configure do |config|
61
61
  config.include FactoryBotVariants::DSL
62
62
  end
63
63
  ```
64
+
65
+ ## API
66
+
67
+ There's an equivalent `_variants` method per [FactoryBot strategy][strategies]:
68
+
69
+ [strategies]: https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#using-factories
70
+
71
+ - `build_variants`
72
+ - `create_variants`
73
+ - `attributes_for_variants`
74
+ - `build_stubbed_variants`
75
+
76
+ Arguments:
77
+
78
+ 1. Factory name
79
+ 1. Traits (optional)
80
+ 1. One or more variant attributes
81
+
82
+ Example:
83
+
84
+ ```ruby
85
+ build_variants(
86
+ factory_name,
87
+ trait,
88
+ attr1: [:a, :b],
89
+ attr2: [1, 2],
90
+ all: { common_attr: 1 },
91
+ )
92
+ ```
@@ -21,8 +21,9 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "factory_bot", "~> 4.8"
24
+ spec.add_dependency "factory_bot", ">= 4.8", "< 6"
25
25
 
26
+ spec.add_development_dependency "appraisal", "~> 2.2"
26
27
  spec.add_development_dependency "bundler", "~> 1.16"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "rspec", "~> 3.8"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "factory_bot", "~> 4.8"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "factory_bot", "~> 5.0"
6
+
7
+ gemspec path: "../"
@@ -1,3 +1,3 @@
1
1
  module FactoryBotVariants
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_bot_variants
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Peate
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-28 00:00:00.000000000 Z
11
+ date: 2019-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.8'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '4.8'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6'
33
+ - !ruby/object:Gem::Dependency
34
+ name: appraisal
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.2'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.2'
27
47
  - !ruby/object:Gem::Dependency
28
48
  name: bundler
29
49
  requirement: !ruby/object:Gem::Requirement
@@ -75,6 +95,7 @@ files:
75
95
  - ".gitignore"
76
96
  - ".rspec"
77
97
  - ".travis.yml"
98
+ - Appraisals
78
99
  - Gemfile
79
100
  - Gemfile.lock
80
101
  - LICENSE.txt
@@ -83,6 +104,8 @@ files:
83
104
  - bin/console
84
105
  - bin/setup
85
106
  - factory_bot_variants.gemspec
107
+ - gemfiles/factory_bot_4_8.gemfile
108
+ - gemfiles/factory_bot_5.gemfile
86
109
  - lib/factory_bot_variants.rb
87
110
  - lib/factory_bot_variants/dsl.rb
88
111
  - lib/factory_bot_variants/variant_attributes.rb
@@ -106,8 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
129
  - !ruby/object:Gem::Version
107
130
  version: '0'
108
131
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.7.7
132
+ rubygems_version: 3.0.3
111
133
  signing_key:
112
134
  specification_version: 4
113
135
  summary: ''