rspec-sleeping_king_studios 2.5.1 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rspec/sleeping_king_studios/matchers/base_matcher'
4
+ require 'rspec/sleeping_king_studios/matchers/core'
5
+
6
+ module RSpec::SleepingKingStudios::Matchers::Core
7
+ # Matcher for testing whether an object aliases a specified method using the
8
+ # specified other method name.
9
+ #
10
+ # @since 2.2.0
11
+ #
12
+ # @note Prior to 2.7.0, this was named AliasMethodMatcher.
13
+ class HaveAliasedMethodMatcher < RSpec::SleepingKingStudios::Matchers::BaseMatcher
14
+ # @param [String, Symbol] original_name The name of the method that is
15
+ # expected to have an alias.
16
+ def initialize(original_name)
17
+ @original_name = original_name.intern
18
+ end
19
+
20
+ # Specifies the name of the new method.
21
+ #
22
+ # @param [String, Symbol] aliased_name The method name.
23
+ #
24
+ # @return [AliasMethodMatcher] self
25
+ def as(aliased_name)
26
+ @aliased_name = aliased_name
27
+
28
+ self
29
+ end
30
+
31
+ # (see BaseMatcher#description)
32
+ def description
33
+ str = "alias :#{original_name}"
34
+
35
+ str += " as #{aliased_name.inspect}" if aliased_name
36
+
37
+ str
38
+ end
39
+
40
+ # (see BaseMatcher#failure_message)
41
+ def failure_message
42
+ message = "expected #{@actual.inspect} to alias :#{original_name}"
43
+
44
+ message += " as #{aliased_name.inspect}" if aliased_name
45
+
46
+ if @errors[:does_not_respond_to_old_method]
47
+ message += ", but did not respond to :#{original_name}"
48
+
49
+ return message
50
+ end
51
+
52
+ if @errors[:does_not_respond_to_new_method]
53
+ message += ", but did not respond to :#{aliased_name}"
54
+
55
+ return message
56
+ end
57
+
58
+ if @errors[:does_not_alias_method]
59
+ message +=
60
+ ", but :#{original_name} and :#{aliased_name} are different "\
61
+ "methods"
62
+
63
+ return message
64
+ end
65
+
66
+ message
67
+ end
68
+
69
+ # (see BaseMatcher#matches?)
70
+ def matches?(actual)
71
+ super
72
+
73
+ @errors = {}
74
+
75
+ if aliased_name.nil?
76
+ raise ArgumentError.new('must specify a new method name')
77
+ end
78
+
79
+ responds_to_methods? && aliases_method?
80
+ end
81
+
82
+ private
83
+
84
+ attr_reader :aliased_name
85
+
86
+ attr_reader :original_name
87
+
88
+ def aliases_method?
89
+ unless @actual.method(original_name) == @actual.method(aliased_name)
90
+ @errors[:does_not_alias_method] = true
91
+
92
+ return false
93
+ end
94
+
95
+ true
96
+ end
97
+
98
+ def responds_to_methods?
99
+ unless @actual.respond_to?(original_name)
100
+ @errors[:does_not_respond_to_old_method] = true
101
+
102
+ return false
103
+ end
104
+
105
+ unless @actual.respond_to?(aliased_name)
106
+ @errors[:does_not_respond_to_new_method] = true
107
+
108
+ return false
109
+ end
110
+
111
+ true
112
+ end
113
+ end
114
+ end
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module RSpec
4
4
  module SleepingKingStudios
@@ -11,31 +11,45 @@ module RSpec
11
11
  # Major version.
12
12
  MAJOR = 2
13
13
  # Minor version.
14
- MINOR = 5
14
+ MINOR = 7
15
15
  # Patch version.
16
- PATCH = 1
16
+ PATCH = 0
17
17
  # Prerelease version.
18
18
  PRERELEASE = nil
19
19
  # Build metadata.
20
20
  BUILD = nil
21
21
 
22
- # Generates the gem version string from the Version constants.
23
- #
24
- # Inlined here because dependencies may not be loaded when processing a
25
- # gemspec, which results in the user being unable to install the gem for
26
- # the first time.
27
- #
28
- # @see SleepingKingStudios::Tools::SemanticVersion#to_gem_version
29
- def self.to_gem_version
30
- str = "#{MAJOR}.#{MINOR}.#{PATCH}"
22
+ class << self
23
+ # Generates the gem version string from the Version constants.
24
+ #
25
+ # Inlined here because dependencies may not be loaded when processing a
26
+ # gemspec, which results in the user being unable to install the gem for
27
+ # the first time.
28
+ #
29
+ # @see SleepingKingStudios::Tools::SemanticVersion#to_gem_version
30
+ def to_gem_version
31
+ str = "#{MAJOR}.#{MINOR}.#{PATCH}"
31
32
 
32
- prerelease = self.const_defined?(:PRERELEASE) ? PRERELEASE : nil
33
- str << ".#{prerelease}" unless prerelease.nil? || (prerelease.respond_to?(:empty?) && prerelease.empty?)
33
+ prerelease = value_of(:PRERELEASE)
34
+ str = "#{str}.#{prerelease}" if prerelease
34
35
 
35
- build = self.const_defined?(:BUILD) ? BUILD : nil
36
- str << ".#{build}" unless build.nil? || (build.respond_to?(:empty?) && build.empty?)
36
+ build = value_of(:BUILD)
37
+ str = "#{str}.#{build}" if build
37
38
 
38
- str
39
+ str
40
+ end
41
+
42
+ private
43
+
44
+ def value_of(constant)
45
+ return nil unless const_defined?(constant)
46
+
47
+ value = const_get(constant)
48
+
49
+ return nil if value.respond_to?(:empty?) && value.empty?
50
+
51
+ value
52
+ end
39
53
  end
