hanami-controller 1.3.2 → 2.0.0.alpha3

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +83 -0
  3. data/LICENSE.md +1 -1
  4. data/README.md +299 -537
  5. data/hanami-controller.gemspec +5 -4
  6. data/lib/hanami/action/application_action.rb +112 -0
  7. data/lib/hanami/action/application_configuration/cookies.rb +29 -0
  8. data/lib/hanami/action/application_configuration/sessions.rb +46 -0
  9. data/lib/hanami/action/application_configuration.rb +92 -0
  10. data/lib/hanami/action/base_params.rb +2 -2
  11. data/lib/hanami/action/cache/cache_control.rb +4 -4
  12. data/lib/hanami/action/cache/conditional_get.rb +3 -1
  13. data/lib/hanami/action/cache/directives.rb +1 -1
  14. data/lib/hanami/action/cache/expires.rb +3 -3
  15. data/lib/hanami/action/cache.rb +1 -139
  16. data/lib/hanami/action/configuration.rb +428 -0
  17. data/lib/hanami/action/cookie_jar.rb +3 -3
  18. data/lib/hanami/action/cookies.rb +3 -62
  19. data/lib/hanami/action/csrf_protection.rb +214 -0
  20. data/lib/hanami/action/flash.rb +102 -207
  21. data/lib/hanami/action/glue.rb +5 -31
  22. data/lib/hanami/action/halt.rb +12 -0
  23. data/lib/hanami/action/mime.rb +78 -485
  24. data/lib/hanami/action/params.rb +2 -2
  25. data/lib/hanami/action/rack/file.rb +1 -1
  26. data/lib/hanami/action/request.rb +30 -20
  27. data/lib/hanami/action/response.rb +193 -0
  28. data/lib/hanami/action/session.rb +11 -128
  29. data/lib/hanami/action/standalone_action.rb +579 -0
  30. data/lib/hanami/action/validatable.rb +1 -1
  31. data/lib/hanami/action/view_name_inferrer.rb +46 -0
  32. data/lib/hanami/action.rb +129 -73
  33. data/lib/hanami/controller/version.rb +1 -1
  34. data/lib/hanami/controller.rb +0 -227
  35. data/lib/hanami/http/status.rb +2 -2
  36. metadata +45 -27
  37. data/lib/hanami/action/callable.rb +0 -92
  38. data/lib/hanami/action/callbacks.rb +0 -214
  39. data/lib/hanami/action/configurable.rb +0 -50
  40. data/lib/hanami/action/exposable/guard.rb +0 -104
  41. data/lib/hanami/action/exposable.rb +0 -126
  42. data/lib/hanami/action/head.rb +0 -121
  43. data/lib/hanami/action/rack/callable.rb +0 -47
  44. data/lib/hanami/action/rack.rb +0 -399
  45. data/lib/hanami/action/redirect.rb +0 -59
  46. data/lib/hanami/action/throwable.rb +0 -196
  47. data/lib/hanami/controller/configuration.rb +0 -763
  48. data/lib/hanami-controller.rb +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 546fec0f371e76fa6e8f494ed3b66fb75cc7250226ffdcdbe6e7c52cce953204
4
- data.tar.gz: 82f4c7eca712806b6960f72eef8f62703008f45df342f6ad0ca83dffe232fe4b
3
+ metadata.gz: 015e9bf69c01ea01cbdd9a27e7bf4d4cb4f8f9a98f01a14d707fd68457096006
4
+ data.tar.gz: 0f2c2e2569453264b41e131451caae329cfbd7d6773d50f610355f5f6fd0b62b
5
5
  SHA512:
6
- metadata.gz: c36ec8f8f6b8ffca2ecafe33e4ed5b748578e0469368b2af6ba6b833cc334892d3b73bf555d8afc3c8c63d956a24a1b6ab13133f528f73aee855a084fb4b58af
7
- data.tar.gz: ac75c0c499f36ad8d44f334028f6081843ad829b486e6e5787521167d1b5b48e5f9e2723b00641baea769619e8a9844ef4f5231251cbc7db023b1b39ecf84094
6
+ metadata.gz: 7eb2b778608f9dd27cbf777dd00b98e079bc1ec790da5e388113d645babbc9972d10272c083e187dfafa875fe0e2387592f34fc4d48b0ff96be920d1d82c12b8
7
+ data.tar.gz: e1290141bb9128031b0593b1edcf2975fe5f01eadb4661fe0bf18c164f339671bf195b43f8933731cab13180b68a7141a4ce6caa01e1df9aabe3e5afb9e0c9a7
data/CHANGELOG.md CHANGED
@@ -1,6 +1,89 @@
1
1
  # Hanami::Controller
