hanami 0.9.2 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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