navigable 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|