hanami 1.1.0.beta1 → 1.1.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0563f150b8f7f4d4d829600edba47e56e22d12a6
4
- data.tar.gz: da1e14370a1c34df67516438b1f8b480f0c85f86
3
+ metadata.gz: 7aa9709ada9de8f63dea232776d338c9f86e52c5
4
+ data.tar.gz: 5453acd38d37cda135919de2a56a5f8145918d8f
5
5
  SHA512:
6
- metadata.gz: 88b3c5a16d520bb93a27d262fd5c77d786095c6d5969c0b1f2d412a8f58c229ebd76225b4c05ecc7bc3d077b3ac411ae92f26d91564e826f6918aef2d9e8a257
7
- data.tar.gz: c317261106b08f792784b56ed52e3834926c0a814ac64290345025bd0f0480a3d43b29f1136c10da0410d77d83dd5feaac1bc61e13d1f618da75ecc34439532a
6
+ metadata.gz: 01c2b49d9aa7d14b04d20196e0228fbc9233a3fc5f9a26931fc242584c4ea17bcef26c0819e7c7566536415e11370516ad435a8c397ee58ca1780011578d185a
7
+ data.tar.gz: 32730bec6f29a86eb80fae447810021576371e08a0e25b1dd5be55ad59d8494e93d6ebca6755a576db28b183274c3236088a9c1cc0531b157b61cd24a7804878
@@ -1,6 +1,14 @@
1
1
  # Hanami
2
2
  The web, with simplicity.
3
3
 
4
+ ## v1.1.0.beta2 - 2017-10-03
5
+ ### Added
6
+ - [Luca Guidi] Introduce `:plugins` group for `Gemfile` in order enable Hanami plugin gems
7
+ - [Alfonso Uceda] CLI: `hanami db rollback` to revert one or more migrations at once
8
+
9
+ ### Fixed
10
+ - [Gabriel Gizotti] Fix generate/destroy for nested actions
11
+
4
12
  ## v1.1.0.beta1 - 2017-08-11
5
13
  ### Added
6
14
  - [Ben Johnson] Allow to use custom logger as `Hanami.logger` (eg. `Hanami.configure { logger Timber::Logger.new($stdout) }`)
@@ -9,6 +9,8 @@
9
9
  - One-To-One association (aka `has_one`)
10
10
  - Many-To-Many association (aka `has_many :through`)
11
11
  - Allow third-party developers to register commands for CLI (eg `hanami generate webpack`)
12
+ - Initial support for plugins via `:plugins` group in `Gemfile`
13
+ - CLI: `hanami db rollback` to rollback database migrations
12
14
  - Introduced new extra behaviors for entity manual schema: `:schema` (default), `:strict`, `:weak`, and `:permissive`
13
15
  - Custom logger for `Hanami.logger`
14
16
  - Selectively boot apps via `HANAMI_APPS=web` env var
data/bin/hanami CHANGED
@@ -2,4 +2,5 @@
2
2
  require 'bundler'
3
3
  require 'hanami/cli/commands'
4
4
 
5
+ Bundler.require(:plugins)
5
6
  Hanami::CLI.new(Hanami::CLI::Commands).call
@@ -21,20 +21,20 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
23
23
 
24
- spec.add_dependency 'hanami-utils', '1.1.0.beta1'
25
- spec.add_dependency 'hanami-validations', '1.1.0.beta1'
26
- spec.add_dependency 'hanami-router', '1.1.0.beta1'
27
- spec.add_dependency 'hanami-controller', '1.1.0.beta1'
28
- spec.add_dependency 'hanami-view', '1.1.0.beta1'
29
- spec.add_dependency 'hanami-helpers', '1.1.0.beta1'
30
- spec.add_dependency 'hanami-mailer', '1.1.0.beta1'
31
- spec.add_dependency 'hanami-assets', '1.1.0.beta1'
32
- spec.add_dependency 'hanami-cli', '0.1.0.beta1'
24
+ spec.add_dependency 'hanami-utils', '1.1.0.beta2'
25
+ spec.add_dependency 'hanami-validations', '1.1.0.beta2'
26
+ spec.add_dependency 'hanami-router', '1.1.0.beta2'
27
+ spec.add_dependency 'hanami-controller', '1.1.0.beta2'
28
+ spec.add_dependency 'hanami-view', '1.1.0.beta2'
29
+ spec.add_dependency 'hanami-helpers', '1.1.0.beta2'
30
+ spec.add_dependency 'hanami-mailer', '1.1.0.beta2'
31
+ spec.add_dependency 'hanami-assets', '1.1.0.beta2'
32
+ spec.add_dependency 'hanami-cli', '0.1.0.beta2'
33
33
  spec.add_dependency 'concurrent-ruby', '~> 1.0'
