hanami 1.0.0.beta2 → 1.0.0.beta3

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/FEATURES.md +2 -0
  4. data/LICENSE.md +1 -1
  5. data/README.md +1 -1
  6. data/hanami.gemspec +8 -8
  7. data/lib/hanami.rb +0 -5
  8. data/lib/hanami/action/csrf_protection.rb +35 -0
  9. data/lib/hanami/app.rb +1 -1
  10. data/lib/hanami/application.rb +2 -0
  11. data/lib/hanami/application_configuration.rb +1 -12
  12. data/lib/hanami/application_name.rb +8 -2
  13. data/lib/hanami/application_namespace.rb +2 -0
  14. data/lib/hanami/assets/asset.rb +1 -0
  15. data/lib/hanami/cli.rb +7 -0
  16. data/lib/hanami/cli_base.rb +3 -0
  17. data/lib/hanami/cli_sub_commands/assets.rb +2 -0
  18. data/lib/hanami/cli_sub_commands/db.rb +15 -2
  19. data/lib/hanami/cli_sub_commands/destroy.rb +6 -0
  20. data/lib/hanami/cli_sub_commands/generate.rb +7 -2
  21. data/lib/hanami/commands/assets/precompile.rb +4 -0
  22. data/lib/hanami/commands/command.rb +13 -0
  23. data/lib/hanami/commands/console.rb +6 -0
  24. data/lib/hanami/commands/db/apply.rb +3 -0
  25. data/lib/hanami/commands/db/console.rb +7 -0
  26. data/lib/hanami/commands/db/create.rb +3 -0
  27. data/lib/hanami/commands/db/drop.rb +3 -0
  28. data/lib/hanami/commands/db/migrate.rb +5 -0
  29. data/lib/hanami/commands/db/prepare.rb +3 -0
  30. data/lib/hanami/commands/db/version.rb +3 -0
  31. data/lib/hanami/commands/generate/abstract.rb +13 -1
  32. data/lib/hanami/commands/generate/action.rb +21 -0
  33. data/lib/hanami/commands/generate/app.rb +21 -0
  34. data/lib/hanami/commands/generate/mailer.rb +16 -3
  35. data/lib/hanami/commands/generate/migration.rb +13 -2
  36. data/lib/hanami/commands/generate/model.rb +14 -1
  37. data/lib/hanami/commands/generate/secret_token.rb +6 -0
  38. data/lib/hanami/commands/new/abstract.rb +39 -4
  39. data/lib/hanami/commands/new/app.rb +15 -0
  40. data/lib/hanami/commands/new/container.rb +14 -0
  41. data/lib/hanami/commands/routes.rb +2 -0
  42. data/lib/hanami/commands/server.rb +4 -0
  43. data/lib/hanami/components/app/assets.rb +4 -0
  44. data/lib/hanami/components/app/controller.rb +4 -0
  45. data/lib/hanami/components/app/routes.rb +6 -0
  46. data/lib/hanami/components/app/view.rb +4 -0
  47. data/lib/hanami/components/component.rb +2 -0
  48. data/lib/hanami/components/components.rb +12 -5
  49. data/lib/hanami/components/routes_inspector.rb +2 -0
  50. data/lib/hanami/config/cookies.rb +1 -0
  51. data/lib/hanami/config/framework_configuration.rb +1 -0
  52. data/lib/hanami/config/load_paths.rb +4 -0
  53. data/lib/hanami/config/mapper.rb +11 -0
  54. data/lib/hanami/config/routes.rb +4 -0
  55. data/lib/hanami/config/security.rb +2 -0
  56. data/lib/hanami/config/sessions.rb +6 -0
  57. data/lib/hanami/configuration.rb +102 -0
  58. data/lib/hanami/environment.rb +13 -0
  59. data/lib/hanami/environment_application_configurations.rb +7 -0
  60. data/lib/hanami/generators/app/application.rb.tt +31 -23
  61. data/lib/hanami/generators/app/favicon.ico +0 -0
  62. data/lib/hanami/generators/database_config.rb +19 -1
  63. data/lib/hanami/generators/generatable.rb +13 -0
  64. data/lib/hanami/generators/generator.rb +8 -0
  65. data/lib/hanami/generators/template_engine.rb +9 -0
  66. data/lib/hanami/generators/test_framework.rb +12 -0
  67. data/lib/hanami/hanamirc.rb +2 -0
  68. data/lib/hanami/mailer/glue.rb +1 -0
  69. data/lib/hanami/middleware.rb +24 -0
  70. data/lib/hanami/rendering_policy.rb +15 -0
  71. data/lib/hanami/routes.rb +14 -12
  72. data/lib/hanami/routing/default.rb +7 -0
  73. data/lib/hanami/server.rb +6 -0
  74. data/lib/hanami/version.rb +1 -1
  75. data/lib/hanami/views/default.rb +3 -0
  76. data/lib/hanami/views/default_template_finder.rb +2 -0
  77. data/lib/hanami/views/null_view.rb +2 -0
  78. data/lib/hanami/welcome.rb +7 -0
  79. metadata +18 -19
  80. data/lib/hanami/root.rb +0 -7
