hanami 0.9.2 → 1.0.0.beta1

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/FEATURES.md +5 -0
  4. data/hanami.gemspec +8 -8
  5. data/lib/hanami.rb +25 -1
  6. data/lib/hanami/app.rb +4 -0
  7. data/lib/hanami/application.rb +1 -14
  8. data/lib/hanami/application_configuration.rb +2 -37
  9. data/lib/hanami/cli_base.rb +15 -0
  10. data/lib/hanami/cli_sub_commands/destroy.rb +2 -2
  11. data/lib/hanami/cli_sub_commands/generate.rb +2 -1
  12. data/lib/hanami/commands/generate/abstract.rb +5 -0
  13. data/lib/hanami/commands/generate/mailer.rb +2 -2
  14. data/lib/hanami/commands/generate/model.rb +24 -8
  15. data/lib/hanami/commands/new/abstract.rb +1 -1
  16. data/lib/hanami/commands/new/container.rb +1 -0
  17. data/lib/hanami/common_logger.rb +73 -0
  18. data/lib/hanami/components.rb +11 -0
  19. data/lib/hanami/components/app/controller.rb +1 -0
  20. data/lib/hanami/components/components.rb +73 -20
  21. data/lib/hanami/configuration.rb +12 -0
  22. data/lib/hanami/env.rb +2 -0
  23. data/lib/hanami/environment.rb +5 -1
  24. data/lib/hanami/generators/app/application.rb.tt +0 -30
  25. data/lib/hanami/generators/application/container/Gemfile.tt +0 -1
  26. data/lib/hanami/generators/application/container/config/boot.rb.tt +2 -0
  27. data/lib/hanami/generators/application/container/config/environment.rb.tt +14 -5
  28. data/lib/hanami/generators/database_config.rb +1 -1
  29. data/lib/hanami/generators/mailer/{mailer_spec.rb.tt → mailer_spec.rb.minitest.tt} +0 -0
  30. data/lib/hanami/generators/mailer/mailer_spec.rb.rspec.tt +5 -0
  31. data/lib/hanami/generators/model/migration.rb.tt +10 -0
  32. data/lib/hanami/mailer/glue.rb +4 -46
  33. data/lib/hanami/server.rb +4 -12
  34. data/lib/hanami/static.rb +4 -8
  35. data/lib/hanami/version.rb +1 -1
  36. metadata +25 -62
  37. data/lib/hanami/components/app/logger.rb +0 -30
  38. data/lib/hanami/config/logger.rb +0 -200
  39. data/lib/hanami/generators/application/app/.env.development.tt +0 -4
  40. data/lib/hanami/generators/application/app/.env.test.tt +0 -4
  41. data/lib/hanami/generators/application/app/.gitignore +0 -0
  42. data/lib/hanami/generators/application/app/.gitkeep +0 -1
  43. data/lib/hanami/generators/application/app/Gemfile.tt +0 -57
  44. data/lib/hanami/generators/application/app/Rakefile.minitest.tt +0 -12
  45. data/lib/hanami/generators/application/app/Rakefile.rspec.tt +0 -9
  46. data/lib/hanami/generators/application/app/apps/.gitkeep.tt +0 -1
  47. data/lib/hanami/generators/application/app/capybara.rb.rspec.tt +0 -8
  48. data/lib/hanami/generators/application/app/config.ru.tt +0 -3
  49. data/lib/hanami/generators/application/app/config/application.rb.tt +0 -347
  50. data/lib/hanami/generators/application/app/config/environment.rb.tt +0 -4
  51. data/lib/hanami/generators/application/app/config/initializers/.gitkeep +0 -0
  52. data/lib/hanami/generators/application/app/config/routes.rb.tt +0 -5
  53. data/lib/hanami/generators/application/app/db/.gitkeep +0 -1
  54. data/lib/hanami/generators/application/app/favicon.ico +0 -0
  55. data/lib/hanami/generators/application/app/features_helper.rb.minitest.tt +0 -11
  56. data/lib/hanami/generators/application/app/features_helper.rb.rspec.tt +0 -12
  57. data/lib/hanami/generators/application/app/gitignore.tt +0 -2
  58. data/lib/hanami/generators/application/app/gitignore_with_db.tt +0 -4
  59. data/lib/hanami/generators/application/app/gitignore_with_sqlite.tt +0 -3
  60. data/lib/hanami/generators/application/app/hanamirc.tt +0 -4
  61. data/lib/hanami/generators/application/app/lib/app_name.rb.tt +0 -35
  62. data/lib/hanami/generators/application/app/lib/chirp/entities/.gitkeep +0 -1
  63. data/lib/hanami/generators/application/app/lib/chirp/repositories/.gitkeep +0 -1
  64. data/lib/hanami/generators/application/app/rspec.rspec.tt +0 -2
  65. data/lib/hanami/generators/application/app/schema.sql.tt +0 -0
  66. data/lib/hanami/generators/application/app/spec_helper.rb.minitest.tt +0 -7
  67. data/lib/hanami/generators/application/app/spec_helper.rb.rspec.tt +0 -104
  68. data/lib/hanami/generators/application/app/templates/application.html.erb.tt +0 -10
  69. data/lib/hanami/generators/application/app/templates/application.html.haml.tt +0 -7
  70. data/lib/hanami/generators/application/app/templates/application.html.slim.tt +0 -8
  71. data/lib/hanami/generators/application/app/views/application_layout.rb.tt +0 -7
