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.
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