hanami-rspec 2.0.0.rc1 → 2.0.0

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
  SHA256:
3
- metadata.gz: 5c81e6f4992dc09e1e1ecc6aac46e01f26b959ead78dbc5666f4186354e1d5d4
4
- data.tar.gz: 72a5a8fc775f49caeaf9c35a3c09115f6bd7ff1deb6c6042147f8d843617afe9
3
+ metadata.gz: c415ba583435fbde42c2f22d266f914e012859027972579fc7eb8c98184032ac
4
+ data.tar.gz: d9aa1a97b164fdf5ccd0ed774875bb63953c22a8b3fefce822711acc499e51d8
5
5
  SHA512:
6
- metadata.gz: 37269746fea506a5606e6512d80a28afa2447146066adc267f8bc9f887dc33aed3c34e327ff8dd491562b512dbb5607eb679688780a631e089ba59b24af75008
7
- data.tar.gz: 6b2c09d813b91ae8fce7adad538059e2a71c6a087c5657bd7f81e78acad974fce27962d4df2c233c3c39b06e6fbc5717640e100323b945e7ed57b97d9dad8479
6
+ metadata.gz: 7f26b6f53e8ed281bc79585a5e7f6c8ef75936b6fe1f79e0fbfa93815a6c41a8139659ef354a1b0ce1ac176403570fffceba763b91e07ea33803d0f3a6e2c26e
7
+ data.tar.gz: 943b06d7c19d9b5f099630e776785c2b155f926edeb049644516ec80f6e5e107b66b3c65ad499d67644c369568ec8f346f6c89b6112c370be5b0c45271d26c85
data/CHANGELOG.md CHANGED
@@ -1,12 +1,23 @@
1
+ # Hanami::RSpec
2
+
3
+ RSpec support for Hanami
4
+
5
+ ## v2.0.0 - 2022-11-22
6
+
7
+ ### Added
8
+
9
+ - [Tim Riley] Use Zeitwerk to autoload the gem
10
+ - [Luca Guidi] Support RSpec 3.12
11
+
1
12
  ## v2.0.0.rc1 - 2022-11-08
2
13
 
3
- ## Changed
14
+ ### Changed
4
15
 
5
16
  - [Luca Guidi] Follow `hanami` versioning
6
17
 
7
18
  ## v3.11.0.beta4 - 2022-10-24
8
19
 
9
- ## Changed
20
+ ### Changed
10
21
 