@@ -6,7 +6,7 @@ module Hanami
6
6
  module Version
7
7
  # @since 0.9.0
8
8
  # @api private
9
- VERSION = '0.9.2'.freeze
9
+ VERSION = '1.0.0.beta1'.freeze
10
10
 
11
11
  # @since 0.9.0
12
12
  # @api private
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 1.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-12-19 00:00:00.000000000 Z
13
+ date: 2017-02-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hanami-utils
@@ -18,118 +18,112 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '0.9'
21
+ version: 1.0.0.beta1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '0.9'
28
+ version: 1.0.0.beta1
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: hanami-validations
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '0.7'
35
+ version: 1.0.0.beta1
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '0.7'
42
+ version: 1.0.0.beta1
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: hanami-router
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0.8'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 0.8.1
49
+ version: 1.0.0.beta1
53
50
  type: :runtime
54
51
  prerelease: false
55
52
  version_requirements: !ruby/object:Gem::Requirement
56
53
  requirements:
57
54
  - - "~>"
58
55
  - !ruby/object:Gem::Version
59
- version: '0.8'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 0.8.1
56
+ version: 1.0.0.beta1
63
57
  - !ruby/object:Gem::Dependency
64
58
  name: hanami-controller
65
59
  requirement: !ruby/object:Gem::Requirement
66
60
  requirements:
67
61
  - - "~>"
68
62
  - !ruby/object:Gem::Version
69
- version: '0.8'
63
+ version: 1.0.0.beta1
70
64
  type: :runtime
71
65
  prerelease: false
72
66
  version_requirements: !ruby/object:Gem::Requirement
73
67
  requirements:
74
68
  - - "~>"
75
69
  - !ruby/object:Gem::Version
76
- version: '0.8'
70
+ version: 1.0.0.beta1
77
71
  - !ruby/object:Gem::Dependency
78
72
  name: hanami-view
79
73
  requirement: !ruby/object:Gem::Requirement
80
74
  requirements:
81
75
  - - "~>"
82
76
  - !ruby/object:Gem::Version
83
- version: '0.8'
77
+ version: 1.0.0.beta1
84
78
  type: :runtime
85
79
  prerelease: false
86
80
  version_requirements: !ruby/object:Gem::Requirement
87
81
  requirements:
88
82
  - - "~>"
89
83
  - !ruby/object:Gem::Version
90
- version: '0.8'
84
+ version: 1.0.0.beta1
91
85
  - !ruby/object:Gem::Dependency
92
86
  name: hanami-helpers
93
87
  requirement: !ruby/object:Gem::Requirement
94
88
  requirements:
95
89
  - - "~>"
96
90
  - !ruby/object:Gem::Version
97
- version: '0.5'
91
+ version: 1.0.0.beta1
98
92
  type: :runtime
99
93
  prerelease: false
100
94
  version_requirements: !ruby/object:Gem::Requirement
101
95
  requirements:
102
96
  - - "~>"
103
97
  - !ruby/object:Gem::Version
104
- version: '0.5'
98
+ version: 1.0.0.beta1
105
99
  - !ruby/object:Gem::Dependency
106
100
  name: hanami-mailer
107
101
  requirement: !ruby/object:Gem::Requirement
108
102
  requirements:
109
103
  - - "~>"
110
104
  - !ruby/object:Gem::Version
