hanami 2.0.0.alpha4 → 2.0.0.alpha7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +256 -0
- data/README.md +3 -7
- data/hanami.gemspec +5 -4
- data/lib/hanami/application/container/{boot → providers}/inflector.rb +1 -1
- data/lib/hanami/application/container/{boot → providers}/logger.rb +1 -1
- data/lib/hanami/application/container/providers/rack_logger.rb +15 -0
- data/lib/hanami/application/container/{boot → providers}/rack_monitor.rb +2 -2
- data/lib/hanami/application/container/{boot → providers}/routes_helper.rb +1 -1
- data/lib/hanami/application/container/{boot → providers}/settings.rb +1 -1
- data/lib/hanami/application/router.rb +7 -7
- data/lib/hanami/application/routing/router.rb +36 -0
- data/lib/hanami/application/slice_registrar.rb +107 -0
- data/lib/hanami/application.rb +124 -202
- data/lib/hanami/boot/source_dirs.rb +44 -0
- data/lib/hanami/cli/application/cli.rb +1 -1
- data/lib/hanami/configuration/actions.rb +90 -0
- data/lib/hanami/configuration/logger.rb +49 -5
- data/lib/hanami/configuration/source_dirs.rb +42 -0
- data/lib/hanami/configuration.rb +19 -24
- data/lib/hanami/constants.rb +23 -0
- data/lib/hanami/errors.rb +12 -0
- data/lib/hanami/{init.rb → prepare.rb} +1 -1
- data/lib/hanami/slice.rb +198 -112
- data/lib/hanami/version.rb +1 -1
- data/lib/hanami/web/rack_logger.rb +27 -51
- data/lib/hanami.rb +19 -29
- metadata +23 -16
- data/lib/hanami/application/autoloader/inflector_adapter.rb +0 -22
- data/lib/hanami/application/container/boot/rack_logger.rb +0 -19
data/lib/hanami.rb
CHANGED
@@ -1,19 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "hanami/application"
|
4
|
+
require_relative "hanami/errors"
|
5
|
+
require_relative "hanami/version"
|
6
|
+
|
7
|
+
|
3
8
|
# A complete web framework for Ruby
|
4
9
|
#
|
5
10
|
# @since 0.1.0
|
6
11
|
#
|
7
12
|
# @see http://hanamirb.org
|
8
13
|
module Hanami
|
9
|
-
require "hanami/version"
|
10
|
-
require "hanami/application"
|
11
|
-
|
12
14
|
@_mutex = Mutex.new
|
13
15
|
|
14
16
|
def self.application
|
15
17
|
@_mutex.synchronize do
|
16
|
-
|
18
|
+
unless defined?(@_application)
|
19
|
+
raise ApplicationLoadError,
|
20
|
+
"Hanami.application is not yet configured. " \
|
21
|
+
"You may need to `require \"hanami/setup\"` to load your config/application.rb file."
|
22
|
+
end
|
17
23
|
|
18
24
|
@_application
|
19
25
|
end
|
@@ -25,26 +31,16 @@ module Hanami
|
|
25
31
|
|
26
32
|
def self.application=(klass)
|
27
33
|
@_mutex.synchronize do
|
28
|
-
|
34
|
+
if defined?(@_application)
|
35
|
+
raise ApplicationLoadError, "Hanami.application is already configured."
|
36
|
+
end
|
29
37
|
|
30
38
|
@_application = klass unless klass.name.nil?
|
31
39
|
end
|
32
40
|
end
|
33
41
|
|
34
|
-
def self.
|
35
|
-
|
36
|
-
raise "Hanami.app not configured" unless defined?(@_app)
|
37
|
-
|
38
|
-
@_app
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.app=(app)
|
43
|
-
@_mutex.synchronize do
|
44
|
-
raise "Hanami.app already configured" if defined?(@_app)
|
45
|
-
|
46
|
-
@_app = app
|
47
|
-
end
|
42
|
+
def self.rack_app
|
43
|
+
application.rack_app
|
48
44
|
end
|
49
45
|
|
50
46
|
def self.env
|
@@ -59,18 +55,12 @@ module Hanami
|
|
59
55
|
application[:logger]
|
60
56
|
end
|
61
57
|
|
62
|
-
def self.
|
63
|
-
application.
|
58
|
+
def self.prepare
|
59
|
+
application.prepare
|
64
60
|
end
|
65
61
|
|
66
|
-
def self.boot
|
67
|
-
|
68
|
-
@_app
|
69
|
-
else
|
70
|
-
application.boot
|
71
|
-
|
72
|
-
@_app = application.new if web
|
73
|
-
end
|
62
|
+
def self.boot
|
63
|
+
application.boot
|
74
64
|
end
|
75
65
|
|
76
66
|
def self.shutdown
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanami
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.alpha7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -104,20 +104,20 @@ dependencies:
|
|
104
104
|
requirements:
|
105
105
|
- - "~>"
|
106
106
|
- !ruby/object:Gem::Version
|
107
|
-
version: '0.
|
107
|
+
version: '0.23'
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
110
|
+
version: 0.23.0
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '0.
|
117
|
+
version: '0.23'
|
118
118
|
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.
|
120
|
+
version: 0.23.0
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: hanami-cli
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,13 +217,12 @@ files:
|
|
217
217
|
- hanami.gemspec
|
218
218
|
- lib/hanami.rb
|
219
219
|
- lib/hanami/application.rb
|
220
|
-
- lib/hanami/application/
|
221
|
-
- lib/hanami/application/container/
|
222
|
-
- lib/hanami/application/container/
|
223
|
-
- lib/hanami/application/container/
|
224
|
-
- lib/hanami/application/container/
|
225
|
-
- lib/hanami/application/container/
|
226
|
-
- lib/hanami/application/container/boot/settings.rb
|
220
|
+
- lib/hanami/application/container/providers/inflector.rb
|
221
|
+
- lib/hanami/application/container/providers/logger.rb
|
222
|
+
- lib/hanami/application/container/providers/rack_logger.rb
|
223
|
+
- lib/hanami/application/container/providers/rack_monitor.rb
|
224
|
+
- lib/hanami/application/container/providers/routes_helper.rb
|
225
|
+
- lib/hanami/application/container/providers/settings.rb
|
227
226
|
- lib/hanami/application/router.rb
|
228
227
|
- lib/hanami/application/routes.rb
|
229
228
|
- lib/hanami/application/routes_helper.rb
|
@@ -231,11 +230,14 @@ files:
|
|
231
230
|
- lib/hanami/application/routing/resolver.rb
|
232
231
|
- lib/hanami/application/routing/resolver/node.rb
|
233
232
|
- lib/hanami/application/routing/resolver/trie.rb
|
233
|
+
- lib/hanami/application/routing/router.rb
|
234
234
|
- lib/hanami/application/settings.rb
|
235
235
|
- lib/hanami/application/settings/dotenv_store.rb
|
236
|
+
- lib/hanami/application/slice_registrar.rb
|
236
237
|
- lib/hanami/assets/application_configuration.rb
|
237
238
|
- lib/hanami/assets/configuration.rb
|
238
239
|
- lib/hanami/boot.rb
|
240
|
+
- lib/hanami/boot/source_dirs.rb
|
239
241
|
- lib/hanami/cli/application/cli.rb
|
240
242
|
- lib/hanami/cli/application/command.rb
|
241
243
|
- lib/hanami/cli/application/commands.rb
|
@@ -245,12 +247,16 @@ files:
|
|
245
247
|
- lib/hanami/cli/commands/command.rb
|
246
248
|
- lib/hanami/cli/commands/server.rb
|
247
249
|
- lib/hanami/configuration.rb
|
250
|
+
- lib/hanami/configuration/actions.rb
|
248
251
|
- lib/hanami/configuration/logger.rb
|
249
252
|
- lib/hanami/configuration/middleware.rb
|
250
253
|
- lib/hanami/configuration/null_configuration.rb
|
251
254
|
- lib/hanami/configuration/router.rb
|
252
255
|
- lib/hanami/configuration/sessions.rb
|
253
|
-
- lib/hanami/
|
256
|
+
- lib/hanami/configuration/source_dirs.rb
|
257
|
+
- lib/hanami/constants.rb
|
258
|
+
- lib/hanami/errors.rb
|
259
|
+
- lib/hanami/prepare.rb
|
254
260
|
- lib/hanami/server.rb
|
255
261
|
- lib/hanami/setup.rb
|
256
262
|
- lib/hanami/slice.rb
|
@@ -260,6 +266,7 @@ homepage: http://hanamirb.org
|
|
260
266
|
licenses:
|
261
267
|
- MIT
|
262
268
|
metadata:
|
269
|
+
rubygems_mfa_required: 'true'
|
263
270
|
allowed_push_host: https://rubygems.org
|
264
271
|
post_install_message:
|
265
272
|
rdoc_options: []
|
@@ -269,14 +276,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
269
276
|
requirements:
|
270
277
|
- - ">="
|
271
278
|
- !ruby/object:Gem::Version
|
272
|
-
version:
|
279
|
+
version: '3.0'
|
273
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
274
281
|
requirements:
|
275
282
|
- - ">"
|
276
283
|
- !ruby/object:Gem::Version
|
277
284
|
version: 1.3.1
|
278
285
|
requirements: []
|
279
|
-
rubygems_version: 3.
|
286
|
+
rubygems_version: 3.3.3
|
280
287
|
signing_key:
|
281
288
|
specification_version: 4
|
282
289
|
summary: The web, with simplicity
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module Hanami
|
2
|
-
class Application
|
3
|
-
module Autoloader
|
4
|
-
# Allows the Hanami standard inflector (from dry-inflector) to be used with Zeitwerk
|
5
|
-
class InflectorAdapter
|
6
|
-
def initialize(inflector)
|
7
|
-
@inflector = inflector
|
8
|
-
end
|
9
|
-
|
10
|
-
def camelize(basename, _abspath)
|
11
|
-
# Discard unused `_abspath` argument before calling our own inflector's
|
12
|
-
# `#camelize` (which takes only one argument)
|
13
|
-
inflector.camelize(basename)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
attr_reader :inflector
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
Hanami.application.register_bootable :rack_logger do |container|
|
4
|
-
start do
|
5
|
-
require "hanami/web/rack_logger"
|
6
|
-
|
7
|
-
use :logger
|
8
|
-
use :rack_monitor
|
9
|
-
|
10
|
-
rack_logger = Hanami::Web::RackLogger.new(
|
11
|
-
container[:logger],
|
12
|
-
filter_params: Hanami.application.configuration.logger.filter_params
|
13
|
-
)
|
14
|
-
|
15
|
-
rack_logger.attach container[:rack_monitor]
|
16
|
-
|
17
|
-
register :rack_logger, rack_logger
|
18
|
-
end
|
19
|
-
end
|