hanami 1.1.0.beta1 → 1.1.0.beta2

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.
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