navigable 1.0.2 → 1.1.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/.gitignore +1 -0
- data/README.md +19 -6
- data/lib/navigable/command.rb +1 -1
- data/lib/navigable/dispatcher.rb +2 -2
- data/lib/navigable/observer.rb +1 -1
- data/lib/navigable/version.rb +1 -1
- data/navigable.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9a68f7f5e2ac4de908f84bdf0ead1bcddf8b07117a05cdf21ce228aad4609fb
|
4
|
+
data.tar.gz: 1031b1dcc22fc53c37d9c2dde8049941e4aca4a9b975d4646242c8bc50dbc880
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 718b7b78861540d93c40df11f422a62fe11fd5c55dc1e007df7c556d4a1105201b177f7b804e775c6f5e0d4e58429b96ac35881b8016cc2aa79cc062c43f5d5e
|
7
|
+
data.tar.gz: 9fe59b3b53a9dcf2653ccd34b1ae15449ebb0af35e6ae12eef9c1637f9e197f7df5a3bbe4f5f3118a185cd79eaf18871ef5d577a296d5979166b13c8d3b5c0b7
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -11,17 +11,26 @@ Navigable is a family of gems that together provide all the tools you need to bu
|
|
11
11
|
<td width="130"><img alt="Clipper Ship" src="https://raw.githubusercontent.com/first-try-software/navigable/main/assets/clipper.png"></td>
|
12
12
|
<td>
|
13
13
|
|
14
|
-
**Navigable**<br>
|
14
|
+
**[Navigable][navigable]**<br>
|
15
15
|
A stand-alone tool for isolating business logic from external interfaces and cross-cutting concerns. Navigable composes self-configured command and observer objects to allow you to extend your business logic without modifying it. Navigable is compatible with any Ruby-based application development framework, including Rails, Hanami, and Sinatra.
|
16
16
|
|
17
|
+
</td>
|
18
|
+
</tr>
|
19
|
+
<tr height="140">
|
20
|
+
<td width="130"><img alt="Compass" src="https://raw.githubusercontent.com/first-try-software/navigable/main/assets/sextant.png"></td>
|
21
|
+
<td>
|
22
|
+
|
23
|
+
**[Navigable Router][router]** *(coming soon)*<br>
|
24
|
+
A simple, highly-performant, Rack-based router.
|
25
|
+
|
17
26
|
</td>
|
18
27
|
</tr>
|
19
28
|
<tr height="140">
|
20
29
|
<td width="130"><img alt="Compass" src="https://raw.githubusercontent.com/first-try-software/navigable/main/assets/compass.png"></td>
|
21
30
|
<td>
|
22
31
|
|
23
|
-
**Navigable Server** *(coming soon)*<br>
|
24
|
-
A Rack-based
|
32
|
+
**[Navigable Server][server]** *(coming soon)*<br>
|
33
|
+
A Rack-based server for building Ruby and Navigable web applications.
|
25
34
|
|
26
35
|
</td>
|
27
36
|
</tr>
|
@@ -49,8 +58,6 @@ An extension of Navigable Server for building GraphQL APIs.
|
|
49
58
|
|
50
59
|
<img style="width: 600px; display: block; margin: 0 auto;" alt="Lighthouse" src="https://raw.githubusercontent.com/first-try-software/navigable/main/assets/lighthouse.png">
|
51
60
|
|
52
|
-
<br>
|
53
|
-
|
54
61
|
# The Navigable Charter
|
55
62
|
|
56
63
|
We hold these truths to be self-evident, that not all objects are created equal, that poorly structured code leads to poorly tested code, and that poorly tested code leads to rigid software and fearful engineers.
|
@@ -164,11 +171,13 @@ Here are a few things to look for in the code above:
|
|
164
171
|
|
165
172
|
* Use the `observes_all_commands` statement (as shown in the `Monitor` class) for cross-cutting concerns. It tells Navigable to send messages to the observer no matter which command was executed.
|
166
173
|
|
174
|
+
For a deeper look at the core concepts introduced by Navigable, please have a look at our [wiki][wiki].
|
175
|
+
|
167
176
|
## Feedback
|
168
177
|
|
169
178
|
We are really excited about Navigable! We think it solves the problem of seperating business logic from the web interface, persistence layer, and even cross-cutting concerns in an elegant and simple way.
|
170
179
|
|
171
|
-
We
|
180
|
+
We're thrilled you're checking out Navigable! If you have any questions or comments, please feel free to reach out to [navigable@firsttry.software][mail].
|
172
181
|
|
173
182
|
## Installation
|
174
183
|
|
@@ -210,3 +219,7 @@ Everyone interacting in the Navigable project's codebases, issue trackers, chat
|
|
210
219
|
[ocp]: https://en.wikipedia.org/wiki/Open–closed_principle
|
211
220
|
[ddd]: https://en.wikipedia.org/wiki/Domain-driven_design
|
212
221
|
[mail]: mailto:navigable@firsttry.software
|
222
|
+
[wiki]: https://github.com/first-try-software/navigable/wiki
|
223
|
+
[navigable]: https://github.com/first-try-software/navigable
|
224
|
+
[router]: https://github.com/first-try-software/navigable-router
|
225
|
+
[server]: https://github.com/first-try-software/navigable-server
|
data/lib/navigable/command.rb
CHANGED
data/lib/navigable/dispatcher.rb
CHANGED
@@ -25,11 +25,11 @@ module Navigable
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def observers
|
28
|
-
Manufacturable.build_all(Observer::TYPE, key
|
28
|
+
Manufacturable.build_all(Observer::TYPE, key) { |observer| observer.inject(params: params) }.push(resolver)
|
29
29
|
end
|
30
30
|
|
31
31
|
def command
|
32
|
-
Manufacturable.build_one(Command::TYPE, key
|
32
|
+
Manufacturable.build_one(Command::TYPE, key) { |command| command.inject(params: params, observers: observers) }
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
data/lib/navigable/observer.rb
CHANGED
data/lib/navigable/version.rb
CHANGED
data/navigable.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ["lib"]
|
26
26
|
|
27
|
-
spec.add_dependency "manufacturable", "~> 1.
|
27
|
+
spec.add_dependency "manufacturable", "~> 1.5"
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 2.0"
|
30
30
|
spec.add_development_dependency "rake", "~> 12.0"
|
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.0
|
4
|
+
version: 1.1.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-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: manufacturable
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '1.
|
20
|
+
version: '1.5'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '1.
|
27
|
+
version: '1.5'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: bundler
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|