hanami 1.0.0.beta2 → 1.0.0.beta3

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