hanami-controller 0.0.0 → 0.6.0
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 +155 -0
- data/LICENSE.md +22 -0
- data/README.md +1180 -9
- data/hanami-controller.gemspec +19 -12
- data/lib/hanami-controller.rb +1 -0
- data/lib/hanami/action.rb +85 -0
- data/lib/hanami/action/cache.rb +174 -0
- data/lib/hanami/action/cache/cache_control.rb +70 -0
- data/lib/hanami/action/cache/conditional_get.rb +93 -0
- data/lib/hanami/action/cache/directives.rb +99 -0
- data/lib/hanami/action/cache/expires.rb +73 -0
- data/lib/hanami/action/callable.rb +94 -0
- data/lib/hanami/action/callbacks.rb +210 -0
- data/lib/hanami/action/configurable.rb +49 -0
- data/lib/hanami/action/cookie_jar.rb +181 -0
- data/lib/hanami/action/cookies.rb +85 -0
- data/lib/hanami/action/exposable.rb +115 -0
- data/lib/hanami/action/flash.rb +182 -0
- data/lib/hanami/action/glue.rb +66 -0
- data/lib/hanami/action/head.rb +122 -0
- data/lib/hanami/action/mime.rb +493 -0
- data/lib/hanami/action/params.rb +285 -0
- data/lib/hanami/action/rack.rb +270 -0
- data/lib/hanami/action/rack/callable.rb +47 -0
- data/lib/hanami/action/rack/file.rb +33 -0
- data/lib/hanami/action/redirect.rb +59 -0
- data/lib/hanami/action/request.rb +86 -0
- data/lib/hanami/action/session.rb +154 -0
- data/lib/hanami/action/throwable.rb +194 -0
- data/lib/hanami/action/validatable.rb +128 -0
- data/lib/hanami/controller.rb +250 -2
- data/lib/hanami/controller/configuration.rb +705 -0
- data/lib/hanami/controller/error.rb +7 -0
- data/lib/hanami/controller/version.rb +4 -1
- data/lib/hanami/http/status.rb +62 -0
- metadata +124 -16
- data/.gitignore +0 -9
- data/Gemfile +0 -4
- data/Rakefile +0 -2
- data/bin/console +0 -14
- data/bin/setup +0 -8
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'rack/utils'
|
2
|
+
|
3
|
+
module Hanami
|
4
|
+
module Http
|
5
|
+
# An HTTP status
|
6
|
+
#
|
7
|
+
# @since 0.1.0
|
8
|
+
# @api private
|
9
|
+
class Status
|
10
|
+
# A set of standard codes and messages for HTTP statuses
|
11
|
+
#
|
12
|
+
# @since 0.1.0
|
13
|
+
# @api private
|
14
|
+
ALL = ::Rack::Utils::HTTP_STATUS_CODES.dup.merge({
|
15
|
+
103 => 'Checkpoint',
|
16
|
+
122 => 'Request-URI too long',
|
17
|
+
413 => 'Payload Too Large', # Rack 1.5 compat
|
18
|
+
414 => 'URI Too Long', # Rack 1.5 compat
|
19
|
+
416 => 'Range Not Satisfiable', # Rack 1.5 compat
|
20
|
+
418 => 'I\'m a teapot',
|
21
|
+
420 => 'Enhance Your Calm',
|
22
|
+
444 => 'No Response',
|
23
|
+
449 => 'Retry With',
|
24
|
+
450 => 'Blocked by Windows Parental Controls',
|
25
|
+
451 => 'Wrong Exchange server',
|
26
|
+
499 => 'Client Closed Request',
|
27
|
+
506 => 'Variant Also Negotiates', # Rack 1.5 compat
|
28
|
+
598 => 'Network read timeout error',
|
29
|
+
599 => 'Network connect timeout error'
|
30
|
+
}).freeze
|
31
|
+
|
32
|
+
# Return a status for the given code
|
33
|
+
#
|
34
|
+
# @param code [Fixnum] a valid HTTP code
|
35
|
+
#
|
36
|
+
# @return [Array] a pair of code and message for an HTTP status
|
37
|
+
#
|
38
|
+
# @since 0.1.0
|
39
|
+
# @api private
|
40
|
+
#
|
41
|
+
# @example
|
42
|
+
# require 'hanami/http/status'
|
43
|
+
#
|
44
|
+
# Hanami::Http::Status.for_code(418) # => [418, "I'm a teapot"]
|
45
|
+
def self.for_code(code)
|
46
|
+
ALL.assoc(code)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Return a message for the given status code
|
50
|
+
#
|
51
|
+
# @param code [Fixnum] a valid HTTP code
|
52
|
+
#
|
53
|
+
# @return [String] a message for the given status code
|
54
|
+
#
|
55
|
+
# @since 0.3.2
|
56
|
+
# @api private
|
57
|
+
def self.message_for(code)
|
58
|
+
for_code(code)[1]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,61 +1,168 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami-controller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
|
+
- Trung Lê
|
9
|
+
- Alfonso Uceda
|
8
10
|
autorequire:
|
9
|
-
bindir:
|
11
|
+
bindir: bin
|
10
12
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
13
|
+
date: 2016-01-22 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rack
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.6'
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 1.6.2
|
25
|
+
type: :runtime
|
26
|
+
prerelease: false
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
requirements:
|
29
|
+
- - "~>"
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '1.6'
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.6.2
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: hanami-utils
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0.7'
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.7'
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: hanami-validations
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.5'
|
56
|
+
type: :runtime
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.5'
|
13
63
|
- !ruby/object:Gem::Dependency
|
14
64
|
name: bundler
|
15
65
|
requirement: !ruby/object:Gem::Requirement
|
16
66
|
requirements:
|
17
67
|
- - "~>"
|
18
68
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
69
|
+
version: '1.6'
|
20
70
|
type: :development
|
21
71
|
prerelease: false
|
22
72
|
version_requirements: !ruby/object:Gem::Requirement
|
23
73
|
requirements:
|
24
74
|
- - "~>"
|
25
75
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
76
|
+
version: '1.6'
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: minitest
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '5'
|
84
|
+
type: :development
|
85
|
+
prerelease: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '5'
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rack-test
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0.6'
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0.6'
|
27
105
|
- !ruby/object:Gem::Dependency
|
28
106
|
name: rake
|
29
107
|
requirement: !ruby/object:Gem::Requirement
|
30
108
|
requirements:
|
31
109
|
- - "~>"
|
32
110
|
- !ruby/object:Gem::Version
|
33
|
-
version: '10
|
111
|
+
version: '10'
|
34
112
|
type: :development
|
35
113
|
prerelease: false
|
36
114
|
version_requirements: !ruby/object:Gem::Requirement
|
37
115
|
requirements:
|
38
116
|
- - "~>"
|
39
117
|
- !ruby/object:Gem::Version
|
40
|
-
version: '10
|
41
|
-
description:
|
118
|
+
version: '10'
|
119
|
+
description: Complete, fast and testable actions for Rack
|
42
120
|
email:
|
43
121
|
- me@lucaguidi.com
|
122
|
+
- trung.le@ruby-journal.com
|
123
|
+
- uceda73@gmail.com
|
44
124
|
executables: []
|
45
125
|
extensions: []
|
46
126
|
extra_rdoc_files: []
|
47
127
|
files:
|
48
|
-
-
|
49
|
-
-
|
128
|
+
- CHANGELOG.md
|
129
|
+
- LICENSE.md
|
50
130
|
- README.md
|
51
|
-
- Rakefile
|
52
|
-
- bin/console
|
53
|
-
- bin/setup
|
54
131
|
- hanami-controller.gemspec
|
132
|
+
- lib/hanami-controller.rb
|
133
|
+
- lib/hanami/action.rb
|
134
|
+
- lib/hanami/action/cache.rb
|
135
|
+
- lib/hanami/action/cache/cache_control.rb
|
136
|
+
- lib/hanami/action/cache/conditional_get.rb
|
137
|
+
- lib/hanami/action/cache/directives.rb
|
138
|
+
- lib/hanami/action/cache/expires.rb
|
139
|
+
- lib/hanami/action/callable.rb
|
140
|
+
- lib/hanami/action/callbacks.rb
|
141
|
+
- lib/hanami/action/configurable.rb
|
142
|
+
- lib/hanami/action/cookie_jar.rb
|
143
|
+
- lib/hanami/action/cookies.rb
|
144
|
+
- lib/hanami/action/exposable.rb
|
145
|
+
- lib/hanami/action/flash.rb
|
146
|
+
- lib/hanami/action/glue.rb
|
147
|
+
- lib/hanami/action/head.rb
|
148
|
+
- lib/hanami/action/mime.rb
|
149
|
+
- lib/hanami/action/params.rb
|
150
|
+
- lib/hanami/action/rack.rb
|
151
|
+
- lib/hanami/action/rack/callable.rb
|
152
|
+
- lib/hanami/action/rack/file.rb
|
153
|
+
- lib/hanami/action/redirect.rb
|
154
|
+
- lib/hanami/action/request.rb
|
155
|
+
- lib/hanami/action/session.rb
|
156
|
+
- lib/hanami/action/throwable.rb
|
157
|
+
- lib/hanami/action/validatable.rb
|
55
158
|
- lib/hanami/controller.rb
|
159
|
+
- lib/hanami/controller/configuration.rb
|
160
|
+
- lib/hanami/controller/error.rb
|
56
161
|
- lib/hanami/controller/version.rb
|
162
|
+
- lib/hanami/http/status.rb
|
57
163
|
homepage: http://hanamirb.org
|
58
|
-
licenses:
|
164
|
+
licenses:
|
165
|
+
- MIT
|
59
166
|
metadata: {}
|
60
167
|
post_install_message:
|
61
168
|
rdoc_options: []
|
@@ -65,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
65
172
|
requirements:
|
66
173
|
- - ">="
|
67
174
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
175
|
+
version: 2.0.0
|
69
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
177
|
requirements:
|
71
178
|
- - ">="
|
@@ -76,5 +183,6 @@ rubyforge_project:
|
|
76
183
|
rubygems_version: 2.5.1
|
77
184
|
signing_key:
|
78
185
|
specification_version: 4
|
79
|
-
summary:
|
186
|
+
summary: Complete, fast and testable actions for Rack and Hanami
|
80
187
|
test_files: []
|
188
|
+
has_rdoc:
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "hanami/controller"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start
|