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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b96bb3ac3fd1a2e93eaaa1517c7bf890065f9ee803f4e20269bf96fcaea7f78f
4
- data.tar.gz: 3e08676aef87c9340af3b58e0b8124221e17a7ced004813dddd8f9377d9da9e0
3
+ metadata.gz: a9a68f7f5e2ac4de908f84bdf0ead1bcddf8b07117a05cdf21ce228aad4609fb
4
+ data.tar.gz: 1031b1dcc22fc53c37d9c2dde8049941e4aca4a9b975d4646242c8bc50dbc880
5
5
  SHA512:
6
- metadata.gz: 689df880596033ed27ef92716554f2534a12a43b5d6c54a100eb363d8b3a57eed6ed356d77fbbcfddcf2ffc6509c6e866b0d6365ba27b9ecd908216b4d6b9322
7
- data.tar.gz: 298e1239bfd0cf6e7050766173dfee8cbae94af0cf2994e2d4bb0b7a318f3303da09878c55c45dcffff1356a8a3d69072154bb9bd8d81b17219bae42090224f0
6
+ metadata.gz: 718b7b78861540d93c40df11f422a62fe11fd5c55dc1e007df7c556d4a1105201b177f7b804e775c6f5e0d4e58429b96ac35881b8016cc2aa79cc062c43f5d5e
7
+ data.tar.gz: 9fe59b3b53a9dcf2653ccd34b1ae15449ebb0af35e6ae12eef9c1637f9e197f7df5a3bbe4f5f3118a185cd79eaf18871ef5d577a296d5979166b13c8d3b5c0b7
data/.gitignore CHANGED
@@ -13,5 +13,6 @@
13
13
  # rspec failure tracking
14
14
  .rspec_status
15
15
 
16
+ .DS_Store
16
17
  Gemfile.lock
17
18
 
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 web server for building Navigable-backed applications.
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 sincerely hope you'll download Navigable and play with it! If you do, please send us a note to [navigable@firsttry.software][mail] to give us your thoughts!
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
@@ -20,7 +20,7 @@ module Navigable
20
20
  base.class_eval do
21
21
  attr_reader :params, :observers
22
22
 
23
- def initialize(params: {}, observers: [])
23
+ def inject(params: {}, observers: [])
24
24
  @params = params
25
25
  @observers = observers
26
26
  end
@@ -25,11 +25,11 @@ module Navigable
25
25
  end
26
26
 
27
27
  def observers
28
- Manufacturable.build_all(Observer::TYPE, key, params: params).push(resolver)
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, params: params, observers: observers)
32
+ Manufacturable.build_one(Command::TYPE, key) { |command| command.inject(params: params, observers: observers) }
33
33
  end
34
34
  end
35
35
  end
@@ -23,7 +23,7 @@ module Navigable
23
23
  base.class_eval do
24
24
  attr_reader :params
25
25
 
26
- def initialize(params: {})
26
+ def inject(params: {})
27
27
  @params = params
28
28
  end
29
29
 
@@ -1,5 +1,5 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  module Navigable
4
- VERSION = "1.0.2"
4
+ VERSION = "1.1.0"
5
5
  end
@@ -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.4"
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.2
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-17 00:00:00.000000000 Z
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.4'
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.4'
27
+ version: '1.5'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement