hanami-controller 0.8.0 → 0.8.1
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/CHANGELOG.md +5 -0
- data/README.md +12 -12
- data/lib/hanami/action/session.rb +1 -1
- data/lib/hanami/controller/configuration.rb +19 -12
- data/lib/hanami/controller/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94316cf20a120464d9314f31c0ea0774d8256847
|
4
|
+
data.tar.gz: 0d468b04cc1ae458ee3d2cb1188adfae48e63402
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68a1d9c7ae87c693fa7a9ac85ae15b0736bdd1de6dc02f21a9ef320a08f6f1f9b0fc3e99b88a92186c7e1ebc5ebf48cb52b914a400f655c1699b12bdb8bbe61b
|
7
|
+
data.tar.gz: b49bfaff6ee7d1150f1f1e99ea335948300d519c8522b200dc0b914ddc7a0d3f7ee9c9778fdc79abfa267998987aa65216f9f2488e09db2b9c1321bb5fc2b69b
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# Hanami::Controller
|
2
2
|
Complete, fast and testable actions for Rack
|
3
3
|
|
4
|
+
## v0.8.1 - 2016-12-19
|
5
|
+
### Fixed
|
6
|
+
- [Thorbjørn Hermansen] Don't pollute Rack env's `rack.exception` key if an exception is handled
|
7
|
+
- [Luca Guidi] Add `flash` to the default exposures
|
8
|
+
|
4
9
|
## v0.8.0 - 2016-11-15
|
5
10
|
### Added
|
6
11
|
- [Marion Duprey] Allow `BaseParams#get` to read (nested) arrays
|
data/README.md
CHANGED
@@ -60,7 +60,7 @@ class Show
|
|
60
60
|
include Hanami::Action
|
61
61
|
|
62
62
|
def call(params)
|
63
|
-
@article = ArticleRepository.find
|
63
|
+
@article = ArticleRepository.new.find(params[:id])
|
64
64
|
end
|
65
65
|
end
|
66
66
|
```
|
@@ -82,16 +82,16 @@ Imagine how **fast** the unit test could be.
|
|
82
82
|
class Show
|
83
83
|
include Hanami::Action
|
84
84
|
|
85
|
-
def initialize(repository = ArticleRepository)
|
85
|
+
def initialize(repository = ArticleRepository.new)
|
86
86
|
@repository = repository
|
87
87
|
end
|
88
88
|
|
89
89
|
def call(params)
|
90
|
-
@article = @repository.find
|
90
|
+
@article = @repository.find(params[:id])
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
action = Show.new(MemoryArticleRepository)
|
94
|
+
action = Show.new(MemoryArticleRepository.new)
|
95
95
|
action.call({ id: 23 })
|
96
96
|
```
|
97
97
|
|
@@ -314,7 +314,7 @@ class Show
|
|
314
314
|
|
315
315
|
# `params` in the method signature is optional
|
316
316
|
def set_article(params)
|
317
|
-
@article = ArticleRepository.find
|
317
|
+
@article = ArticleRepository.new.find(params[:id])
|
318
318
|
end
|
319
319
|
end
|
320
320
|
```
|
@@ -326,7 +326,7 @@ class Show
|
|
326
326
|
include Hanami::Action
|
327
327
|
|
328
328
|
before { ... } # do some authentication stuff
|
329
|
-
before { |params| @article = ArticleRepository.find
|
329
|
+
before { |params| @article = ArticleRepository.new.find(params[:id]) }
|
330
330
|
|
331
331
|
def call(params)
|
332
332
|
end
|
@@ -358,7 +358,7 @@ class Show
|
|
358
358
|
handle_exception RecordNotFound => 404
|
359
359
|
|
360
360
|
def call(params)
|
361
|
-
@article = ArticleRepository.find
|
361
|
+
@article = ArticleRepository.new.find(params[:id])
|
362
362
|
end
|
363
363
|
end
|
364
364
|
|
@@ -399,7 +399,7 @@ class Show
|
|
399
399
|
include Hanami::Action
|
400
400
|
|
401
401
|
def call(params)
|
402
|
-
@article = ArticleRepository.find
|
402
|
+
@article = ArticleRepository.new.find(params[:id])
|
403
403
|
end
|
404
404
|
end
|
405
405
|
|
@@ -425,7 +425,7 @@ module Articles
|
|
425
425
|
end
|
426
426
|
|
427
427
|
def call(params)
|
428
|
-
@article = ArticleRepository.find
|
428
|
+
@article = ArticleRepository.new.find(params[:id])
|
429
429
|
end
|
430
430
|
end
|
431
431
|
end
|
@@ -510,7 +510,7 @@ class Show
|
|
510
510
|
include Hanami::Action
|
511
511
|
|
512
512
|
def call(params)
|
513
|
-
DroidRepository.find(params[:id]) or not_found
|
513
|
+
DroidRepository.new.find(params[:id]) or not_found
|
514
514
|
end
|
515
515
|
|
516
516
|
private
|
@@ -993,10 +993,10 @@ The following examples are valid constructors:
|
|
993
993
|
def initialize
|
994
994
|
end
|
995
995
|
|
996
|
-
def initialize(repository = ArticleRepository)
|
996
|
+
def initialize(repository = ArticleRepository.new)
|
997
997
|
end
|
998
998
|
|
999
|
-
def initialize(repository: ArticleRepository)
|
999
|
+
def initialize(repository: ArticleRepository.new)
|
1000
1000
|
end
|
1001
1001
|
|
1002
1002
|
def initialize(options = {})
|
@@ -192,16 +192,7 @@ module Hanami
|
|
192
192
|
#
|
193
193
|
# @see Hanami::Controller::Configuration#handle_exception
|
194
194
|
def exception_handler(exception)
|
195
|
-
|
196
|
-
|
197
|
-
@handled_exceptions.each do |exception_class, h|
|
198
|
-
if exception.kind_of?(exception_class)
|
199
|
-
handler = h
|
200
|
-
break
|
201
|
-
end
|
202
|
-
end
|
203
|
-
|
204
|
-
handler || DEFAULT_ERROR_CODE
|
195
|
+
exception_handler_for(exception) || DEFAULT_ERROR_CODE
|
205
196
|
end
|
206
197
|
|
207
198
|
# Check if the given exception is handled.
|
@@ -214,7 +205,23 @@ module Hanami
|
|
214
205
|
# @see Hanami::Controller::Configuration#handle_exception
|
215
206
|
def handled_exception?(exception)
|
216
207
|
handled_exceptions &&
|
217
|
-
|
208
|
+
!exception_handler_for(exception).nil?
|
209
|
+
end
|
210
|
+
|
211
|
+
# Finds configured handler for given exception, or nil if not found.
|
212
|
+
#
|
213
|
+
# @param exception [Exception] an exception
|
214
|
+
#
|
215
|
+
# @since x.x.x
|
216
|
+
# @api private
|
217
|
+
#
|
218
|
+
# @see Hanami::Controller::Configuration#handle_exception
|
219
|
+
def exception_handler_for(exception)
|
220
|
+
@handled_exceptions.each do |exception_class, handler|
|
221
|
+
return handler if exception.kind_of?(exception_class)
|
222
|
+
end
|
223
|
+
|
224
|
+
nil
|
218
225
|
end
|
219
226
|
|
220
227
|
# Specify which is the default action module to be included when we use
|
@@ -318,7 +325,7 @@ module Hanami
|
|
318
325
|
#
|
319
326
|
# Hanami::Controller.configure do
|
320
327
|
# prepare do
|
321
|
-
# include Hanami::Action::
|
328
|
+
# include Hanami::Action::Session
|
322
329
|
# include MyAuthentication
|
323
330
|
# use SomeMiddleWare
|
324
331
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-controller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-12-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -154,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
154
|
version: '0'
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.6.
|
157
|
+
rubygems_version: 2.6.8
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: Complete, fast and testable actions for Rack and Hanami
|