hanami-controller 1.3.2 → 2.0.0.alpha3

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