34
- spec.add_dependency 'bundler', '~> 1.13'
34
+ spec.add_dependency 'bundler'
35
35
 
36
- spec.add_development_dependency 'rspec', '~> 3.5'
36
+ spec.add_development_dependency 'rspec', '~> 3.6'
37
37
  spec.add_development_dependency 'rack-test', '~> 0.6'
38
38
  spec.add_development_dependency 'aruba', '~> 0.14'
39
- spec.add_development_dependency 'rake', '~> 11.3'
39
+ spec.add_development_dependency 'rake', '~> 12.0'
40
40
  end
@@ -11,6 +11,7 @@ module Hanami
11
11
  require "hanami/cli/commands/db/create"
12
12
  require "hanami/cli/commands/db/drop"
13
13
  require "hanami/cli/commands/db/migrate"
14
+ require "hanami/cli/commands/db/rollback"
14
15
  require "hanami/cli/commands/db/prepare"
15
16
  require "hanami/cli/commands/db/apply"
16
17
  require "hanami/cli/commands/db/console"
@@ -18,13 +19,14 @@ module Hanami
18
19
  end
19
20
 
20
21
  register "db" do |prefix|
21
- prefix.register "version", Commands::Db::Version
22
- prefix.register "create", Commands::Db::Create
23
- prefix.register "drop", Commands::Db::Drop
24
- prefix.register "migrate", Commands::Db::Migrate
25
- prefix.register "prepare", Commands::Db::Prepare
26
- prefix.register "apply", Commands::Db::Apply
27
- prefix.register "console", Commands::Db::Console
22
+ prefix.register "version", Commands::Db::Version
23
+ prefix.register "create", Commands::Db::Create
24
+ prefix.register "drop", Commands::Db::Drop
25
+ prefix.register "migrate", Commands::Db::Migrate
26
+ prefix.register "rollback", Commands::Db::Rollback
27
+ prefix.register "prepare", Commands::Db::Prepare
28
+ prefix.register "apply", Commands::Db::Apply
29
+ prefix.register "console", Commands::Db::Console
28
30
  end
29
31
  end
30
32
  end
@@ -0,0 +1,39 @@
1
+ module Hanami
2
+ class CLI
3
+ module Commands
4
+ module Db
5
+ # @since x.x.x
6
+ # @api private
7
+ class Rollback < Command
8
+ requires "model.sql"
9
+
10
+ desc "Rollback migrations"
11
+
12
+ argument :steps, desc: "Number of steps to rollback the database", default: 1
13
+
14
+ example [
15
+ " # Rollbacks latest migration",
16
+ "2 # Rollbacks last two migrations"
17
+ ]
18
+
19
+ # @since x.x.x
20
+ # @api private
21
+ def call(steps:, **)
22
+ context = Context.new(steps: steps.to_int)
23
+
24
+ rollback_database(context)
25
+ end
26
+
27
+ private
28
+
29
+ # @since x.x.x
30
+ # @api private
31
+ def rollback_database(context)
32
+ require "hanami/model/migrator"
33
+ Hanami::Model::Migrator.rollback(steps: context.steps)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -19,7 +19,7 @@ module Hanami
19
19
  # @api private
20
20
  def call(app:, action:, **options)
21
21
  app = Utils::String.underscore(app)
22
- controller, action = controller_and_action(action)
22
+ *controller, action = controller_and_action(action)
23
23
  action_name = controller_and_action_name(controller, action)
24
24
 
25
25
  context = Context.new(app: app, controller: controller, action: action, action_name: action_name, options: options)
@@ -57,7 +57,13 @@ module Hanami
57
57
  # @api private
58
58
  def controller_and_action_name(controller, action)
59
59
  # FIXME: extract this separator
60
- [controller, action].join("#")
60
+ [namespaced_controller(controller), action].join("#")
61
+ end
62
+
63
+ # @since 1.1.0
64
+ # #api private
65
+ def namespaced_controller(controller)
66
+ controller.join("/")
61
67
  end
62
68
 
63
69
  # @since 1.1.0
@@ -30,10 +30,11 @@ module Hanami
30
30
  # rubocop:disable Metrics/AbcSize
31
31
  # rubocop:disable Metrics/MethodLength
32
32
  def call(app:, action:, **options)
