manufacturable 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80f96d22a3a77b6f7a8a9c8ad091d3c029a987b818de6682f04fa5ce4cfbd994
4
- data.tar.gz: 0f06a6a29bb44f9aa343cc559cb5432c433ade07cf80aa0310f75d5d51c1350c
3
+ metadata.gz: 34e0bee5e73591bee5d9bbcdb20761596facb07dbf15f6fedb61a2af2d2baf78
4
+ data.tar.gz: b83684b6cf6bde99726921e683597cdf06a622ac0662509f433f5d53cf848824
5
5
  SHA512:
6
- metadata.gz: fb004ece1ebfc46f34c30966126512df5871055a18da5b9612bccc3e781a29d44294de8fc00bdaef4faee23898467467eb84f17a8e2484ddb4812aa404e25336
7
- data.tar.gz: db4a2ce06aa5fff612aeac6eedd14c6e86cccf354ac522a6a9e8477ca94067eb5c8cf448a53b5befb7f4ffd7ce0dcac457a9b3528d3f371a3865ada01541e209
6
+ metadata.gz: 8fcaa04eb2f22748b66a3755d3d1d739f77aa0a5c7e37dbaff2d5d67810c740c8b4f73b09565fe60b054ed4d25d12d8e7b75406c435ff73002b0b456c76e0f3f
7
+ data.tar.gz: 3430e40a0395c0ee22b67e5ae1fe9180c062eebe37a08bd6a2628f3c110e45d10cf1cf46225fd4a418653d787ea38e0069801fe76ce7a5c1d0171f0bce727763
@@ -0,0 +1,20 @@
1
+ module Manufacturable
2
+ class Dispatcher
3
+ attr_reader :message, :receiver
4
+
5
+ def initialize(message:, receiver:)
6
+ @message = message
7
+ @receiver = receiver
8
+ end
9
+
10
+ def method_missing(name, *args, **kwargs)
11
+ return super unless respond_to?(name)
12
+
13
+ Manufacturable.build_one(receiver, name, *args, **kwargs).public_send(message)
14
+ end
15
+
16
+ def respond_to_missing?(name, include_private = false)
17
+ Manufacturable.builds?(receiver, name) || super
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module Manufacturable
2
- VERSION = "2.1.0"
2
+ VERSION = "2.2.0"
3
3
  end
@@ -5,6 +5,7 @@ require 'manufacturable/item'
5
5
  require 'manufacturable/object_factory'
6
6
  require 'manufacturable/railtie'
7
7
  require 'manufacturable/simple_registrar'
8
+ require 'manufacturable/dispatcher'
8
9
 
9
10
  module Manufacturable
10
11
  def self.build(*args, **kwargs, &block)
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.license = "MIT"
13
13
  spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
14
14
 
15
- spec.metadata = {
15
+ spec.metadata = {
16
16
  "bug_tracker_uri" => "https://github.com/first-try-software/manufacturable/issues",
17
17
  "homepage_uri" => spec.homepage,
18
18
  "source_code_uri" => "https://github.com/first-try-software/manufacturable"
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: 2.1.0
4
+ version: 2.2.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: 2022-04-13 00:00:00.000000000 Z
12
+ date: 2022-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -106,6 +106,7 @@ files:
106
106
  - lib/manufacturable.rb
107
107
  - lib/manufacturable/builder.rb
108
108
  - lib/manufacturable/config.rb
109
+ - lib/manufacturable/dispatcher.rb
109
110
  - lib/manufacturable/factory.rb
110
111
  - lib/manufacturable/injector.rb
111
112
  - lib/manufacturable/item.rb