ergomentum_rspec 1.4.0 → 2.0.1

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: b0aceca6381f8105b364a83caee6d5cf65c3c2ad4d4fe0d5a022d942e96f690a
4
- data.tar.gz: 95cfae63321d57406a4dcacf3c895e746fb6d5597c143842ddc0bb4fb77357c1
3
+ metadata.gz: d14e42a9c3051c3b74752e2ca2c35b893921a7053f3489e0bea7fe7822102ccf
4
+ data.tar.gz: 4428723d72491fd75eef3633c1f7c42bcccf9137ee6b11ea2a14c2a30e821fa4
5
5
  SHA512:
6
- metadata.gz: f5c98092e6abc94bb2ce6e52df62ee9c80a0bb0036ada8ca01bbfa2647867e76541c39a6440acd29f4a9af3006653abd1b2497ad4c70d28834765cc0e7c88242
7
- data.tar.gz: 04dfd4292cc2e37f81ad2846c47cf211a10f78fc5896691659f1c6cf26a54b1946285f4be2fc7845f96ba68672f66257d8e69693fa9712ddd987689b963ee6bf
6
+ metadata.gz: ee7cdcf3944e02b9906cc443b32f218d0810656b5e9f951c603e39933802768237f96502336e53995ebc3df330183eae575c2db13f628696fdf5169240921b31
7
+ data.tar.gz: 29513bc1458390f7b8a6325dbdd218af5d649c1330268274ef574fea228a009269a32fe3e222f40c776d43bd3c82d59288d50a4700324bafd55acb46beba85a9
@@ -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| # rubocop:disable Metrics/BlockLength
6
6
  spec.name = "ergomentum_rspec"
7
7
  spec.version = ErgomentumRspec::VERSION
8
8
  spec.authors = ["Ergomentum"]
@@ -18,14 +18,19 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
  spec.required_ruby_version = ">= 3.0.1"
20
20
 
21
+ spec.metadata["homepage_uri"] = spec.homepage
22
+ spec.metadata["source_code_uri"] = "https://github.com/ergomentum/ergomentum_rspec/"
23
+ spec.metadata["changelog_uri"] = "https://github.com/ergomentum/ergomentum_rspec/blob/main/CHANGELOG.md"
24
+
25
+ spec.add_dependency "activemodel", "~> 7.0"
26
+ spec.add_dependency "activesupport", "~> 7.0"
27
+ spec.add_dependency "allocation_stats", "~> 0.1.5"
28
+ spec.add_dependency "rspec", "~> 3.9"
29
+
21
30
  spec.add_development_dependency "byebug", "~> 11.1.3"
22
- spec.add_development_dependency "ergomentum_rubocop", "~> 0.4.0"
31
+ spec.add_development_dependency "ergomentum_rubocop", "~> 0.7.0"
23
32
  spec.add_development_dependency "rake", "~> 13.0.1"
24
- spec.add_development_dependency "rspec_junit_formatter", "~> 0.4.1"
33
+ spec.add_development_dependency "rspec_junit_formatter", "~> 0.5.1"
25
34
  spec.add_development_dependency "simplecov", "~> 0.21.2"
26
35
  spec.add_development_dependency "test-prof", "~> 1.0.2"
27
- spec.add_dependency "activemodel", "~> 6.0"
28
- spec.add_dependency "activesupport", "~> 6.0"
29
- spec.add_dependency "allocation_stats", "~> 0.1.5"
30
- spec.add_dependency "rspec", "~> 3.9"
31
36
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ErgomentumRspec
4
+ module Helpers
5
+ class EnvVarMockService
6
+ def self.instance
7
+ @instance ||= new
8
+ end
9
+
10
+ def initialize
11
+ @original_env_values = {}
12
+ end
13
+
14
+ def mock_environment_variables(env_hash)
15
+ env_hash.each do |key, value|
16
+ remember_original_env_value(key)
17
+ ENV[key] = value
18
+ end
19
+ end
20
+
21
+ def restore_original_env_vars
22
+ @original_env_values.each do |key, value|
23
+ ENV[key] = value
24
+ end
25
+ @original_env_values = {}
26
+ end
27
+
28
+ private
29
+
30
+ def remember_original_env_value(key)
31
+ return if @original_env_values.key?(key)
32
+
33
+ @original_env_values[key] = ENV[key]
34
+ end
35
+ end
36
+ end
37
+ end
@@ -3,13 +3,17 @@
3
3
  module ErgomentumRspec
4
4
  module Helpers
5
5
  module Environment
6
- def mock_environment_variables(options)
7
- stub_const("ENV", ENV.to_h.merge(options))
6
+ def mock_environment_variables(env_hash)
7
+ # Using stub_const("ENV", ENV.to_h.merge(env_hash)) as simple solution does not work when using cuprite
8
+ # in feature specs. Something seems to rely on the concrete implementation of ENV.
9
+ # When we stub the const ENV with a Hash in such feature specs the whole ruby environment crashes.
10
+ EnvVarMockService.instance.mock_environment_variables(env_hash)
8
11
  end
9
12
  end
10
13
 
11
14
  RSpec.configure do |config|
12
15
  config.include Environment
16
+ config.after { EnvVarMockService.instance.restore_original_env_vars }
13
17
  end
14
18
  end
15
19
  end