111
- version: '0.4'
105
+ version: 1.0.0.beta1
112
106
  type: :runtime
113
107
  prerelease: false
114
108
  version_requirements: !ruby/object:Gem::Requirement
115
109
  requirements:
116
110
  - - "~>"
117
111
  - !ruby/object:Gem::Version
118
- version: '0.4'
112
+ version: 1.0.0.beta1
119
113
  - !ruby/object:Gem::Dependency
120
114
  name: hanami-assets
121
115
  requirement: !ruby/object:Gem::Requirement
122
116
  requirements:
123
117
  - - "~>"
124
118
  - !ruby/object:Gem::Version
125
- version: '0.4'
119
+ version: 1.0.0.beta1
126
120
  type: :runtime
127
121
  prerelease: false
128
122
  version_requirements: !ruby/object:Gem::Requirement
129
123
  requirements:
130
124
  - - "~>"
131
125
  - !ruby/object:Gem::Version
132
- version: '0.4'
126
+ version: 1.0.0.beta1
133
127
  - !ruby/object:Gem::Dependency
134
128
  name: concurrent-ruby
135
129
  requirement: !ruby/object:Gem::Requirement
@@ -284,10 +278,10 @@ files:
284
278
  - lib/hanami/commands/new/container.rb
285
279
  - lib/hanami/commands/routes.rb
286
280
  - lib/hanami/commands/server.rb
281
+ - lib/hanami/common_logger.rb
287
282
  - lib/hanami/components.rb
288
283
  - lib/hanami/components/app/assets.rb
289
284
  - lib/hanami/components/app/controller.rb
290
- - lib/hanami/components/app/logger.rb
291
285
  - lib/hanami/components/app/routes.rb
292
286
  - lib/hanami/components/app/view.rb
293
287
  - lib/hanami/components/component.rb
@@ -296,7 +290,6 @@ files:
296
290
  - lib/hanami/config/cookies.rb
297
291
  - lib/hanami/config/framework_configuration.rb
298
292
  - lib/hanami/config/load_paths.rb
299
- - lib/hanami/config/logger.rb
300
293
  - lib/hanami/config/mapper.rb
301
294
  - lib/hanami/config/routes.rb
302
295
  - lib/hanami/config/security.rb
@@ -323,39 +316,6 @@ files:
323
316
  - lib/hanami/generators/app/templates/application.html.haml.tt
324
317
  - lib/hanami/generators/app/templates/application.html.slim.tt
325
318
  - lib/hanami/generators/app/views/application_layout.rb.tt
326
- - lib/hanami/generators/application/app/.env.development.tt
327
- - lib/hanami/generators/application/app/.env.test.tt
328
- - lib/hanami/generators/application/app/.gitignore
329
- - lib/hanami/generators/application/app/.gitkeep
330
- - lib/hanami/generators/application/app/Gemfile.tt
331
- - lib/hanami/generators/application/app/Rakefile.minitest.tt
332
- - lib/hanami/generators/application/app/Rakefile.rspec.tt
333
- - lib/hanami/generators/application/app/apps/.gitkeep.tt
334
- - lib/hanami/generators/application/app/capybara.rb.rspec.tt
335
- - lib/hanami/generators/application/app/config.ru.tt
336
- - lib/hanami/generators/application/app/config/application.rb.tt
337
- - lib/hanami/generators/application/app/config/environment.rb.tt
338
- - lib/hanami/generators/application/app/config/initializers/.gitkeep
339
- - lib/hanami/generators/application/app/config/routes.rb.tt
340
- - lib/hanami/generators/application/app/db/.gitkeep
341
- - lib/hanami/generators/application/app/favicon.ico
342
- - lib/hanami/generators/application/app/features_helper.rb.minitest.tt
343
- - lib/hanami/generators/application/app/features_helper.rb.rspec.tt
344
- - lib/hanami/generators/application/app/gitignore.tt
345
- - lib/hanami/generators/application/app/gitignore_with_db.tt
346
- - lib/hanami/generators/application/app/gitignore_with_sqlite.tt
347
- - lib/hanami/generators/application/app/hanamirc.tt
348
- - lib/hanami/generators/application/app/lib/app_name.rb.tt
349
- - lib/hanami/generators/application/app/lib/chirp/entities/.gitkeep
350
- - lib/hanami/generators/application/app/lib/chirp/repositories/.gitkeep
351
- - lib/hanami/generators/application/app/rspec.rspec.tt
352
- - lib/hanami/generators/application/app/schema.sql.tt
353
- - lib/hanami/generators/application/app/spec_helper.rb.minitest.tt
354
- - lib/hanami/generators/application/app/spec_helper.rb.rspec.tt
355
- - lib/hanami/generators/application/app/templates/application.html.erb.tt
356
- - lib/hanami/generators/application/app/templates/application.html.haml.tt
357
- - lib/hanami/generators/application/app/templates/application.html.slim.tt
358
- - lib/hanami/generators/application/app/views/application_layout.rb.tt
359
319
  - lib/hanami/generators/application/container/.env.development.tt