33
- controller, action = controller_and_action_name(action)
34
- http_method = route_http_method(action, options)
35
- context = Context.new(app: app, controller: controller, action: action, test: options.fetch(:test), http_method: http_method, options: options)
36
- context = context.with(template: project.template(context))
33
+ *controller, action = controller_and_action_name(action)
34
+ classified_controller_name = classified_controller(controller)
35
+ http_method = route_http_method(action, options)
36
+ context = Context.new(app: app, controller: controller, classified_controller_name: classified_controller_name, action: action, test: options.fetch(:test), http_method: http_method, options: options)
37
+ context = context.with(template: project.template(context))
37
38
 
38
39
  assert_valid_app!(context)
39
40
  assert_valid_route_url!(context)
@@ -193,7 +194,7 @@ module Hanami
193
194
  # @since 1.1.0
194
195
  # @api private
195
196
  def route_resourceful_url(context)
196
- "/#{context.controller}#{route_resourceful_url_suffix(context)}"
197
+ "/#{namespaced_controller(context)}#{route_resourceful_url_suffix(context)}"
197
198
  end
198
199
 
199
200
  # @since 1.1.0
@@ -215,7 +216,21 @@ module Hanami
215
216
  # @since 1.1.0
216
217
  # @api private
217
218
  def route_endpoint(context)
218
- "#{context.controller}##{context.action}"
219
+ "#{namespaced_controller(context)}##{context.action}"
220
+ end
221
+
222
+ # @since 1.1.0
223
+ # @api private
224
+ def classified_controller(controller)
225
+ controller.
226
+ map { |controller_name| Utils::String.new(controller_name).classify }.
227
+ join("::")
228
+ end
229
+
230
+ # @since 1.1.0
231
+ # @api private
232
+ def namespaced_controller(context)
233
+ context.controller.join("/")
219
234
  end
220
235
  end
221
236
  end
@@ -1,4 +1,4 @@
1
- module <%= app.classify %>::Controllers::<%= controller.classify %>
1
+ module <%= app.classify %>::Controllers::<%= classified_controller_name %>
2
2
  class <%= action.classify %>
3
3
  include <%= app.classify %>::Action
4
4
 
@@ -1,7 +1,7 @@
1
1
  require_relative '../../../spec_helper'
2
2
 
3
- describe <%= app.classify %>::Controllers::<%= controller.classify %>::<%= action.classify %> do
4
- let(:action) { <%= app.classify %>::Controllers::<%= controller.classify %>::<%= action.classify %>.new }
3
+ describe <%= app.classify %>::Controllers::<%= classified_controller_name %>::<%= action.classify %> do
4
+ let(:action) { <%= app.classify %>::Controllers::<%= classified_controller_name %>::<%= action.classify %>.new }
5
5
  let(:params) { Hash[] }
6
6
 
7
7
  it 'is successful' do
@@ -1,4 +1,4 @@
1
- RSpec.describe <%= app.classify %>::Controllers::<%= controller.classify %>::<%= action.classify %> do
1
+ RSpec.describe <%= app.classify %>::Controllers::<%= classified_controller_name %>::<%= action.classify %> do
2
2
  let(:action) { described_class.new }
3
3
  let(:params) { Hash[] }
4
4
 
@@ -1,4 +1,4 @@
1
- module <%= app.classify %>::Controllers::<%= controller.classify %>
1
+ module <%= app.classify %>::Controllers::<%= classified_controller_name %>
2
2
  class <%= action.classify %>
3
3
  include <%= app.classify %>::Action
4
4
 
@@ -1,4 +1,4 @@
1
- module <%= app.classify %>::Views::<%= controller.classify %>
1
+ module <%= app.classify %>::Views::<%= classified_controller_name %>
2
2
  class <%= action.classify %>
3
3
  include <%= app.classify %>::View
4
4
  end
@@ -1,9 +1,9 @@
1
1
  require_relative '../../../spec_helper'
2
2
 
3
- describe <%= app.classify %>::Views::<%= controller.classify %>::<%= action.classify %> do
3
+ describe <%= app.classify %>::Views::<%= classified_controller_name %>::<%= action.classify %> do
4
4
  let(:exposures) { Hash[foo: 'bar'] }
5
5
  let(:template) { Hanami::View::Template.new('<%= template %>') }
6
- let(:view) { <%= app.classify %>::Views::<%= controller.classify %>::<%= action.classify %>.new(template, exposures) }
6
+ let(:view) { <%= app.classify %>::Views::<%= classified_controller_name %>::<%= action.classify %>.new(template, exposures) }
7
7
  let(:rendered) { view.render }
