navigable 1.2.0 → 1.3.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: 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