data/lib/hanami/server.rb CHANGED
@@ -13,6 +13,7 @@ module Hanami
13
13
  # @since 0.8.0
14
14
  # @api private
15
15
  class Server < ::Rack::Server
16
+ # @api private
16
17
  attr_reader :options
17
18
 
18
19
  # @since 0.8.0
@@ -36,6 +37,7 @@ module Hanami
36
37
  mw
37
38
  end
38
39
 
40
+ # @api private
39
41
  def start
40
42
  preload
41
43
  super
@@ -43,11 +45,13 @@ module Hanami
43
45
 
44
46
  private
45
47
 
48
+ # @api private
46
49
  def setup
47
50
  return unless code_reloading?
48
51
  @app = Shotgun::Loader.new(rackup)
49
52
  end
50
53
 
54
+ # @api private
51
55
  def environment
52
56
  Components['environment']
53
57
  end
@@ -58,10 +62,12 @@ module Hanami
58
62
  Hanami.code_reloading?
59
63
  end
60
64
 
65
+ # @api private
61
66
  def rackup
62
67
  environment.rackup.to_s
63
68
  end
64
69
 
70
+ # @api private
65
71
  def preload
66
72
  if code_reloading?
67
73
  Shotgun.enable_copy_on_write
@@ -6,7 +6,7 @@ module Hanami
6
6
  module Version
7
7
  # @since 0.9.0
8
8
  # @api private
9
- VERSION = '1.0.0.beta2'.freeze
9
+ VERSION = '1.0.0.beta3'.freeze
10
10
 
11
11
  # @since 0.9.0
12
12
  # @api private
@@ -1,6 +1,7 @@
1
1
  require 'hanami/views/default_template_finder'
2
2
 
3
3
  module Hanami
4
+ # @api private
4
5
  module Views
5
6
  # The default view that is rendered for non successful responses (200 and 201)
6
7
  #
@@ -15,10 +16,12 @@ module Hanami
15
16
  root Pathname.new(File.dirname(__FILE__)).join('../templates').realpath
16
17
  template 'default'
17
18
 
19
+ # @api private
18
20
  def title
19
21
  "#{response[0]} - #{response[2].first || Http::Status.message_for(response[0])}"
20
22
  end
21
23
 
24
+ # @api private
22
25
  def self.render(root, template_name, context)
23
26
  format = context[:format]
24
27
  template = DefaultTemplateFinder.new(self, root, template_name, format).find
@@ -1,5 +1,6 @@
1
1
  module Hanami
2
2
  module Views
3
+ # @api private
3
4
  class DefaultTemplateFinder < View::Rendering::TemplateFinder
4
5
  # Template Finder
5
6
  #
@@ -12,6 +13,7 @@ module Hanami
12
13
  end
13
14
 
14
15
  private
16
+ # @api private
15
17
  def root