360
320
  - lib/hanami/generators/application/container/.env.test.tt
361
321
  - lib/hanami/generators/application/container/.gitignore
@@ -365,6 +325,7 @@ files:
365
325
  - lib/hanami/generators/application/container/Rakefile.rspec.tt
366
326
  - lib/hanami/generators/application/container/capybara.rb.rspec.tt
367
327
  - lib/hanami/generators/application/container/config.ru.tt
328
+ - lib/hanami/generators/application/container/config/boot.rb.tt
368
329
  - lib/hanami/generators/application/container/config/environment.rb.tt
369
330
  - lib/hanami/generators/application/container/config/initializers/.gitkeep
370
331
  - lib/hanami/generators/application/container/db/.gitkeep
@@ -386,13 +347,15 @@ files:
386
347
  - lib/hanami/generators/generatable.rb
387
348
  - lib/hanami/generators/generator.rb
388
349
  - lib/hanami/generators/mailer/mailer.rb.tt
389
- - lib/hanami/generators/mailer/mailer_spec.rb.tt
350
+ - lib/hanami/generators/mailer/mailer_spec.rb.minitest.tt
351
+ - lib/hanami/generators/mailer/mailer_spec.rb.rspec.tt
390
352
  - lib/hanami/generators/mailer/template.html.tt
391
353
  - lib/hanami/generators/mailer/template.txt.tt
392
354
  - lib/hanami/generators/migration/migration.rb.tt
393
355
  - lib/hanami/generators/model/entity.rb.tt
394
356
  - lib/hanami/generators/model/entity_spec.minitest.tt
395
357
  - lib/hanami/generators/model/entity_spec.rspec.tt
358
+ - lib/hanami/generators/model/migration.rb.tt
396
359
  - lib/hanami/generators/model/repository.rb.tt
397
360
  - lib/hanami/generators/model/repository_spec.minitest.tt
398
361
  - lib/hanami/generators/model/repository_spec.rspec.tt
@@ -433,9 +396,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
433
396
  version: 2.3.0
434
397
  required_rubygems_version: !ruby/object:Gem::Requirement
435
398
  requirements:
436
- - - ">="
399
+ - - ">"
437
400
  - !ruby/object:Gem::Version
438
- version: '0'
401
+ version: 1.3.1
439
402
  requirements: []
440
403
  rubyforge_project:
441
404
  rubygems_version: 2.6.8