@@ -34,7 +34,7 @@ module ErgomentumRspec
34
34
  true
35
35
  else
36
36
  @message = "expecting error message '#{@expected_error_message}' for invalid value '#{@value}' but got "\
37
- "'#{model.errors.messages[:some_attribute].join(', ')}'"
37
+ "'#{model.errors.messages[:some_attribute].join(', ')}'"
38
38
  false
39
39
  end
40
40
  end
@@ -75,14 +75,14 @@ module ErgomentumRspec
75
75
 
76
76
  def failure_message
77
77
  "expected #{@message}#{@expected} objects to be allocated; "\
78
- "got #{@trace.new_allocations.size}:\n\n"\
79
- "#{@trace.allocations(alias_paths: true).group_by(:sourcefile, :sourceline, :class).to_text}"
78
+ "got #{@trace.new_allocations.size}:\n\n"\
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
83
  "expected not #{@message}#{@expected} objects to be allocated; "\
84
- "got #{@trace.new_allocations.size}:\n\n"\
85
- "#{@trace.allocations(alias_paths: true).group_by(:sourcefile, :sourceline, :class).to_text}"
84
+ "got #{@trace.new_allocations.size}:\n\n"\
85
+ "#{@trace.allocations(alias_paths: true).group_by(:sourcefile, :sourceline, :class).to_text}"
86
86
  end
87
87
 
88
88
  def description
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ErgomentumRspec
4
- VERSION = "1.4.0"
4
+ VERSION = "2.0.1"
5
5
  end
@@ -6,6 +6,7 @@ require "active_support/inflector"
6
6
  require "rspec"
7
7
  require "active_model"
8
8
  require_relative "ergomentum_rspec/version"
9
+ require_relative "ergomentum_rspec/helpers/env_var_mock_service"
9
10
  require_relative "ergomentum_rspec/helpers/environment"
10
11
  require_relative "ergomentum_rspec/helpers/fixture"
11
12
  require_relative "ergomentum_rspec/matchers/active_model"
metadata CHANGED
@@ -1,155 +1,155 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ergomentum_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ergomentum
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-21 00:00:00.000000000 Z
11
+ date: 2022-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: byebug
14
+ name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 11.1.3
20
- type: :development
19
+ version: '7.0'
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: 11.1.3
26
+ version: '7.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: ergomentum_rubocop
28
+ name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
34
- type: :development
33
+ version: '7.0'
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: 0.4.0
40
+ version: '7.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: allocation_stats
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 13.0.1
48
- type: :development
47
+ version: 0.1.5
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 13.0.1
54
+ version: 0.1.5
55
55
  - !ruby/object:Gem::Dependency
56
- name: rspec_junit_formatter
56
+ name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.4.1
62
- type: :development
61
+ version: '3.9'
62
+ type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.4.1
68
+ version: '3.9'
69
69
  - !ruby/object:Gem::Dependency
70
- name: simplecov
70
+ name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.21.2
75
+ version: 11.1.3
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.21.2
82
+ version: 11.1.3
83
83
  - !ruby/object:Gem::Dependency
84
- name: test-prof
84
+ name: ergomentum_rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.0.2
89
+ version: 0.7.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.0.2
96
+ version: 0.7.0
97
97
  - !ruby/object:Gem::Dependency
98
- name: activemodel
98
+ name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '6.0'
104
- type: :runtime
103
+ version: 13.0.1
104
+ type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '6.0'
110
+ version: 13.0.1
111
111
  - !ruby/object:Gem::Dependency
112
- name: activesupport
112
+ name: rspec_junit_formatter
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '6.0'
118
- type: :runtime
117
+ version: 0.5.1
118
+ type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '6.0'
124
+ version: 0.5.1
125
125
  - !ruby/object:Gem::Dependency
126
- name: allocation_stats
126
+ name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.5
132
- type: :runtime
131
+ version: 0.21.2
132
+ type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.5
138
+ version: 0.21.2
139
139
  - !ruby/object:Gem::Dependency
140
- name: rspec
140
+ name: test-prof
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '3.9'
146
- type: :runtime
145
+ version: 1.0.2
146
+ type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '3.9'
152
+ version: 1.0.2
153
153
  description: Regular used rspec matchers not found somewhere else.
154
154
  email:
155
155
  - info@ergomentum.de
@@ -163,6 +163,7 @@ files:
163
163
  - bin/setup
164
164
  - ergomentum_rspec.gemspec
165
165
  - lib/ergomentum_rspec.rb
166
+ - lib/ergomentum_rspec/helpers/env_var_mock_service.rb
166
167
  - lib/ergomentum_rspec/helpers/environment.rb
167
168
  - lib/ergomentum_rspec/helpers/fixture.rb
168
169
  - lib/ergomentum_rspec/matchers/active_model.rb
@@ -182,7 +183,10 @@ files:
182
183
  homepage: https://www.ergomentum.de/
183
184
  licenses:
184
185
  - Nonstandard
185
- metadata: {}
186
+ metadata:
187
+ homepage_uri: https://www.ergomentum.de/
188
+ source_code_uri: https://github.com/ergomentum/ergomentum_rspec/
189
+ changelog_uri: https://github.com/ergomentum/ergomentum_rspec/blob/main/CHANGELOG.md
186
190
  post_install_message:
187
191
  rdoc_options: []
188
192
  require_paths: