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 +4 -4
- data/CHANGELOG.md +13 -2
- data/README.md +5 -5
- data/hanami-rspec.gemspec +3 -2
- data/lib/hanami/rspec/commands.rb +15 -11
- data/lib/hanami/rspec/generators/action.rb +6 -1
- data/lib/hanami/rspec/generators/slice.rb +6 -1
- data/lib/hanami/rspec/rake_tasks.rb +0 -2
- data/lib/hanami/rspec/version.rb +5 -1
- data/lib/hanami/rspec.rb +32 -2
- data/lib/hanami-rspec.rb +1 -1
- metadata +23 -11
- data/lib/hanami/rspec/error.rb +0 -8
- data/lib/hanami/rspec/generators.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c415ba583435fbde42c2f22d266f914e012859027972579fc7eb8c98184032ac
|
4
|
+
data.tar.gz: d9aa1a97b164fdf5ccd0ed774875bb63953c22a8b3fefce822711acc499e51d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
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 [
|
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
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
33
|
-
spec.add_dependency "rspec", "~> 3.
|
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
|
-
#
|
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))
|
data/lib/hanami/rspec/version.rb
CHANGED
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
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
|
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-
|
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
|
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
|
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.
|
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.
|
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:
|
144
|
+
version: '0'
|
133
145
|
requirements: []
|
134
|
-
rubygems_version: 3.3.
|
146
|
+
rubygems_version: 3.3.7
|
135
147
|
signing_key:
|
136
148
|
specification_version: 4
|
137
149
|
summary: Hanami RSpec
|
data/lib/hanami/rspec/error.rb
DELETED