manufacturable 1.4.2 → 1.5.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 +4 -4
- data/lib/manufacturable.rb +9 -9
- data/lib/manufacturable/builder.rb +17 -15
- data/lib/manufacturable/railtie.rb +15 -3
- data/lib/manufacturable/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0a31e2944a3a3ba6d32850cc919ff1a74e2172645cd3e8557f7e71a1e3968dcb
|
|
4
|
+
data.tar.gz: 12129e965112f3425b00cf46e812ce8b0bddf47169ac4ee3adedaae7561f72f1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 336fb5ac884d512ad3a43ef9f720b11fec7e56475dd28e5be8ad80f4de86c3787f6cc89de2e6c98207a45f4eb67345fbcb1874316d251de6721f44cb1fa9b9b9
|
|
7
|
+
data.tar.gz: 96ba407a234793cca65a245f7fca4ccb4bd96687e124e605f6ba24116cba045b45f8654c38ab5a9fd56ef9d69cc190e026251385f58b77af9b949e4cc2491661
|
data/lib/manufacturable.rb
CHANGED
|
@@ -3,23 +3,23 @@ require 'manufacturable/config'
|
|
|
3
3
|
require 'manufacturable/factory'
|
|
4
4
|
require 'manufacturable/item'
|
|
5
5
|
require 'manufacturable/object_factory'
|
|
6
|
-
require 'manufacturable/railtie'
|
|
6
|
+
require 'manufacturable/railtie'
|
|
7
7
|
|
|
8
8
|
module Manufacturable
|
|
9
|
-
def self.build(*args, **kwargs)
|
|
10
|
-
Builder.build(*args, **kwargs)
|
|
9
|
+
def self.build(*args, **kwargs, &block)
|
|
10
|
+
Builder.build(*args, **kwargs, &block)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def self.build_one(*args, **kwargs)
|
|
14
|
-
Builder.build_one(*args, **kwargs)
|
|
13
|
+
def self.build_one(*args, **kwargs, &block)
|
|
14
|
+
Builder.build_one(*args, **kwargs, &block)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def self.build_many(*args, **kwargs)
|
|
18
|
-
Builder.build_all(*args, **kwargs)
|
|
17
|
+
def self.build_many(*args, **kwargs, &block)
|
|
18
|
+
Builder.build_all(*args, **kwargs, &block)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
def self.build_all(*args, **kwargs)
|
|
22
|
-
Builder.build_all(*args, **kwargs)
|
|
21
|
+
def self.build_all(*args, **kwargs, &block)
|
|
22
|
+
Builder.build_all(*args, **kwargs, &block)
|
|
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, **kwargs)
|
|
6
|
-
self.new(*args, **kwargs).build
|
|
5
|
+
def self.build(*args, **kwargs, &block)
|
|
6
|
+
self.new(*args, **kwargs, &block).build
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
def self.build_one(*args, **kwargs)
|
|
10
|
-
self.new(*args, **kwargs).build_one
|
|
9
|
+
def self.build_one(*args, **kwargs, &block)
|
|
10
|
+
self.new(*args, **kwargs, &block).build_one
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def self.build_all(*args, **kwargs)
|
|
14
|
-
self.new(*args, **kwargs).build_all
|
|
13
|
+
def self.build_all(*args, **kwargs, &block)
|
|
14
|
+
self.new(*args, **kwargs, &block).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, :kwargs
|
|
31
|
+
attr_reader :type, :key, :args, :kwargs, :block
|
|
32
32
|
|
|
33
|
-
def initialize(type, key, *args, **kwargs)
|
|
34
|
-
@type, @key, @args, @kwargs = type, key, args, kwargs
|
|
33
|
+
def initialize(type, key, *args, **kwargs, &block)
|
|
34
|
+
@type, @key, @args, @kwargs, @block = type, key, args, kwargs, block
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def return_first?
|
|
@@ -39,15 +39,17 @@ module Manufacturable
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def instances
|
|
42
|
-
@instances ||= klasses.map
|
|
42
|
+
@instances ||= klasses.map do |klass|
|
|
43
|
+
klass.new(*args, **kwargs_with_key).tap { |instance| block&.call(instance) }
|
|
44
|
+
end
|
|
43
45
|
end
|
|
44
46
|
|
|
45
|
-
def
|
|
46
|
-
|
|
47
|
+
def last_instance
|
|
48
|
+
last_klass&.new(*args, **kwargs_with_key)&.tap { |instance| block&.call(instance) }
|
|
47
49
|
end
|
|
48
50
|
|
|
49
|
-
def
|
|
50
|
-
|
|
51
|
+
def klasses
|
|
52
|
+
Registrar.get(type, key).to_a
|
|
51
53
|
end
|
|
52
54
|
|
|
53
55
|
def kwargs_with_key
|
|
@@ -55,7 +57,7 @@ module Manufacturable
|
|
|
55
57
|
end
|
|
56
58
|
|
|
57
59
|
def last_klass
|
|
58
|
-
klasses.
|
|
60
|
+
klasses.last
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
end
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
require 'manufacturable/config'
|
|
2
2
|
|
|
3
3
|
module Manufacturable
|
|
4
|
-
class Railtie
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
class Railtie
|
|
5
|
+
def self.load
|
|
6
|
+
load_railtie if rails_defined?
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.load_railtie
|
|
10
|
+
Class.new(Rails::Railtie).initializer('manufacturable.require_paths') do |app|
|
|
11
|
+
Manufacturable::Config.require_method = app.config.eager_load ? :require : :require_dependency
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.rails_defined?
|
|
16
|
+
defined?(Rails)
|
|
7
17
|
end
|
|
8
18
|
end
|
|
9
19
|
end
|
|
20
|
+
|
|
21
|
+
Manufacturable::Railtie.load
|
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.5.0
|
|
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-09-
|
|
12
|
+
date: 2020-09-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|