hanami 2.0.0.alpha4 → 2.0.0.alpha7

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.
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
- raise "Hanami.application not configured" unless defined?(@_application)
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
- raise "Hanami.application already configured" if defined?(@_application)
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.app
35
- @_mutex.synchronize do
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.init
63
- application.init
58
+ def self.prepare
59
+ application.prepare
64
60
  end
65
61
 
66
- def self.boot(web: true)
67
- if defined?(@_app)
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.alpha4
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: 2021-12-07 00:00:00.000000000 Z
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.19'
107
+ version: '0.23'
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 0.21.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.19'
117
+ version: '0.23'
118
118
  - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 0.21.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/autoloader/inflector_adapter.rb
221
- - lib/hanami/application/container/boot/inflector.rb
222
- - lib/hanami/application/container/boot/logger.rb
223
- - lib/hanami/application/container/boot/rack_logger.rb
224
- - lib/hanami/application/container/boot/rack_monitor.rb
225
- - lib/hanami/application/container/boot/routes_helper.rb
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/init.rb
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: 2.6.0
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.2.29
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