16
18
  @root
17
19
  end
@@ -5,6 +5,8 @@ module Hanami
5
5
  # @since 0.1.0
6
6
  # @api private
7
7
  class NullView
8
+ # @since 0.1.0
9
+ # @api private
8
10
  def render(_context)
9
11
  nil
10
12
  end
@@ -4,11 +4,14 @@ require 'hanami/environment'
4
4
  require 'hanami/utils/string'
5
5
 
6
6
  module Hanami
7
+ # @api private
7
8
  class Welcome
9
+ # @api private
8
10
  def initialize(_app)
9
11
  @root = Pathname.new(__dir__).join('templates').realpath
10
12
  end
11
13
 
14
+ # @api private
12
15
  def call(env)
13
16
  @request_path = env['REQUEST_PATH'] || ''
14
17
  @body = [ERB.new(@root.join('welcome.html.erb').read).result(binding)]
@@ -16,22 +19,26 @@ module Hanami
16
19
  [200, {}, @body]
17
20
  end
18
21
 
22
+ # @api private
19
23
  def application_name
20
24
  " #{ app }" if container?
21
25
  end
22
26
 
23
27
  private
24
28
 
29
+ # @api private
25
30
  def container?
26
31
  Environment.new.container?
27
32
  end
28
33
 
34
+ # @api private
29
35
  def application_class
30
36
  Hanami.configuration.apps do |app|
31
37
  return app if @request_path.include?(app.path_prefix)
32
38
  end
33
39
  end
34
40
 
41
+ # @api private
35
42
  def app
36
43
  application_class.app_name
37
44
  end
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: 1.0.0.beta2
4
+ version: 1.0.0.beta3
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: 2017-03-02 00:00:00.000000000 Z
13
+ date: 2017-03-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: hanami-utils
@@ -18,112 +18,112 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.0.beta2
21
+ version: 1.0.0.beta3
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: 1.0.0.beta2
28
+ version: 1.0.0.beta3
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: 1.0.0.beta1
35
+ version: 1.0.0.beta2
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: 1.0.0.beta1
42
+ version: 1.0.0.beta2
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: 1.0.0.beta2
49
+ version: 1.0.0.beta3
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 1.0.0.beta2
56
+ version: 1.0.0.beta3
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: hanami-controller
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 1.0.0.beta2
63
+ version: 1.0.0.beta3
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 1.0.0.beta2
70
+ version: 1.0.0.beta3
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: hanami-view
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: 1.0.0.beta1
77
+ version: 1.0.0.beta2
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: 1.0.0.beta1
84
+ version: 1.0.0.beta2
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: hanami-helpers
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: 1.0.0.beta1
91
+ version: 1.0.0.beta2
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: 1.0.0.beta1
98
+ version: 1.0.0.beta2
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: hanami-mailer
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
- version: 1.0.0.beta1
105
+ version: 1.0.0.beta2
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
110
  - - "~>"
111
111
  - !ruby/object:Gem::Version
112
- version: 1.0.0.beta1
112
+ version: 1.0.0.beta2
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: hanami-assets
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: 1.0.0.beta1
119
+ version: 1.0.0.beta2
120
120
  type: :runtime
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - "~>"
125
125
  - !ruby/object:Gem::Version
126
- version: 1.0.0.beta1
126
+ version: 1.0.0.beta2
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: concurrent-ruby
129
129
  requirement: !ruby/object:Gem::Requirement
@@ -367,7 +367,6 @@ files:
367
367
  - lib/hanami/rake_helper.rb
368
368
  - lib/hanami/rake_tasks.rb
369
369
  - lib/hanami/rendering_policy.rb
370
- - lib/hanami/root.rb
371
370
  - lib/hanami/routes.rb
372
371
  - lib/hanami/routing/default.rb
373
372
  - lib/hanami/server.rb
data/lib/hanami/root.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'hanami/environment'
2
-
3
- module Hanami
4
- def self.root
5
- Hanami::Environment.new.root
6
- end
7
- end