2
2
  Complete, fast and testable actions for Rack
3
3
 
4
+ ## v2.0.0.alpha3 - 2021-11-09
5
+ ### Added
6
+ - [Luca Guidi] Automatically include session behavior in `Hanami::Action` when sessions are enabled via Hanami application config
7
+ - [Sean Collins] Pass exposures from action to view
8
+
9
+ ### Changed
10
+ - [Tim Riley] (Internal) Updated settings to use updated `setting` API in dry-configurable 0.13.0
11
+ - [Sean Collins] Move automatic view rendering from `handle` to `finish`
12
+
13
+ ## v2.0.0.alpha2 - 2021-05-04
14
+ ### Added
15
+ - [Luca Guidi] Official support for Ruby: MRI 3.0
16
+ - [Tim Riley] Introduced `Hanami::Action::ApplicationAction`
17
+ - [Tim Riley] Introduced `Hanami::Action::Configuration`
18
+ - [Tim Riley] Introduced `Hanami::Action::ApplicationConfiguration`
19
+ - [Tim Riley] Auto-inject a paired view into any `Hanami::Action::ApplicationAction` instance
20
+ - [Tim Riley] Auto-render `Hanami::Action::ApplicationAction` subclasses that don't implement `#handle`
21
+ - [Tim Riley] Enable CSRF protection automatically when HTTP sessions are enabled
22
+
23
+ ### Fixed
24
+ - [Luca Guidi] Ensure `Hanami::Action::Response#renderable?` to return `false` when body is set
25
+ - [Andrew Croome] Ensure `Hanami::Action.accept` to use Rack `CONTENT_TYPE` for the _before callback_ check
26
+
27
+ ### Changed
28
+ - [Luca Guidi] Drop support for Ruby: MRI 2.5.
29
+ - [Tim Riley] Removed `Hanami::Action.handle_exception` in favor of `Hanami::Action.config.handle_exception`
30
+ - [Tim Riley] Rewritten `Hanami::Action::Flash`, based on Roda's `FlashHash`
31
+
32
+ ## v2.0.0.alpha1 - 2019-01-30
33
+ ### Added
34
+ - [Luca Guidi] `Hanami::Action::Request#session` to access the HTTP session as it was originally sent
35
+ - [Luca Guidi] `Hanami::Action::Request#cookies` to access the HTTP cookies as they were originally sent
36
+ - [Luca Guidi & Tim Riley] Allow to build a deep inheritance chain for actions
37
+
38
+ ### Changed
39
+ - [Luca Guidi] Drop support for Ruby: MRI 2.3, and 2.4.
40
+ - [Luca Guidi] `Hanami::Action` is a superclass
41
+ - [Luca Guidi] `Hanami::Action#initialize` requires a `configuration:` keyword argument
42
+ - [Luca Guidi] `Hanami::Action#initialize` returns a frozen action instance
43
+ - [Tim Riley] `Hanami::Action` subclasses must implement `#handle` instead of `#call`
44
+ - [Luca Guidi] `Hanami::Action#handle` accepts `Hanami::Action::Request` and `Hanami::Action::Response`
45
+ - [Luca Guidi] `Hanami::Action#handle` returns `Hanami::Action::Response`
46
+ - [Luca Guidi] Removed `Hanami::Controller.configure`, `.configuration`, `.duplicate`, and `.load!`
47
+ - [Luca Guidi] Removed `Hanami::Action.use` to mount Rack middleware at the action level
48
+ - [Luca Guidi] `Hanami::Controller::Configuration` changed syntax from DSL style to setters (eg. `Hanami::Controller::Configuration.new { |c| c.default_request_format = :html }`)
49
+ - [Luca Guidi] `Hanami::Controller::Configuration#initialize` returns a frozen configuration instance
50
+ - [Luca Guidi] Removed `Hanami::Controller::Configuration#prepare`
51
+ - [Luca Guidi] Removed `Hanami::Action.configuration`
52
+ - [Luca Guidi] Removed `Hanami::Action.configuration.handle_exceptions`
53
+ - [Luca Guidi] Removed `Hanami::Action.configuration.default_request_format` in favor of `#default_request_format`
54
+ - [Luca Guidi] Removed `Hanami::Action.configuration.default_charset` in favor of `#default_charset`
55
+ - [Luca Guidi] Removed `Hanami::Action.configuration.format` to register a MIME Type for a single action. Please use the configuration.
56
+ - [Luca Guidi] Removed `Hanami::Action.expose` in favor of `Hanami::Action::Response#[]=` and `#[]`
57
+ - [Luca Guidi] Removed `Hanami::Action#status=` in favor of `Hanami::Action::Response#status=`
58
+ - [Luca Guidi] Removed `Hanami::Action#body=` in favor of `Hanami::Action::Response#body=`
59
+ - [Luca Guidi] Removed `Hanami::Action#headers` in favor of `Hanami::Action::Response#headers`
60
+ - [Luca Guidi] Removed `Hanami::Action#accept?` in favor of `Hanami::Action::Request#accept?`
61
+ - [Luca Guidi] Removed `Hanami::Action#format` in favor of `Hanami::Action::Response#format`
62
+ - [Luca Guidi] Introduced `Hanami::Action#format` as factory to assign response format: `res.format = format(:json)` or `res.format = format("application/json")`
63
+ - [Luca Guidi] Removed `Hanami::Action#format=` in favor of `Hanami::Action::Response#format=`
64
+ - [Gustavo Caso] `Hanami::Action.accept` now looks at request `Content-Type` header to accept/deny a request
65
+ - [Luca Guidi] Removed `Hanami::Action#request_id` in favor of `Hanami::Action::Request#id`
66
+ - [Gustavo Caso] Removed `Hanami::Action#parsed_request_body` in favor of `Hanami::Action::Request#parsed_body`
67
+ - [Luca Guidi] Removed `Hanami::Action#head?` in favor of `Hanami::Action::Request#head?`
68
+ - [Luca Guidi] Removed `Hanami::Action#status` in favor of `Hanami::Action::Response#status=` and `#body=`
69
+ - [Luca Guidi] Removed `Hanami::Action#session` in favor of `Hanami::Action::Response#session`
70
+ - [Luca Guidi] Removed `Hanami::Action#cookies` in favor of `Hanami::Action::Response#cookies`
71
+ - [Luca Guidi] Removed `Hanami::Action#flash` in favor of `Hanami::Action::Response#flash`
72
+ - [Luca Guidi] Removed `Hanami::Action#redirect_to` in favor of `Hanami::Action::Response#redirect_to`
73
+ - [Luca Guidi] Removed `Hanami::Action#cache_control`, `#expires`, and `#fresh` in favor of `Hanami::Action::Response#cache_control`, `#expires`, and `#fresh`, respectively
74
+ - [Luca Guidi] Removed `Hanami::Action#send_file` and `#unsafe_send_file` in favor of `Hanami::Action::Response#send_file` and `#unsafe_send_file`, respectively
75
+ - [Luca Guidi] Removed `Hanami::Action#errors`
76
+ - [Gustavo Caso] Removed body cleanup for `HEAD` requests
77
+ - [Luca Guidi] `Hanami::Action` callback hooks now accept `Hanami::Action::Request` and `Hanami::Action::Response` arguments
78
+ - [Luca Guidi] When an exception is raised, it won't be caught, unless it's handled
79
+ - [Luca Guidi] `Hanami::Action` exception handlers now accept `Hanami::Action::Request`, `Hanami::Action::Response`, and exception arguments
80
+
81
+ ## v1.3.3 - 2020-01-14
82
+ ### Added
83
+ - [Luca Guidi] Official support for Ruby: MRI 2.7
84
+ - [Luca Guidi] Support `rack` 2.1
85
+ - [Luca Guidi] Support for both `hanami-validations` 1 and 2
86
+
4
87
  ## v1.3.2 - 2019-06-28
5
88
  ### Fixed
6
89
  - [Ian Ker-Seymer] Ensure `Etag` to work when `If-Modified-Since` is sent from browser and upstream proxy sets `Last-Modified` automatically.
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright © 2014-2017 Luca Guidi
1
+ Copyright © 2014-2021 Luca Guidi
2
2
 
3
3
  MIT License
4
4