hanami-rspec 2.0.0.rc1 → 2.0.0

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