factory_manager 0.2.0 → 0.3.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/factory_manager.rb +26 -2
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 001756b2357e09a0b523eb4b788531cf5d0bf5bc5ebd3f0eb2776e1c0a865225
4
- data.tar.gz: f7a7190a1c5d732a17d1e9fadd0c1c3940e84bbc480eef4e4b8201e0e5e4d95b
3
+ metadata.gz: 909ea336cb6277d25c8352f6fef4a82c9a722daf519b54c2d93b506d6b1846e1
4
+ data.tar.gz: f51e50a86af400882bb17534a9d94a2e57a27d58eb31afffa2ae68a5180b9454
5
5
  SHA512:
6
- metadata.gz: 94f5d3f67f5243c3a79336edc072e15d489b1a96042ab42f81c4fc22a09950a2bd0e624824c69b0c2e45dcfdaadaf86292489cd37384236532ea01fdf8564887
7
- data.tar.gz: c697beeff0a385ed5f1ad556dc2bc98f213069bece4d07876f1c7e5572bd8fb60c9cb8c42b622895aa038ba48fc0a54ce9a9529bb9a0d836fb71a6bb8a9f7807
6
+ metadata.gz: de5503f2a7a0699bdb468674c3757c7aa944d3463e572856acbe95bdad02eb7b29333e0f5195123f8943ad33b2272991c8bd1a07abd340e8c71b9e31704475f5
7
+ data.tar.gz: c8f025a085662da2b1f1b1289eab3200cb93328858920e16092ca85a03766276cc9004c8c365f40fb5c26a511c007a92ad1ccd71477100c34404f3cc243aa9cf
@@ -6,8 +6,11 @@ module FactoryManager
6
6
 
7
7
  # Initializes and builds a new build generator.
8
8
  #
9
+ # @param [String|Symbol] name The name of the manager to build.
9
10
  # @yield Invokes the block to build the generator.
10
- def self.build(&block)
11
+ def self.build(name = nil, &block)
12
+ block ||= managers[name]
13
+
11
14
  Generator
12
15
  .new(strategy: :build)
13
16
  .generate(&block)
@@ -15,10 +18,31 @@ module FactoryManager
15
18
 
16
19
  # Initializes and creates a new create generator.
17
20
  #
21
+ # @param [String|Symbol] name The name of the manager to create.
18
22
  # @yield Invokes the block to create the generator.
19
- def self.create(&block)
23
+ def self.create(name = nil, &block)
24
+ block ||= managers[name]
25
+
20
26
  Generator
21
27
  .new(strategy: :create)
22
28
  .generate(&block)
23
29
  end
30
+
31
+ # Returns the registered managers.
32
+ #
33
+ # @return [Hash] The registered managers.
34
+ def self.managers
35
+ @managers ||= {}
36
+ end
37
+
38
+ # Register a manager to reuse later.
39
+ #
40
+ # @param [String|Symbol] name The name of the manager being registered.
41
+ def self.register(name, &block)
42
+ if managers.key?(name)
43
+ raise ArgumentError.new(%("#{name}" manager is already registered.))
44
+ end
45
+
46
+ managers[name] = block
47
+ end
24
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tristan Dunn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-16 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 1.31.2
89
+ version: 1.34.1
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
- version: 1.31.2
96
+ version: 1.34.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubocop-performance
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.14.2
103
+ version: 1.14.3
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
- version: 1.14.2
110
+ version: 1.14.3
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rubocop-rake
113
113
  requirement: !ruby/object:Gem::Requirement