40
54
  end
41
55
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-sleeping_king_studios
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob "Merlin" Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-16 00:00:00.000000000 Z
11
+ date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashdiff
@@ -42,16 +42,22 @@ dependencies:
42
42
  name: sleeping_king_studios-tools
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.8.0
48
+ - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: '0.7'
50
+ version: '2'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
53
56
  - !ruby/object:Gem::Version
54
- version: '0.7'
57
+ version: 0.8.0
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '2'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: appraisal
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -98,36 +104,42 @@ dependencies:
98
104
  name: thor
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 0.19.4
104
107
  - - "~>"
105
108
  - !ruby/object:Gem::Version
106
109
  version: '0.20'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 0.19.4
107
113
  type: :development
108
114
  prerelease: false
109
115
  version_requirements: !ruby/object:Gem::Requirement
110
116
  requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 0.19.4
114
117
  - - "~>"
115
118
  - !ruby/object:Gem::Version
116
119
  version: '0.20'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 0.19.4
117
123
  - !ruby/object:Gem::Dependency
118
124
  name: sleeping_king_studios-tasks
119
125
  requirement: !ruby/object:Gem::Requirement
120
126
  requirements:
121
127
  - - "~>"
122
128
  - !ruby/object:Gem::Version
123
- version: '0.1'
129
+ version: '0.4'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 0.4.1
124
133
  type: :development
125
134
  prerelease: false
126
135
  version_requirements: !ruby/object:Gem::Requirement
127
136
  requirements:
128
137
  - - "~>"
129
138
  - !ruby/object:Gem::Version
130
- version: '0.1'
139
+ version: '0.4'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 0.4.1
131
143
  - !ruby/object:Gem::Dependency
132
144
  name: aruba
133
145
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +177,7 @@ dependencies:
165
177
  version: '3.0'
166
178
  - - "<"
167
179
  - !ruby/object:Gem::Version
168
- version: '6.0'
180
+ version: '7.0'
169
181
  type: :development
170
182
  prerelease: false
171
183
  version_requirements: !ruby/object:Gem::Requirement
@@ -175,7 +187,7 @@ dependencies:
175
187
  version: '3.0'
176
188
  - - "<"
177
189
  - !ruby/object:Gem::Version
178
- version: '6.0'
190
+ version: '7.0'
179
191
  description: |2
180
192
  A collection of RSpec patches and custom matchers. The features can be
181
193
  included individually or by category. For more information, check out the
@@ -187,6 +199,7 @@ extensions: []
187
199
  extra_rdoc_files: []
188
200
  files:
189
201
  - CHANGELOG.md
202
+ - CODE_OF_CONDUCT.md
190
203
  - DEVELOPMENT.md
191
204
  - LICENSE
192
205
  - README.md
@@ -196,11 +209,13 @@ files:
196
209
  - lib/rspec/sleeping_king_studios/concerns/all.rb
197
210
  - lib/rspec/sleeping_king_studios/concerns/example_constants.rb
198
211
  - lib/rspec/sleeping_king_studios/concerns/focus_examples.rb
212
+ - lib/rspec/sleeping_king_studios/concerns/include_contract.rb
199
213
  - lib/rspec/sleeping_king_studios/concerns/shared_example_group.rb
200
214
  - lib/rspec/sleeping_king_studios/concerns/toolbelt.rb
201
215
  - lib/rspec/sleeping_king_studios/concerns/wrap_env.rb
202
216
  - lib/rspec/sleeping_king_studios/concerns/wrap_examples.rb
203
217
  - lib/rspec/sleeping_king_studios/configuration.rb
218
+ - lib/rspec/sleeping_king_studios/contract.rb
204
219
  - lib/rspec/sleeping_king_studios/examples.rb
205
220
  - lib/rspec/sleeping_king_studios/examples/all.rb
206
221
  - lib/rspec/sleeping_king_studios/examples/property_examples.rb
@@ -241,6 +256,8 @@ files:
241
256
  - lib/rspec/sleeping_king_studios/matchers/core/deep_matcher.rb
242
257
  - lib/rspec/sleeping_king_studios/matchers/core/delegate_method.rb
243
258
  - lib/rspec/sleeping_king_studios/matchers/core/delegate_method_matcher.rb
259
+ - lib/rspec/sleeping_king_studios/matchers/core/have_aliased_method.rb
260
+ - lib/rspec/sleeping_king_studios/matchers/core/have_aliased_method_matcher.rb
244
261
  - lib/rspec/sleeping_king_studios/matchers/core/have_changed.rb
245
262
  - lib/rspec/sleeping_king_studios/matchers/core/have_changed_matcher.rb
246
263
  - lib/rspec/sleeping_king_studios/matchers/core/have_constant.rb
@@ -265,7 +282,9 @@ files:
265
282
  homepage: http://sleepingkingstudios.com
266
283
  licenses:
267
284
  - MIT
268
- metadata: {}
285
+ metadata:
286
+ bug_tracker_uri: https://github.com/sleepingkingstudios/rspec-sleeping_king_studios/issues
287
+ source_code_uri: https://github.com/sleepingkingstudios/rspec-sleeping_king_studios
269
288
  post_install_message:
270
289
  rdoc_options: []
271
290
  require_paths:
@@ -281,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
300
  - !ruby/object:Gem::Version
282
301
  version: '0'
283
302
  requirements: []
284
- rubygems_version: 3.0.3
303
+ rubygems_version: 3.1.2
285
304
  signing_key:
286
305
  specification_version: 4
287
306
  summary: A collection of RSpec patches and custom matchers.