factory_manager 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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