8
8
 
9
9
  it 'exposes #foo' do
@@ -1,4 +1,4 @@
1
- RSpec.describe <%= app.classify %>::Views::<%= controller.classify %>::<%= action.classify %> do
1
+ RSpec.describe <%= app.classify %>::Views::<%= classified_controller_name %>::<%= action.classify %> do
2
2
  let(:exposures) { Hash[foo: 'bar'] }
3
3
  let(:template) { Hanami::View::Template.new('<%= template %>') }
4
4
  let(:view) { described_class.new(template, exposures) }
@@ -299,7 +299,7 @@ module Hanami
299
299
  application_name: options.fetch(:application_name),
300
300
  application_base_url: options.fetch(:application_base_url),
301
301
  hanami_head: options.fetch(:hanami_head),
302
- hanami_model_version: '1.1.0.beta1',
302
+ hanami_model_version: '1.1.0.beta2',
303
303
  code_reloading: code_reloading?,
304
304
  hanami_version: hanami_version,
305
305
  project_module: Utils::String.classify(project),
@@ -1,4 +1,4 @@
1
- # <%= project %>
1
+ # <%= Hanami::Utils::String.titleize(project) %>
2
2
 
3
3
  Welcome to your new Hanami project!
4
4
 
@@ -22,14 +22,12 @@ How to run the development server:
22
22
  % bundle exec hanami server
23
23
  ```
24
24
 
25
- How to create and migrate DB for development and test ENVs:
25
+ How to prepare (create and migrate) DB for `development` and `test` environments:
26
26
 
27
27
  ```
28
- % bundle exec hanami db create
29
- % bundle exec hanami db migrate
28
+ % bundle exec hanami db prepare
30
29
 
