ergomentum_rspec 2.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d14e42a9c3051c3b74752e2ca2c35b893921a7053f3489e0bea7fe7822102ccf
4
- data.tar.gz: 4428723d72491fd75eef3633c1f7c42bcccf9137ee6b11ea2a14c2a30e821fa4
3
+ metadata.gz: 57880f49dd08016bd27c9ae620e5c487ba2259f394726791d93ce2eb338a6b35
4
+ data.tar.gz: 3eaf8da5d3ac4054480064e8d301f07f75e246b41d2d11d3e27c51cc0d2a598e
5
5
  SHA512:
6
- metadata.gz: ee7cdcf3944e02b9906cc443b32f218d0810656b5e9f951c603e39933802768237f96502336e53995ebc3df330183eae575c2db13f628696fdf5169240921b31
7
- data.tar.gz: 29513bc1458390f7b8a6325dbdd218af5d649c1330268274ef574fea228a009269a32fe3e222f40c776d43bd3c82d59288d50a4700324bafd55acb46beba85a9
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
- [![Depfu](https://badges.depfu.com/badges/24f5ce37c343c844f70d9186bbe16850/count.svg)](
4
- https://depfu.com/repos/github/ergomentum/ergomentum_rspec?project_id=17277)
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/47249b4acfb1b02fdd8d/maintainability)](
6
- https://codeclimate.com/repos/5f9734dfabc428018c0022a0/maintainability)
7
- [![Test Coverage](https://api.codeclimate.com/v1/badges/47249b4acfb1b02fdd8d/test_coverage)](
8
- https://codeclimate.com/repos/5f9734dfabc428018c0022a0/test_coverage)
9
- [![CircleCI](https://circleci.com/gh/ergomentum/ergomentum_rspec.svg?style=shield&circle-token=e20239599f07aab2a009ccfd9f12a51b6e163ca7)](
10
- https://circleci.com/gh/ergomentum/ergomentum_rspec)
3
+ [![CI](https://github.com/ergomentum/ergomentum_rspec/actions/workflows/ci.yml/badge.svg)](https://github.com/ergomentum/ergomentum_rspec/actions/workflows/ci.yml)
4
+ [![Gem Version](https://badge.fury.io/rb/ergomentum_rspec.svg)](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 build by GitHub actions and deployed to
40
- [https://github.com/ergomentum/ergomentum_rspec/packages](https://github.com/ergomentum/ergomentum_rspec/packages).
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 locally:
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative "lib/ergomentum_rspec/version"
4
4
 
5
- Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
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", "~> 7.0"
26
- spec.add_dependency "activesupport", "~> 7.0"
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", "~> 3.9"
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
@@ -30,7 +30,7 @@ module ErgomentumRspec
30
30
  def remember_original_env_value(key)
31
31
  return if @original_env_values.key?(key)
32
32
 
33
- @original_env_values[key] = ENV[key]
33
+ @original_env_values[key] = ENV.fetch(key, nil)
34
34
  end
35
35
  end
36
36
  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(fixture(relative_path))
7
+ File.read(fixture_path(relative_path))
8
8
  end
9
9
 
10
- def fixture(relative_path)
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ErgomentumRspec
4
- VERSION = "2.0.1"
4
+ VERSION = "3.1.0"
5
5
  end
metadata CHANGED
@@ -1,41 +1,40 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ergomentum_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
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: 2022-01-14 00:00:00.000000000 Z
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
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
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
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
39
  version: '7.0'
41
40
  - !ruby/object:Gem::Dependency
@@ -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
- post_install_message:
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: 3.2.15
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: []