navigable 1.2.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 520f70790477a269841be1b936c03978f41335ea88c69150dbca17396fbe4e7c
4
- data.tar.gz: ee4181d29ac606c64f961fdcc627ca7e7ffda72871e78c3bac57fdc5bea72ac5
3
+ metadata.gz: 3a004a4e2480872ee2a0130049ad9ef937a051ce833e531ac7630e959619d810
4
+ data.tar.gz: e8da43504809998f63d4814e6e811210bed57e08da0fbeb129ed0cf6771d152b
5
5
  SHA512:
6
- metadata.gz: b1de4110a432e1f1a4f7736ca02f0c53db9f4ea73fb42f3964b3f706c37f361dbd8c03f754e66862f8dcbee75f99776a4915000c6d69c0153b068290404bf950
7
- data.tar.gz: b9ddbc9bd4a5ce9f4d67de84c74789ecf76c9040bce0f695bf3e1403f98308e7cbf28ce8d76bd573b4b167c67d670928d527b6743c572ea42fb138e51effffa8
6
+ metadata.gz: d59a86ed9f40d4d1def574099592f46b4434f78deb0aa1b6e89d41fd6cc13d8c89db2393885bff1449113741c9e566cecd6d30848962c2afd6da6f23dbf29abf
7
+ data.tar.gz: c159acdb8be562e419540b01cccf1efb9df1b8dfa37f9fd85b7e6ac7a455fb54dd080c29d062b96460fb8f393688d15061ac10466b68dd83f0e025309a34aec3
@@ -1,12 +1,12 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- require 'navigable/basic_resolver'
3
+ require 'navigable/null_resolver'
4
4
  require 'navigable/observer'
5
5
  require 'navigable/command'
6
6
 
7
7
  module Navigable
8
8
  class Dispatcher
9
- def self.dispatch(key, params: {}, resolver: BasicResolver.new)
9
+ def self.dispatch(key, params: {}, resolver: NullResolver.new)
10
10
  self.new(key, params: params, resolver: resolver).dispatch
11
11
  end
12
12
 
@@ -3,7 +3,7 @@
3
3
  require 'navigable/resolver'
4
4
 
5
5
  module Navigable
6
- class BasicResolver
6
+ class NullResolver
7
7
  extend Navigable::Resolver
8
8
 
9
9
  def resolve
@@ -4,10 +4,23 @@ require 'navigable/observer_interface'
4
4
 
5
5
  module Navigable
6
6
  module Resolver
7
- RESOLVE_NOT_IMPLEMENTED_MESSAGE = 'Class must implement `resolve` method.'
7
+ TYPE = :__resolver__
8
+ RESOLVE_NOT_IMPLEMENTED_MESSAGE = 'Resolver classes must implement a `resolve` method.'
8
9
 
9
10
  def self.extended(base)
11
+ base.extend(Manufacturable::Item)
10
12
  base.include(ObserverInterface)
13
+
14
+ base.instance_eval do
15
+ def default_resolver
16
+ default_manufacturable(TYPE)
17
+ end
18
+
19
+ def resolves(key)
20
+ corresponds_to(key, TYPE)
21
+ end
22
+ end
23
+
11
24
  base.class_eval do
12
25
  def resolve
13
26
  raise NotImplementedError.new(RESOLVE_NOT_IMPLEMENTED_MESSAGE)
@@ -1,5 +1,5 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  module Navigable
4
- VERSION = "1.2.0"
4
+ VERSION = "1.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: navigable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.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-25 00:00:00.000000000 Z
12
+ date: 2020-09-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: manufacturable
@@ -118,9 +118,9 @@ files:
118
118
  - bin/console
119
119
  - bin/setup
120
120
  - lib/navigable.rb
121
- - lib/navigable/basic_resolver.rb
122
121
  - lib/navigable/command.rb
123
122
  - lib/navigable/dispatcher.rb
123
+ - lib/navigable/null_resolver.rb
124
124
  - lib/navigable/observable.rb
125
125
  - lib/navigable/observer.rb
126
126
  - lib/navigable/observer_interface.rb