manufacturable 1.3.0 → 1.4.2
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 +4 -4
- data/README.md +2 -2
- data/lib/manufacturable.rb +8 -8
- data/lib/manufacturable/builder.rb +15 -11
- data/lib/manufacturable/item.rb +15 -0
- data/lib/manufacturable/version.rb +1 -1
- data/manufacturable.gemspec +1 -1
- metadata +2 -3
- data/assets/factory.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dbdb8a719fcf23191bd800e45a570430be3dbf5a0dce71474b44ca44cc8355a6
|
|
4
|
+
data.tar.gz: 9102df38b83cdf17ba32f5c277d08779bf13cfb7bddebe829859d2efe490e8bd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f10dff173251339d53a12f00e2aab39fcd299386f7f6adf31c6d186ecdd6ff58c4115ea0e98cea8686da611f045fd682aa4ac102848dadecca6d1c6d7d662b7b
|
|
7
|
+
data.tar.gz: 2bab5827067a63715f43acd712e46208d2be51bd2a6e4c6cc3167d52afb131659cc0afeae9751b95639e6fc7ed0e23a90a0e07aa986dfc63d3b78d8913eb197a
|
data/README.md
CHANGED
|
@@ -280,6 +280,6 @@ opportunity to work on things we're still proud of today.
|
|
|
280
280
|
[nop]: https://en.wikipedia.org/wiki/Null_object_pattern
|
|
281
281
|
[gem]: https://rubygems.org
|
|
282
282
|
[git]: https://github.com/first-try-software/manufacturable
|
|
283
|
-
[cod]: https://github.com/first-try-software/manufacturable/blob/
|
|
283
|
+
[cod]: https://github.com/first-try-software/manufacturable/blob/main/CODE_OF_CONDUCT.md
|
|
284
284
|
[mit]: https://opensource.org/licenses/MIT
|
|
285
|
-
[ind]: https://github.com/entelo/industrialist
|
|
285
|
+
[ind]: https://github.com/entelo/industrialist
|
data/lib/manufacturable.rb
CHANGED
|
@@ -6,20 +6,20 @@ require 'manufacturable/object_factory'
|
|
|
6
6
|
require 'manufacturable/railtie' if defined?(Rails)
|
|
7
7
|
|
|
8
8
|
module Manufacturable
|
|
9
|
-
def self.build(*args)
|
|
10
|
-
Builder.build(*args)
|
|
9
|
+
def self.build(*args, **kwargs)
|
|
10
|
+
Builder.build(*args, **kwargs)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def self.build_one(*args)
|
|
14
|
-
Builder.build_one(*args)
|
|
13
|
+
def self.build_one(*args, **kwargs)
|
|
14
|
+
Builder.build_one(*args, **kwargs)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def self.build_many(*args)
|
|
18
|
-
Builder.build_all(*args)
|
|
17
|
+
def self.build_many(*args, **kwargs)
|
|
18
|
+
Builder.build_all(*args, **kwargs)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def self.build_all(*args)
|
|
22
|
-
Builder.build_all(*args)
|
|
21
|
+
def self.build_all(*args, **kwargs)
|
|
22
|
+
Builder.build_all(*args, **kwargs)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def self.registered_types
|
|
@@ -2,16 +2,16 @@ require 'manufacturable/registrar'
|
|
|
2
2
|
|
|
3
3
|
module Manufacturable
|
|
4
4
|
class Builder
|
|
5
|
-
def self.build(*args)
|
|
6
|
-
self.new(*args).build
|
|
5
|
+
def self.build(*args, **kwargs)
|
|
6
|
+
self.new(*args, **kwargs).build
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
def self.build_one(*args)
|
|
10
|
-
self.new(*args).build_one
|
|
9
|
+
def self.build_one(*args, **kwargs)
|
|
10
|
+
self.new(*args, **kwargs).build_one
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def self.build_all(*args)
|
|
14
|
-
self.new(*args).build_all
|
|
13
|
+
def self.build_all(*args, **kwargs)
|
|
14
|
+
self.new(*args, **kwargs).build_all
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def build
|
|
@@ -28,10 +28,10 @@ module Manufacturable
|
|
|
28
28
|
|
|
29
29
|
private
|
|
30
30
|
|
|
31
|
-
attr_reader :type, :key, :args
|
|
31
|
+
attr_reader :type, :key, :args, :kwargs
|
|
32
32
|
|
|
33
|
-
def initialize(type, key, *args)
|
|
34
|
-
@type, @key, @args = type, key, args
|
|
33
|
+
def initialize(type, key, *args, **kwargs)
|
|
34
|
+
@type, @key, @args, @kwargs = type, key, args, kwargs
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def return_first?
|
|
@@ -39,7 +39,7 @@ module Manufacturable
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def instances
|
|
42
|
-
@instances ||= klasses.map { |klass| klass&.new(*args) }
|
|
42
|
+
@instances ||= klasses.map { |klass| klass&.new(*args, **kwargs_with_key) }
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def klasses
|
|
@@ -47,7 +47,11 @@ module Manufacturable
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def last_instance
|
|
50
|
-
last_klass&.new(*args)
|
|
50
|
+
last_klass&.new(*args, **kwargs_with_key)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def kwargs_with_key
|
|
54
|
+
kwargs.merge(manufacturable_item_key: key)
|
|
51
55
|
end
|
|
52
56
|
|
|
53
57
|
def last_klass
|
data/lib/manufacturable/item.rb
CHANGED
|
@@ -2,6 +2,21 @@ require 'manufacturable/registrar'
|
|
|
2
2
|
|
|
3
3
|
module Manufacturable
|
|
4
4
|
module Item
|
|
5
|
+
def self.extended(base)
|
|
6
|
+
base.instance_eval do
|
|
7
|
+
def new(*args, **kwargs, &block)
|
|
8
|
+
key = kwargs.delete(:manufacturable_item_key)
|
|
9
|
+
instance = kwargs.empty? ? super(*args, &block) : super
|
|
10
|
+
instance.instance_variable_set(:@manufacturable_item_key, key)
|
|
11
|
+
instance
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
base.class_eval do
|
|
16
|
+
attr_reader :manufacturable_item_key
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
5
20
|
def corresponds_to(key, type = self.superclass)
|
|
6
21
|
key = key == type ? Registrar::ALL_KEY : key
|
|
7
22
|
Registrar.register(type, key, self)
|
data/manufacturable.gemspec
CHANGED
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
22
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|assets)/}) }
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
spec.bindir = "exe"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: manufacturable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.4.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alan Ridlehoover
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2020-
|
|
12
|
+
date: 2020-09-17 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -101,7 +101,6 @@ files:
|
|
|
101
101
|
- LICENSE.txt
|
|
102
102
|
- README.md
|
|
103
103
|
- Rakefile
|
|
104
|
-
- assets/factory.png
|
|
105
104
|
- bin/console
|
|
106
105
|
- bin/setup
|
|
107
106
|
- lib/manufacturable.rb
|
data/assets/factory.png
DELETED
|
Binary file
|