@@ -1,30 +0,0 @@
1
- require 'hanami/logger'
2
-
3
- module Hanami
4
- module Components
5
- module App
6
- # hanami/logger configuration for a sigle Hanami application in the project.
7
- #
8
- # @since 0.9.0
9
- # @api private
10
- class Logger
11
- # Configure hanami/logger for a single Hanami application in the project.
12
- #
13
- # @param app [Hanami::Configuration::App] a Hanami application
14
- #
15
- # @since 0.9.0
16
- # @api private
17
- def self.resolve(app)
18
- namespace = app.namespace
19
- return unless namespace.logger.nil?
20
-
21
- config = app.configuration
22
-
23
- # TODO: review this logic
24
- config.logger.app_name(namespace.to_s)
25
- namespace.logger = config.logger.build
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,200 +0,0 @@
1
- require 'hanami/logger'
2
-
3
- module Hanami
4
- module Config
5
- # Logger configuration
6
- #
7
- # @since 0.8.0
8
- class Logger
9
- attr_reader :application_module
10
-
11
- def initialize
12
- @stream = STDOUT
13
- end
14
-
15
- # Log stream.
16
- #
17
- # <tt>STDOUT</tt> by default.
18
- #
19
- # It accepts relative or absolute paths expressed as <tt>String</tt>, or
20
- # <tt>Pathname</tt>.
21
- #
22
- # It can also accept a <tt>IO</tt> or <tt>StringIO</tt> as output stream.
23
- #
24
- # @overload stream(value)
25
- # Sets the given value
26
- # @param value [String,Pathname,IO,StringIO] for log stream option.
27
- #
28
- # @overload stream
29
- # Gets the value
30
- # @return [String,Pathname,IO,StringIO] log stream option's value
31
- #
32
- # @since 0.8.0
33
- def stream(value = nil)
34
- if value.nil?
35
- @stream
36
- else
37
- @stream = value
38
- end
39
- end
40
-
41
- # Custom logger engine.
42
- #
43
- # This isn't used by default, but allows developers to use their own logger.
44
- #
45
- # @overload engine(value)
46
- # Sets the given value
47
- # @param value [Object] a logger
48
- #
49
- # @overload engine
50
- # Gets the value
51
- # @return [Object] returns the logger
52
- #
53
- # @since 0.8.0
54
- def engine(value = nil)
55
- if value.nil?
56
- @engine
57
- else
58
- @engine = value
59
- end
60
- end
61
-
62
- # Logger level
63
- #
64
- # Available values are:
65
- #
66
- # * DEBUG
67
- # * INFO
68
- # * WARN
69
- # * ERROR
70
- # * FATAL
71
- # * UNKNOWN
72
- #
73
- # @overload level(value)
74
- # Sets the given value
75
- # @param value [Integer,String,Symbol] the logger level
76
- #
77
- # @overload level
78
- # Gets the value
79
- # @return [Integer,String,Symbol] returns the level
80
- #
81
- # @since 0.8.0
82
- #
83
- # @example Constant (Integer)
84
- # require 'hanami/application'
85
- #
86
- # module Bookshelf
87
- # class Application < Hanami::Application
88
- # configure do
89
- # logger.level Hanami::Logger::DEBUG
90
- # end
91
- # end
92
- # end
93
- #
94
- # @example String
95
- # require 'hanami/application'
96
- #
97
- # module Bookshelf
98
- # class Application < Hanami::Application
99
- # configure do
100
- # logger.level 'debug'
101
- # end
102
- # end
103
- # end
104
- #
105
- # @example Symbol
106
- # require 'hanami/application'
107
- #
108
- # module Bookshelf
109
- # class Application < Hanami::Application
110
- # configure do
111
- # logger.level :debug
112
- # end
113
- # end
114
- # end
115
- def level(value = nil)
116
- if value.nil?
117
- @level
118
- else
119
- @level = value
120
- end
121
- end
122
-
123
- # Application name value.
124
- #
125
- # @overload app_name(value)
126
- # Sets the given value
127
- # @param value [String] for app name option
128
- #
129
- # @overload app_name
130
- # Gets the value
131
- # @return [String] app name option's value
132
- #
133
- # @since 0.8.0
134
- # @api private
135
- def app_name(value = nil)
136
- if value.nil?
137
- @app_name
138
- else
139
- @app_name = value
140
- end
141
- end
142
-
143
- # Logger format value.
144
- #
145
- # @overload format(value)
146
- # Sets the given value
147
- # @param value [String] for format option
148
- #
149
- # @overload format
150
- # Gets the value
151
- # @return [String] format option's value
152
- #
153
- # @since 0.8.0
154
- # @api private
155
- #
156
- # @example JSON format
157
- # require 'hanami/application'
158
- #
159
- # module Bookshelf
160
- # class Application < Hanami::Application
161
- # configure do
162
- # logger.format :json
163
- # end
164
- # end
165
- # end
166
- #
167
- # @example custom format class
168
- # require 'hanami/application'
169
- #
170
- # module Bookshelf
171
- # class Application < Hanami::Application
172
- # configure do
173
- # logger.format MyCustomFormatter.new
174
- # end
175
- # end
176
- # end
177
- def format(value = nil)
178
- if value.nil?
179
- @format
180
- else
181
- @format = value
182
- end
183
- end
184
-
185
- # Returns new Hanami::Logger instance with all options
186
- #
187
- # @return [Hanami::Logger,Object] a logger
188
- #
189
- # @since 0.8.0
190
- # @api private
191
- #
192
- # @see Hanami::Config::Logger#stream
193
- # @see Hanami::Config::Logger#engine
194
- def build
195
- @engine ||
196
- ::Hanami::Logger.new(@app_name, stream: @stream, level: @level, formatter: format)
197
- end
198
- end
199
- end
200
- end