11
22
  - [Luca Guidi] Generate slice specs under `spec/slices/[slice_name]/` (#9)
12
23
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Hanami::RSpec
2
2
 
3
- RSpec and testing support for [full-stack Hanami applications](`https://github.com/hanami/hanami`).
3
+ RSpec and testing support for [Hanami applications](https://github.com/hanami/hanami).
4
4
 
5
5
  ## Status
6
6
 
@@ -32,10 +32,10 @@ end
32
32
 
33
33
  And then execute:
34
34
 
35
- $ bundle install
36
- $ bundle exec hanami setup
37
-
38
- ## Usage
35
+ ```
36
+ $ bundle install
37
+ $ bundle exec hanami setup
38
+ ```
39
39
 
40
40
  ## Development
41
41
 
data/hanami-rspec.gemspec CHANGED
@@ -29,9 +29,10 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
- spec.add_dependency "hanami-cli", "~> 2.0.0.rc1"
33
- spec.add_dependency "rspec", "~> 3.11"
32
+ spec.add_dependency "hanami-cli", "~> 2.0"
33
+ spec.add_dependency "rspec", "~> 3.12"
34
34
  spec.add_dependency "rake", "~> 13.0"
35
+ spec.add_dependency "zeitwerk", "~> 2.6"
35
36
 
36
37
  spec.add_development_dependency "rubocop", "~> 1.11"
37
38
  spec.metadata["rubygems_mfa_required"] = "true"
@@ -1,15 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "hanami/cli"
4
3
  require "shellwords"
5
- require "hanami/cli/commands/app/command"
6
- require "hanami/cli/generators/context"
7
- require_relative "./generators"
8
4
 
9
5
  module Hanami
10
6
  module RSpec
7
+ # @since 2.0.0
8
+ # @api private
11
9
  module Commands
10
+ # @since 2.0.0
11
+ # @api private
12
12
  class Install < Hanami::CLI::Command
13
+ # @since 2.0.0
14
+ # @api private
13
15
  def call(*, **)
14
16
  append_gemfile
15
17
  copy_dotrspec
@@ -67,7 +69,11 @@ module Hanami
67
69
  end
68
70
  end
69
71
 
72
+ # @since 2.0.0
73
+ # @api private
70
74
  module Generate
75
+ # @since 2.0.0
76
+ # @api private
71
77
  class Slice < Hanami::CLI::Command
72
78
  # FIXME: dry-cli kwargs aren't correctly forwarded in Ruby 3
73
79
  def call(options, **)
@@ -78,9 +84,13 @@ module Hanami
78
84
  end
79
85
  end
80
86
 
87
+ # @since 2.0.0
88
+ # @api private
81
89
  class Action < Hanami::CLI::Commands::App::Command
82
- # FIXME: dry-cli kwargs aren't correctly forwarded in Ruby 3
90
+ # @since 2.0.0
91
+ # @api private
83
92
  def call(options, **)
93
+ # FIXME: dry-cli kwargs aren't correctly forwarded in Ruby 3
84
94
  slice = inflector.underscore(Shellwords.shellescape(options[:slice])) if options[:slice]
85
95
  name = inflector.underscore(Shellwords.shellescape(options[:name]))
86
96
  *controller, action = name.split(ACTION_SEPARATOR)
@@ -93,9 +103,3 @@ module Hanami
93
103
  end
94
104
  end
95
105
  end
96
-
97
- if Hanami::CLI.within_hanami_app?
98
- Hanami::CLI.after "install", Hanami::RSpec::Commands::Install
99
- Hanami::CLI.after "generate slice", Hanami::RSpec::Commands::Generate::Slice
100
- Hanami::CLI.after "generate action", Hanami::RSpec::Commands::Generate::Action
101
- end
@@ -1,17 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "erb"
4
- require "hanami/cli/generators/app/action_context"
5
4
 
6
5
  module Hanami
7
6
  module RSpec
8
7
  module Generators
8
+ # @since 2.0.0
9
+ # @api private
9
10
  class Action
11
+ # @since 2.0.0
12
+ # @api private
10
13
  def initialize(fs:, inflector:)
11
14
  @fs = fs
12
15
  @inflector = inflector
13
16
  end
14
17
 
18
+ # @since 2.0.0
19
+ # @api private
15
20
  def call(app, slice, controller, action, context: Hanami::CLI::Generators::App::ActionContext.new(inflector, app, slice, controller, action)) # rubocop:disable Layout/LineLength
16
21
  if slice
17
22
  fs.write(
@@ -1,17 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "erb"
4
- require "hanami/cli/generators/app/slice_context"
5
4
 
6
5
  module Hanami
7
6
  module RSpec
8
7
  module Generators
8
+ # @since 2.0.0
9
+ # @api private
9
10
  class Slice
11
+ # @since 2.0.0
12
+ # @api private
10
13
  def initialize(fs:, inflector:)
11
14
  @fs = fs
12
15
  @inflector = inflector
13
16
  end
14
17
 
18
+ # @since 2.0.0
19
+ # @api private
15
20
  def call(slice, context: Hanami::CLI::Generators::App::SliceContext.new(inflector, nil, slice, nil))
16
21
  fs.write("spec/slices/#{slice}/action_spec.rb", t("action_spec.erb", context))
17
22
  # fs.write("spec/slices/#{slice}/view_spec.rb", t("view_spec.erb", context))
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "hanami/cli/rake_tasks"
4
-
5
3
  Hanami::CLI::RakeTasks.register_tasks do
6
4
  require "rspec/core/rake_task"
7
5
  ::RSpec::Core::RakeTask.new(:spec)
@@ -2,6 +2,10 @@
2
2
 
3
3
  module Hanami
4
4
  module RSpec
5
- VERSION = "2.0.0.rc1"
5
+ # The current hanami-rspec version.
6
+ #
7
+ # @since 2.0.0
8
+ # @api public
9
+ VERSION = "2.0.0"
6
10
  end
7
11
  end
data/lib/hanami/rspec.rb CHANGED
@@ -1,10 +1,40 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "hanami/cli"
4
+ require "zeitwerk"
5
+
6
+ # @see Hanami::RSpec
7
+ # @since 2.0.0
3
8
  module Hanami
9
+ # RSpec and testing support for Hanami applications.
10
+ #
11
+ # @since 2.0.0
12
+ # @api private
4
13
  module RSpec
14
+ # @since 2.0.0
15
+ # @api private
16
+ def self.gem_loader
17
+ @gem_loader ||= Zeitwerk::Loader.new.tap do |loader|
18
+ root = File.expand_path("..", __dir__)
19
+ loader.tag = "hanami-rspec"
20
+ loader.inflector = Zeitwerk::GemInflector.new("#{root}/hanami-rspec.rb")
21
+ loader.push_dir(root)
22
+ loader.ignore(
23
+ "#{root}/hanami-rspec.rb",
24
+ "#{root}/hanami/rspec/{rake_tasks,version}.rb"
25
+ )
26
+ loader.inflector.inflect("rspec" => "RSpec")
27
+ end
28
+ end
29
+
30
+ gem_loader.setup
5
31
  require_relative "rspec/version"
6
- require_relative "rspec/error"
7
- require_relative "rspec/commands"
8
32
  require_relative "rspec/rake_tasks"
33
+
34
+ if Hanami::CLI.within_hanami_app?
35
+ Hanami::CLI.after "install", Commands::Install
36
+ Hanami::CLI.after "generate slice", Commands::Generate::Slice
37
+ Hanami::CLI.after "generate action", Commands::Generate::Action
38
+ end
9
39
  end
10
40
  end
data/lib/hanami-rspec.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "./hanami/rspec"
3
+ require_relative "hanami/rspec"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-08 00:00:00.000000000 Z
11
+ date: 2022-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hanami-cli
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0.rc1
19
+ version: '2.0'
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: 2.0.0.rc1
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.11'
33
+ version: '3.12'
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: '3.11'
40
+ version: '3.12'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '13.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: zeitwerk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.6'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.6'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rubocop
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -89,8 +103,6 @@ files:
89
103
  - lib/hanami-rspec.rb
90
104
  - lib/hanami/rspec.rb
91
105
  - lib/hanami/rspec/commands.rb
92
- - lib/hanami/rspec/error.rb
93
- - lib/hanami/rspec/generators.rb
94
106
  - lib/hanami/rspec/generators/action.rb
95
107
  - lib/hanami/rspec/generators/action/action_slice_spec.erb
96
108
  - lib/hanami/rspec/generators/action/action_spec.erb
@@ -127,11 +139,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
139
  version: 3.0.0
128
140
  required_rubygems_version: !ruby/object:Gem::Requirement
129
141
  requirements:
130
- - - ">"
142
+ - - ">="
131
143
  - !ruby/object:Gem::Version
132
- version: 1.3.1
144
+ version: '0'
133
145
  requirements: []
134
- rubygems_version: 3.3.3
146
+ rubygems_version: 3.3.7
135
147
  signing_key:
136
148
  specification_version: 4
137
149
  summary: Hanami RSpec
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hanami
4
- module RSpec
5
- class Error < StandardError
6
- end
7
- end
8
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Hanami
4
- module RSpec
5
- module Generators
6
- require_relative "./generators/slice"
7
- require_relative "./generators/action"
8
- end
9
- end
10
- end