31
- % HANAMI_ENV=test bundle exec hanami db create
32
- % HANAMI_ENV=test bundle exec hanami db migrate
30
+ % HANAMI_ENV=test bundle exec hanami db prepare
33
31
  ```
34
32
 
35
33
  Explore Hanami [guides](http://hanamirb.org/guides/), [API docs](http://hanamirb.org/docs/1.0.0/), or jump in [chat](http://chat.hanamirb.org) for help. Enjoy! 🌸
@@ -220,6 +220,10 @@ module Hanami
220
220
 
221
221
  configuration.mailer_settings.each do |settings|
222
222
  Hanami::Mailer.configure(&settings)
223
+ Hanami::Mailer.configuration.mailers.each do |mailer|
224
+ mailer.configuration = Hanami::Mailer.configuration.duplicate
225
+ Hanami::Mailer.configuration.copy!(mailer)
226
+ end
223
227
  end
224
228
 
225
229
  Hanami::Mailer.configuration
@@ -1,5 +1,5 @@
1
1
  begin
2
- require 'dotenv'
2
+ require 'dotenv/parser'
3
3
  rescue LoadError # rubocop:disable Lint/HandleExceptions
4
4
  end
5
5
 
@@ -53,7 +53,7 @@ module Hanami
53
53
  # @since 0.9.0
54
54
  # @api private
55
55
  def load!(path)
56
- return unless defined?(Dotenv)
56
+ return unless defined?(Dotenv::Parser)
57
57
 
58
58
  contents = ::File.open(path, "rb:bom|utf-8", &:read)
59
59
  parsed = Dotenv::Parser.call(contents)
@@ -391,6 +391,7 @@ module Hanami
391
391
  # @since 0.4.0
392
392
  # @api private
393
393
  def require_application_environment
394
+ Bundler.setup(*bundler_groups)
394
395
  require project_environment_configuration.to_s # if project_environment_configuration.exist?
395
396
  end
396
397
 
@@ -117,7 +117,12 @@ module Hanami
117
117
  Utils::Hash.symbolize(hash)
118
118
  end
119
119
 
120
+ # Returns options from hanamirc file
121
+ #
122
+ # @since 0.6.0
120
123
  # @api private
124
+ #
125
+ # @return [Hash] hanamirc parsed values
121
126
  def file_options
122
127
  symbolize(exists? ? parse_file(path_file) : {})
123
128
  end
@@ -17,7 +17,6 @@ module Hanami
17
17
  # @since 0.6.0
18
18
  # @api private
19
19
  #
20
- # rubocop:disable Metrics/AbcSize
21
20
  # rubocop:disable Metrics/MethodLength
22
21
  def install
23
22
  desc "Load the full project"
@@ -50,19 +49,30 @@ module Hanami
50
49
  #
51
50
  # This is the preferred way to run Hanami command line tasks.
52
51
  # Please use them when you're in control of your deployment environment.
52
+ #
53
+ # If you're not in control and your deployment requires these "standard"
54
+ # Rake tasks, they are here to solve this only specific problem.
53
55
  namespace :db do
54
56
  task :migrate do
55
- system("bundle exec hanami db migrate") || exit($?.exitstatus)
57
+ run_hanami_command("db migrate")
56
58
  end
57
59
  end
58
60
 
59
61
  namespace :assets do
60
62
  task :precompile do
61
- system("bundle exec hanami assets precompile") || exit($?.exitstatus)
63
+ run_hanami_command("assets precompile")
62
64
  end
63
65
  end
64
66
  end
67
+
68
+ private
69
+
70
+ # @since 1.1.0
71
+ # @api private
72
+ def run_hanami_command(command)
73
+ require "hanami/cli/commands"
74
+ Hanami::CLI.new(Hanami::CLI::Commands).call(arguments: command.split(/[[:space:]]/))
75
+ end
65
76
  # rubocop:enable Metrics/MethodLength
66
- # rubocop:enable Metrics/AbcSize
67
77
  end
68
78
  end
@@ -6,7 +6,7 @@ module Hanami
6
6
  module Version
7
7
  # @since 0.9.0
8
8
  # @api private
9
- VERSION = '1.1.0.beta1'.freeze
9
+ VERSION = '1.1.0.beta2'.freeze
10
10
 
11
11
  # @since 0.9.0
12
12
  # @api private
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: 1.1.0.beta1
4
+ version: 1.1.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-11 00:00:00.000000000 Z
11
+ date: 2017-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hanami-utils
@@ -16,126 +16,126 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0.beta1
19
+ version: 1.1.0.beta2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0.beta1
26
+ version: 1.1.0.beta2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hanami-validations
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.0.beta1
33
+ version: 1.1.0.beta2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.0.beta1
40
+ version: 1.1.0.beta2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hanami-router
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 1.1.0.beta1
47
+ version: 1.1.0.beta2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.1.0.beta1
54
+ version: 1.1.0.beta2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: hanami-controller
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.1.0.beta1
61
+ version: 1.1.0.beta2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.1.0.beta1
68
+ version: 1.1.0.beta2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: hanami-view
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 1.1.0.beta1
75
+ version: 1.1.0.beta2
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 1.1.0.beta1
82
+ version: 1.1.0.beta2
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: hanami-helpers
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 1.1.0.beta1
89
+ version: 1.1.0.beta2
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 1.1.0.beta1
96
+ version: 1.1.0.beta2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: hanami-mailer
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.1.0.beta1
103
+ version: 1.1.0.beta2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.1.0.beta1
110
+ version: 1.1.0.beta2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: hanami-assets
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.1.0.beta1
117
+ version: 1.1.0.beta2
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 1.1.0.beta1
124
+ version: 1.1.0.beta2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: hanami-cli
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.0.beta1
131
+ version: 0.1.0.beta2
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.0.beta1
138
+ version: 0.1.0.beta2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: concurrent-ruby
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -154,30 +154,30 @@ dependencies:
154
154
  name: bundler
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: '1.13'
159
+ version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '1.13'
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rspec
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '3.5'
173
+ version: '3.6'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '3.5'
180
+ version: '3.6'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rack-test
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: '11.3'
215
+ version: '12.0'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: '11.3'
222
+ version: '12.0'
223
223
  description: Hanami is a web framework for Ruby
224
224
  email:
225
225
  - me@lucaguidi.com
@@ -257,6 +257,7 @@ files:
257
257
  - lib/hanami/cli/commands/db/drop.rb
258
258
  - lib/hanami/cli/commands/db/migrate.rb
259
259
  - lib/hanami/cli/commands/db/prepare.rb
260
+ - lib/hanami/cli/commands/db/rollback.rb
260
261
  - lib/hanami/cli/commands/db/version.rb
261
262
  - lib/hanami/cli/commands/destroy.rb
262
263
  - lib/hanami/cli/commands/destroy/action.rb
@@ -386,7 +387,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
387
  version: 1.3.1
387
388
  requirements: []
388
389
  rubyforge_project:
389
- rubygems_version: 2.6.11
390
+ rubygems_version: 2.6.13
390
391
  signing_key:
391
392
  specification_version: 4
392
393
  summary: The web, with simplicity