ergomentum_rspec 2.0.0 → 3.1.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 +56 -0
- data/Gemfile +6 -0
- data/README.md +18 -13
- data/ergomentum_rspec.gemspec +6 -12
- data/lib/ergomentum_rspec/helpers/env_var_mock_service.rb +1 -1
- data/lib/ergomentum_rspec/helpers/fixture.rb +2 -2
- data/lib/ergomentum_rspec/matchers/active_model/be_invalid_for.rb +1 -1
- data/lib/ergomentum_rspec/matchers/performance/allocate_objects.rb +4 -4
- data/lib/ergomentum_rspec/version.rb +1 -1
- metadata +15 -100
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 57880f49dd08016bd27c9ae620e5c487ba2259f394726791d93ce2eb338a6b35
|
|
4
|
+
data.tar.gz: 3eaf8da5d3ac4054480064e8d301f07f75e246b41d2d11d3e27c51cc0d2a598e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b70398d88d1a618ea76ebe42cc1c4fdb6e895025cb83ee49772a9c7aa9edf3260867a6a6eeafd2bbf46ee0d678613bb3673e67e776b3f93db494a767003f5c76
|
|
7
|
+
data.tar.gz: b12f97f74b1c5a7439271c1c88a61c573c2ce3c6bf9e9a336c3118c8f62360b3a28a742d269e688601d318530d0f21e5b5533f0472cc18e62690d508573941f9
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [3.1.0] - 2026-10-27
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Development now targets Ruby 4.0.5 (`.tool-versions`); the gem itself still supports
|
|
15
|
+
Ruby >= 3.0.1.
|
|
16
|
+
- Move development dependencies from the gemspec to the `Gemfile` and update them:
|
|
17
|
+
`ergomentum_rubocop ~> 0.18.0`, `simplecov ~> 0.22`, `rspec_junit_formatter ~> 0.8`,
|
|
18
|
+
`test-prof ~> 1.6`, `rake ~> 13.0`.
|
|
19
|
+
- Regenerate `Gemfile.lock` with Bundler 4 and resolve against Rails 8.1
|
|
20
|
+
(activesupport 8.1, rubocop 1.92).
|
|
21
|
+
- Adapt the code and specs to the current `ergomentum_rubocop` rules
|
|
22
|
+
(`Naming/PredicatePrefix`, `RSpec/DescribedClass`, `RSpec/NotToNot`, …).
|
|
23
|
+
- CI runs on GitHub Actions (`.github/workflows/ci.yml`) instead of CircleCI.
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
- CircleCI and CodeClimate configuration.
|
|
28
|
+
- `byebug` development dependency and its `require` in `spec/spec_helper.rb`
|
|
29
|
+
(Ruby ships with `debug`).
|
|
30
|
+
- Dependabot configuration (Renovate handles dependency updates).
|
|
31
|
+
|
|
32
|
+
## [3.0.1] - 2025-10-17
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Relax runtime dependencies so the gem works with Rails 8: `activemodel` and
|
|
37
|
+
`activesupport` `~> 7.0` → `>= 7.0`, `rspec` `~> 3.9` → `>= 3.9`.
|
|
38
|
+
|
|
39
|
+
## [3.0.0] - 2024-08-16
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- **Breaking:** rename the fixture helper `fixture` to `fixture_path`
|
|
44
|
+
(`ErgomentumRspec::Helpers::Fixture`).
|
|
45
|
+
|
|
46
|
+
## [2.0.1] - 2022-01-14
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- Update dependencies to be ready for Rails 7.
|
|
51
|
+
|
|
52
|
+
[Unreleased]: https://github.com/ergomentum/ergomentum_rspec/compare/v3.1.0...HEAD
|
|
53
|
+
[3.1.0]: https://github.com/ergomentum/ergomentum_rspec/compare/v3.0.1...v3.1.0
|
|
54
|
+
[3.0.1]: https://github.com/ergomentum/ergomentum_rspec/compare/v3.0.0...v3.0.1
|
|
55
|
+
[3.0.0]: https://github.com/ergomentum/ergomentum_rspec/compare/v2.0.1...v3.0.0
|
|
56
|
+
[2.0.1]: https://github.com/ergomentum/ergomentum_rspec/releases/tag/v2.0.1
|
data/Gemfile
CHANGED
|
@@ -4,3 +4,9 @@ source "https://rubygems.org"
|
|
|
4
4
|
|
|
5
5
|
# Specify your gem's dependencies in ergomentum_rspec.gemspec
|
|
6
6
|
gemspec
|
|
7
|
+
|
|
8
|
+
gem "ergomentum_rubocop", "~> 0.18.0", require: false
|
|
9
|
+
gem "rake", "~> 13.0"
|
|
10
|
+
gem "rspec_junit_formatter", "~> 0.8"
|
|
11
|
+
gem "simplecov", "~> 0.22"
|
|
12
|
+
gem "test-prof", "~> 1.6"
|
data/README.md
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
# Ergomentum Rspec Matcher
|
|
2
2
|
|
|
3
|
-
[](
|
|
6
|
-
https://codeclimate.com/repos/5f9734dfabc428018c0022a0/maintainability)
|
|
7
|
-
[](
|
|
8
|
-
https://codeclimate.com/repos/5f9734dfabc428018c0022a0/test_coverage)
|
|
9
|
-
[](
|
|
10
|
-
https://circleci.com/gh/ergomentum/ergomentum_rspec)
|
|
3
|
+
[](https://github.com/ergomentum/ergomentum_rspec/actions/workflows/ci.yml)
|
|
4
|
+
[](https://badge.fury.io/rb/ergomentum_rspec)
|
|
11
5
|
|
|
12
6
|
The missing [rspec matchers](https://relishapp.com/rspec/rspec-expectations/v/3-8/docs/custom-matchers) and helpers not
|
|
13
7
|
found somewhere else.
|
|
14
8
|
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
gem "ergomentum_rspec"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bundle install
|
|
17
|
+
```
|
|
18
|
+
|
|
15
19
|
## Array matchers
|
|
16
20
|
|
|
17
21
|
See specs for examples.
|
|
@@ -34,15 +38,16 @@ See specs for examples.
|
|
|
34
38
|
## Development
|
|
35
39
|
|
|
36
40
|
Create a PR to make changes. If your change is intended to release a new gem version increment the gem version in
|
|
37
|
-
`lib/ergomentum_rspec/version.rb` ([semantic versioning](https://semver.org/)).
|
|
41
|
+
`lib/ergomentum_rspec/version.rb` ([semantic versioning](https://semver.org/)) and add an entry to `CHANGELOG.md`.
|
|
38
42
|
|
|
39
|
-
After your PR is merged into `main` the gem is
|
|
40
|
-
[
|
|
43
|
+
After your PR is merged into `main` the gem is built by GitHub Actions and published to
|
|
44
|
+
[GitHub Packages](https://github.com/ergomentum/ergomentum_rspec/packages).
|
|
41
45
|
|
|
42
|
-
Build
|
|
46
|
+
Build and publish to RubyGems (requires MFA):
|
|
43
47
|
|
|
44
48
|
```bash
|
|
45
|
-
gem build ergomentum_rspec
|
|
49
|
+
gem build ergomentum_rspec.gemspec
|
|
50
|
+
gem push ergomentum_rspec-<version>.gem
|
|
46
51
|
```
|
|
47
52
|
|
|
48
53
|
## Resources
|
data/ergomentum_rspec.gemspec
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative "lib/ergomentum_rspec/version"
|
|
4
4
|
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = "ergomentum_rspec"
|
|
7
7
|
spec.version = ErgomentumRspec::VERSION
|
|
8
8
|
spec.authors = ["Ergomentum"]
|
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
|
|
12
12
|
spec.homepage = "https://www.ergomentum.de/"
|
|
13
13
|
spec.licenses = "Nonstandard"
|
|
14
14
|
|
|
15
|
-
spec.files = Dir.glob("{bin,lib}/**/*") + %w[README.md Gemfile ergomentum_rspec.gemspec]
|
|
15
|
+
spec.files = Dir.glob("{bin,lib}/**/*") + %w[README.md CHANGELOG.md Gemfile ergomentum_rspec.gemspec]
|
|
16
16
|
spec.bindir = "exe"
|
|
17
17
|
spec.executables = spec.files.grep(%r{^exe/}, &:basename)
|
|
18
18
|
spec.require_paths = ["lib"]
|
|
@@ -21,16 +21,10 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
|
|
21
21
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
22
22
|
spec.metadata["source_code_uri"] = "https://github.com/ergomentum/ergomentum_rspec/"
|
|
23
23
|
spec.metadata["changelog_uri"] = "https://github.com/ergomentum/ergomentum_rspec/blob/main/CHANGELOG.md"
|
|
24
|
+
spec.metadata["rubygems_mfa_required"] = "true"
|
|
24
25
|
|
|
25
|
-
spec.add_dependency "activemodel", "
|
|
26
|
-
spec.add_dependency "activesupport", "
|
|
26
|
+
spec.add_dependency "activemodel", ">= 7.0"
|
|
27
|
+
spec.add_dependency "activesupport", ">= 7.0"
|
|
27
28
|
spec.add_dependency "allocation_stats", "~> 0.1.5"
|
|
28
|
-
spec.add_dependency "rspec", "
|
|
29
|
-
|
|
30
|
-
spec.add_development_dependency "byebug", "~> 11.1.3"
|
|
31
|
-
spec.add_development_dependency "ergomentum_rubocop", "~> 0.7.0"
|
|
32
|
-
spec.add_development_dependency "rake", "~> 13.0.1"
|
|
33
|
-
spec.add_development_dependency "rspec_junit_formatter", "~> 0.5.1"
|
|
34
|
-
spec.add_development_dependency "simplecov", "~> 0.21.2"
|
|
35
|
-
spec.add_development_dependency "test-prof", "~> 1.0.2"
|
|
29
|
+
spec.add_dependency "rspec", ">= 3.9"
|
|
36
30
|
end
|
|
@@ -4,10 +4,10 @@ module ErgomentumRspec
|
|
|
4
4
|
module Helpers
|
|
5
5
|
module Fixture
|
|
6
6
|
def load_fixture(relative_path)
|
|
7
|
-
File.read(
|
|
7
|
+
File.read(fixture_path(relative_path))
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
def
|
|
10
|
+
def fixture_path(relative_path)
|
|
11
11
|
fixtures_directory / relative_path
|
|
12
12
|
end
|
|
13
13
|
|
|
@@ -33,7 +33,7 @@ module ErgomentumRspec
|
|
|
33
33
|
elsif model.errors.messages[:some_attribute].include?(@expected_error_message)
|
|
34
34
|
true
|
|
35
35
|
else
|
|
36
|
-
@message = "expecting error message '#{@expected_error_message}' for invalid value '#{@value}' but got "\
|
|
36
|
+
@message = "expecting error message '#{@expected_error_message}' for invalid value '#{@value}' but got " \
|
|
37
37
|
"'#{model.errors.messages[:some_attribute].join(', ')}'"
|
|
38
38
|
false
|
|
39
39
|
end
|
|
@@ -74,14 +74,14 @@ module ErgomentumRspec
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
def failure_message
|
|
77
|
-
"expected #{@message}#{@expected} objects to be allocated; "\
|
|
78
|
-
"got #{@trace.new_allocations.size}:\n\n"\
|
|
77
|
+
"expected #{@message}#{@expected} objects to be allocated; " \
|
|
78
|
+
"got #{@trace.new_allocations.size}:\n\n" \
|
|
79
79
|
"#{@trace.allocations(alias_paths: true).group_by(:sourcefile, :sourceline, :class).to_text}"
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
def failure_message_when_negated
|
|
83
|
-
"expected not #{@message}#{@expected} objects to be allocated; "\
|
|
84
|
-
"got #{@trace.new_allocations.size}:\n\n"\
|
|
83
|
+
"expected not #{@message}#{@expected} objects to be allocated; " \
|
|
84
|
+
"got #{@trace.new_allocations.size}:\n\n" \
|
|
85
85
|
"#{@trace.allocations(alias_paths: true).group_by(:sourcefile, :sourceline, :class).to_text}"
|
|
86
86
|
end
|
|
87
87
|
|
metadata
CHANGED
|
@@ -1,43 +1,42 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ergomentum_rspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ergomentum
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activemodel
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
|
-
- - "
|
|
16
|
+
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
18
|
+
version: '7.0'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
|
-
- - "
|
|
23
|
+
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
25
|
+
version: '7.0'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: activesupport
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
|
-
- - "
|
|
30
|
+
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
32
|
+
version: '7.0'
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
|
-
- - "
|
|
37
|
+
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
39
|
+
version: '7.0'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: allocation_stats
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -56,100 +55,16 @@ dependencies:
|
|
|
56
55
|
name: rspec
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- - "
|
|
58
|
+
- - ">="
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
60
|
version: '3.9'
|
|
62
61
|
type: :runtime
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
|
-
- - "
|
|
65
|
+
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
67
|
version: '3.9'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: byebug
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: 11.1.3
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: 11.1.3
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: ergomentum_rubocop
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0.7.0
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0.7.0
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: rake
|
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
|
100
|
-
requirements:
|
|
101
|
-
- - "~>"
|
|
102
|
-
- !ruby/object:Gem::Version
|
|
103
|
-
version: 13.0.1
|
|
104
|
-
type: :development
|
|
105
|
-
prerelease: false
|
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
-
requirements:
|
|
108
|
-
- - "~>"
|
|
109
|
-
- !ruby/object:Gem::Version
|
|
110
|
-
version: 13.0.1
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rspec_junit_formatter
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - "~>"
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: 0.5.1
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - "~>"
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: 0.5.1
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: simplecov
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.21.2
|
|
132
|
-
type: :development
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.21.2
|
|
139
|
-
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: test-prof
|
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
|
142
|
-
requirements:
|
|
143
|
-
- - "~>"
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
145
|
-
version: 1.0.2
|
|
146
|
-
type: :development
|
|
147
|
-
prerelease: false
|
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
-
requirements:
|
|
150
|
-
- - "~>"
|
|
151
|
-
- !ruby/object:Gem::Version
|
|
152
|
-
version: 1.0.2
|
|
153
68
|
description: Regular used rspec matchers not found somewhere else.
|
|
154
69
|
email:
|
|
155
70
|
- info@ergomentum.de
|
|
@@ -157,6 +72,7 @@ executables: []
|
|
|
157
72
|
extensions: []
|
|
158
73
|
extra_rdoc_files: []
|
|
159
74
|
files:
|
|
75
|
+
- CHANGELOG.md
|
|
160
76
|
- Gemfile
|
|
161
77
|
- README.md
|
|
162
78
|
- bin/console
|
|
@@ -187,7 +103,7 @@ metadata:
|
|
|
187
103
|
homepage_uri: https://www.ergomentum.de/
|
|
188
104
|
source_code_uri: https://github.com/ergomentum/ergomentum_rspec/
|
|
189
105
|
changelog_uri: https://github.com/ergomentum/ergomentum_rspec/blob/main/CHANGELOG.md
|
|
190
|
-
|
|
106
|
+
rubygems_mfa_required: 'true'
|
|
191
107
|
rdoc_options: []
|
|
192
108
|
require_paths:
|
|
193
109
|
- lib
|
|
@@ -202,8 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
202
118
|
- !ruby/object:Gem::Version
|
|
203
119
|
version: '0'
|
|
204
120
|
requirements: []
|
|
205
|
-
rubygems_version:
|
|
206
|
-
signing_key:
|
|
121
|
+
rubygems_version: 4.0.10
|
|
207
122
|
specification_version: 4
|
|
208
123
|
summary: Provides regular used rspec custom matchers
|
|
209
124
|
test_files: []
|