site_prism 3.7 → 3.7.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: adf8cf393fc3ad828528159a54048e54c3c396f3743c79b10a75ea313ddd135c
4
- data.tar.gz: f2fb2ecb2f8942e3e59228994da32262a65b14a2c49f573468100f1aca799061
3
+ metadata.gz: c5deda0d9df9e83e2a66663a217cf5c434fd3ed25abae0d14778d99cd5db1c0f
4
+ data.tar.gz: 6c86aff27c00c5e91b01667f7da1f9ee6e2d33d4f95d18fbb0cfdd9fd44779c5
5
5
  SHA512:
6
- metadata.gz: aecf017750d915a617052242d8959af91ec1b154e5d394f2fa7df096649cf198052ecdf25cef22476f88682c45d71ff6c49c39262726d7d75ea33d07b751f47b
7
- data.tar.gz: e2ed8f07246c08e910fd870ecc9140f813619109b107ae6448d59f98176b84b6f50c58cc8609615e68f5ddd0e09076b3b30f906fe0647994d78ec4df7b2d1941
6
+ metadata.gz: 254398e151d390326bf085d0746391aedd247d1ed8bf47909d8fb87752b6cedd056ff32c14f324d5b33f4b922734ed01ec2467f64be59a8d97a07cf8aa002eea
7
+ data.tar.gz: 652781ebe825ed5f943ca0f8480a9b5fbd511e81e6c12d9ce95de7c3239073d4499f4165044c8c58888aeabf0cf2d9bc76e4ca6f2ae6baa6996093117577005a
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2019, The SitePrism team
1
+ Copyright (c) 2011-2021, The SitePrism team
2
2
 
3
3
  All rights reserved.
4
4
 
data/README.md CHANGED
@@ -11,17 +11,28 @@ Find the pretty documentation here: https://rdoc.info/gems/site_prism/frames
11
11
 
12
12
  Make sure to add your project/company to https://github.com/site-prism/site_prism/wiki/Who-is-using-SitePrism
13
13
 
14
+ ## Support
15
+
16
+ Support us with a monthly donation and help us continue our activities by supporting us as a [backer](https://opencollective.com/site-prism#backer)
17
+
18
+ Become a sponsor and get your logo on our README on Github with a link to your site. [How to Sponsor SitePrism?](https://opencollective.com/site-prism#sponsor)
19
+
20
+ Free Open Source software can only be maintained with the support of you. If you and/or your company find
21
+ value in SitePrism and would like to contribute financially to its ongoing maintenance and development,
22
+ then please do so. Visit the OpenCollective links above for more details.
23
+
14
24
  ## Developing / Contributing to SitePrism
15
25
 
16
26
  We love it when people want to get involved with our Open Source Project.
17
27
 
18
- We have a brief set of setup docs [HERE](https://github.com/site-prism/site_prism/blob/master/HACKING.md)
28
+ We have a brief set of setup docs [HERE](https://github.com/site-prism/site_prism/blob/main/HACKING.md)
19
29
 
20
30
  ## Supported Rubies / Browsers
21
31
 
22
- SitePrism is built and tested to work on Ruby 2.4 - 2.6. Ruby 2.3 (Now EOL), is supported but not tested against.
23
- If you are using SitePrism with Ruby 2.3 it is highly advisable to upgrade to a more modern Ruby
24
- such as 2.6 or 2.7, if for any other reason, to get a noticeable speed boost!
32
+ SitePrism is built and tested to work on Ruby 2.4 - 2.7. Ruby 2.4 (Now EOL), is supported but
33
+ this version will be removed from the Support Matrix in the coming months.
34
+ If you are using SitePrism with Ruby 2.4 it is highly advisable to upgrade to a more modern Ruby
35
+ such as 2.7, if for any other reason, to get a noticeable speed boost!
25
36
 
26
37
  SitePrism should run on all major browsers. The gem's integration tests are run on Chrome and Firefox.
27
38
 
@@ -1504,7 +1515,7 @@ the validations will be performed in the following order:
1504
1515
  **NB:** `SitePrism::Page` **used to** include a default load validation on
1505
1516
  `page.displayed?` however for v3 this has been removed. It is therefore
1506
1517
  necessary to re-define this if you want to retain the behaviour
1507
- from site_prism v2. See [UPGRADING.md](https://github.com/site-prism/site_prism/blob/master/UPGRADING.md#default-load-validations)
1518
+ from site_prism v2. See [UPGRADING.md](https://github.com/site-prism/site_prism/blob/main/UPGRADING.md#default-load-validations)
1508
1519
  for more info on this.
1509
1520
 
1510
1521
  ## Using Capybara Query Options
data/lib/site_prism.rb CHANGED
@@ -3,6 +3,8 @@
3
3
  require 'site_prism/error'
4
4
  require 'addressable/template'
5
5
 
6
+ # [SitePrism] namespace
7
+ # We autoload our files underneath here to provide a slightly more optimal load solution
6
8
  module SitePrism
7
9
  autoload :AddressableUrlMatcher, 'site_prism/addressable_url_matcher'
8
10
  autoload :DSL, 'site_prism/dsl'
@@ -4,6 +4,10 @@ require 'digest'
4
4
  require 'base64'
5
5
 
6
6
  module SitePrism
7
+ # [SitePrism::AddressableUrlMatcher]
8
+ # Used in a couple of places to allow users to ...
9
+ # Specify patterns for loading webpages
10
+ # Pass in hashable args or query parameters for loading dynamic pages
7
11
  class AddressableUrlMatcher
8
12
  attr_reader :pattern
9
13
 
@@ -43,12 +47,10 @@ module SitePrism
43
47
  def all_expected_mappings_match?(expected_mappings, actual_mappings)
44
48
  expected_mappings.all? do |key, expected_value|
45
49
  actual_value = actual_mappings[key.to_s]
46
- if expected_value.is_a?(Numeric)
47
- actual_value == expected_value.to_s
48
- elsif expected_value.is_a?(Regexp)
49
- actual_value.match(expected_value)
50
- else
51
- expected_value == actual_value
50
+ case expected_value
51
+ when Numeric; then actual_value == expected_value.to_s
52
+ when Regexp; then actual_value.match(expected_value)
53
+ else expected_value == actual_value
52
54
  end
53
55
  end
54
56
  end
@@ -1,8 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
+ # [SitePrism::Deprecator]
4
5
  class Deprecator
5
6
  class << self
7
+ # @return SitePrism.logger.warn(msg)
8
+ # Tells the user that they are using old functionality, which needs removing in the
9
+ # next major version
6
10
  def deprecate(old, new = nil)
7
11
  if new
8
12
  warn("#{old} is being deprecated and should no longer be used. Use #{new} instead.")
@@ -13,6 +17,13 @@ module SitePrism
13
17
  warn("#{old} will be removed in SitePrism v4. You have been warned!")
14
18
  end
15
19
 
20
+ # @return SitePrism.logger.debug(msg)
21
+ # Tells the user that they are using functionality which is non-optimal
22
+ # The functionality should usually provide a reason for it being poor, as well as an
23
+ # optional way of upgrading to something different
24
+ #
25
+ # NB: As this is bubbled up at debug level, often users will not see this. So it will
26
+ # never be a candidate for removal directly
16
27
  def soft_deprecate(old, reason, new = nil)
17
28
  debug("The #{old} method is changing, as is SitePrism, and is now configurable.")
18
29
  debug("REASON: #{reason}.")
@@ -1,6 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
+ # [SitePrism::DSL]
5
+ #
6
+ # This is the core Module Namespace for all of the public-facing DSL methods
7
+ # such as `element`. The code here is designed to be used through the defining
8
+ # of said items, and not to be instantiated directly.
9
+ #
10
+ # The whole package here can be thought of as [@api private]
4
11
  module DSL
5
12
  def self.included(klass)
6
13
  klass.extend ClassMethods
@@ -32,11 +39,6 @@ module SitePrism
32
39
  page.has_no_selector?(*find_args, **kwargs)
33
40
  end
34
41
 
35
- # The default waiting time set by Capybara's configuration settings.
36
- def wait_time
37
- Capybara.default_max_wait_time
38
- end
39
-
40
42
  # Prevent users from calling methods with blocks when they shouldn't be.
41
43
  #
42
44
  # Example (Triggering error):
@@ -92,21 +94,29 @@ module SitePrism
92
94
  #
93
95
  # If the hash is empty, then the hash is omitted from the payload sent
94
96
  # to Capybara, and the find / runtime arguments are sent alone.
97
+ #
98
+ # NB: If the +wait+ key is present in the options hash, even as false or 0, It will
99
+ # be set as the user-supplied value (So user error can be the cause for issues).
95
100
  def recombine_args(find_args, runtime_args, options)
96
101
  options.merge!(find_args.pop) if find_args.last.is_a? Hash
97
102
  options.merge!(runtime_args.pop) if runtime_args.last.is_a? Hash
98
- options[:wait] = wait_time unless wait_key_present?(options)
99
- end
100
-
101
- # Detect if the +wait+ key is present in the options hash.
102
- # Note that setting it to to false or 0, still will return true here.
103
- def wait_key_present?(options)
104
- options.key?(:wait)
103
+ options[:wait] = Capybara.default_max_wait_time unless options.key?(:wait)
105
104
  end
106
105
 
106
+ # SitePrism::DSL::ClassMethods
107
+ # This exposes all of the DSL definitions users will use when generating
108
+ # their POM classes.
109
+ #
110
+ # Many of these methods will be used in-line to allow users to generate a multitude of
111
+ # methods and locators for finding elements / sections on a page or section of a page
107
112
  module ClassMethods
108
113
  attr_reader :expected_items
109
114
 
115
+ # Creates an instance of a SitePrism Element - This will create several methods designed to
116
+ # Locate the element -> @return [Capybara::Node::Element]
117
+ # Check the elements presence or non-presence -> @return [Boolean]
118
+ # Wait for the elements to be present or not -> @return [TrueClass, SitePrism::Error]
119
+ # Validate certain properties about the element
110
120
  def element(name, *find_args)
111
121
  SitePrism::Deprecator.deprecate('Passing a block to :element') if block_given?
112
122
  build(:element, name, *find_args) do
@@ -118,6 +128,11 @@ module SitePrism
118
128
  end
119
129
  end
120
130
 
131
+ # Creates a enumerable instance of a SitePrism Element - This will create several methods designed to
132
+ # Locate the enumerable element -> @return [Capybara::Result]
133
+ # Check the elements presence or non-presence -> @return [Boolean]
134
+ # Wait for the elements to be present or not -> @return [TrueClass, SitePrism::Error]
135
+ # Validate certain properties about the elements
121
136
  def elements(name, *find_args)
122
137
  SitePrism::Deprecator.deprecate('Passing a block to :elements') if block_given?
123
138
  build(:elements, name, *find_args) do
@@ -129,10 +144,18 @@ module SitePrism
129
144
  end
130
145
  end
131
146
 
147
+ # Sets the `expected_items` iVar on a class. This property is used in conjunction with
148
+ # `all_there?` to provide a way of granularising the check made to only interrogate a sub-set
149
+ # of DSL defined items
132
150
  def expected_elements(*elements)
133
151
  @expected_items = elements
134
152
  end
135
153
 
154
+ # Creates an instance of a SitePrism Section - This will create several methods designed to
155
+ # Locate the section -> @return [SitePrism::Section]
156
+ # Check the section presence or non-presence -> @return [Boolean]
157
+ # Wait for the section to be present or not -> @return [TrueClass, SitePrism::Error]
158
+ # Validate certain properties about the section
136
159
  def section(name, *args, &block)
137
160
  section_class, find_args = extract_section_options(args, &block)
138
161
  build(:section, name, *find_args) do
@@ -144,6 +167,11 @@ module SitePrism
144
167
  end
145
168
  end
146
169
 
170
+ # Creates an enumerable instance of a SitePrism Section - This will create several methods designed to
171
+ # Locate the sections -> @return [Array]
172
+ # Check the sections presence or non-presence -> @return [Boolean]
173
+ # Wait for the sections to be present or not -> @return [TrueClass, SitePrism::Error]
174
+ # Validate certain properties about the section
147
175
  def sections(name, *args, &block)
148
176
  section_class, find_args = extract_section_options(args, &block)
149
177
  build(:sections, name, *find_args) do
@@ -170,11 +198,9 @@ module SitePrism
170
198
  end
171
199
 
172
200
  def mapped_items(legacy: true)
173
- if legacy
174
- old_mapped_items
175
- else
176
- new_mapped_items
177
- end
201
+ return old_mapped_items if legacy
202
+
203
+ new_mapped_items
178
204
  end
179
205
 
180
206
  private
@@ -189,13 +215,7 @@ module SitePrism
189
215
  end
190
216
 
191
217
  def new_mapped_items
192
- @new_mapped_items ||= {
193
- element: [],
194
- elements: [],
195
- section: [],
196
- sections: [],
197
- iframe: []
198
- }
218
+ @new_mapped_items ||= { element: [], elements: [], section: [], sections: [], iframe: [] }
199
219
  end
200
220
 
201
221
  def build(type, name, *find_args)
@@ -222,11 +242,9 @@ module SitePrism
222
242
  end
223
243
 
224
244
  def create_helper_method(proposed_method_name, *find_args)
225
- if find_args.empty?
226
- create_error_method(proposed_method_name)
227
- else
228
- yield
229
- end
245
+ return create_error_method(proposed_method_name) if find_args.empty?
246
+
247
+ yield
230
248
  end
231
249
 
232
250
  def create_existence_checker(element_name, *find_args)
@@ -275,6 +293,10 @@ module SitePrism
275
293
 
276
294
  def create_error_method(name)
277
295
  SitePrism.logger.error("#{name} has come from an item with no locators.")
296
+ SitePrism::Deprecator.soft_deprecate(
297
+ 'DSL definition with no find_args',
298
+ 'All DSL elements should have find_args'
299
+ )
278
300
  define_method(name) { raise SitePrism::InvalidElementError }
279
301
  end
280
302
 
@@ -310,7 +332,7 @@ module SitePrism
310
332
  def extract_section_options(args, &block)
311
333
  if args.first.is_a?(Class)
312
334
  klass = args.shift
313
- section_class = klass if klass.ancestors.include?(SitePrism::Section)
335
+ section_class = klass if klass <= SitePrism::Section
314
336
  end
315
337
 
316
338
  section_class = deduce_section_class(section_class, &block)
@@ -323,20 +345,23 @@ module SitePrism
323
345
  klass = Class.new(klass || SitePrism::Section, &block) if block_given?
324
346
  return klass if klass
325
347
 
326
- raise ArgumentError, "You should provide descendant of \
327
- SitePrism::Section class or/and a block as the second argument."
348
+ raise ArgumentError, 'You should provide descendant of SitePrism::Section class or/and a block as the second argument.'
328
349
  end
329
350
 
330
351
  def deduce_search_arguments(section_class, args)
331
352
  extract_search_arguments(args) ||
332
353
  extract_search_arguments(section_class.default_search_arguments) ||
333
- raise(ArgumentError, "You should provide search arguments \
334
- in section creation or set_default_search_arguments within section class")
354
+ invalidate_search_arguments!
335
355
  end
336
356
 
337
357
  def extract_search_arguments(args)
338
358
  args if args && !args.empty?
339
359
  end
360
+
361
+ def invalidate_search_arguments!
362
+ SitePrism.logger.error('Could not deduce search_arguments')
363
+ raise(ArgumentError, 'search arguments are needed in `section` definition or alternatively use `set_default_search_arguments`')
364
+ end
340
365
  end
341
366
  end
342
367
  end
@@ -1,6 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
+ # [SitePrism::ElementChecker]
5
+ #
6
+ # This allows users to run `#all_there?` checks on an instance.
7
+ #
8
+ # NB: This functionality is being removed in v4 in favour of the all_there gem
4
9
  module ElementChecker
5
10
  # Runnable in the scope of any SitePrism::Page or Section.
6
11
  # Returns +true+ when "every item" that is being checked is
@@ -21,10 +26,9 @@ module SitePrism
21
26
  # Override: 'one' => Perform one recursive dive into all section/sections
22
27
  # items and call #all_there? on all of those items too.
23
28
  def all_there?(recursion: :none)
24
- if recursion == :none
25
- elements_to_check.all? { |name| there?(name) }
26
- elsif recursion == :one
27
- all_there_with_recursion
29
+ case recursion
30
+ when :none; then elements_to_check.all? { |name| there?(name) }
31
+ when :one; then all_there_with_recursion
28
32
  else
29
33
  SitePrism.logger.debug("Input value '#{recursion}'. Valid values are :none or :one.")
30
34
  SitePrism.logger.error('Invalid recursion setting, Will not run #all_there?.')
@@ -1,6 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
+ # [SitePrism::Loadable]
5
+ #
6
+ # SitePrism Loadable's are defined as checks or waiters which "must" pass before
7
+ # the rest of the loading logic can be performed on a class or section.
8
+ #
9
+ # Loadable's are primarily used with the `#load` method which will auto-execute them all
10
+ # in their defined order. But they can be used dynamically wherever desired.
4
11
  module Loadable
5
12
  module ClassMethods
6
13
  # The list of load_validations.
@@ -66,11 +66,11 @@ module SitePrism
66
66
  raise SitePrism::NoUrlMatcherForPageError unless url_matcher
67
67
 
68
68
  expected_mappings = args.last.is_a?(::Hash) ? args.pop : {}
69
- seconds = args&.first || wait_time
69
+ seconds = args&.first || Capybara.default_max_wait_time
70
70
  Waiter.wait_until_true(seconds) { url_matches?(expected_mappings) }
71
71
  end
72
72
 
73
- def url_matches(seconds = wait_time)
73
+ def url_matches(seconds = Capybara.default_max_wait_time)
74
74
  return unless displayed?(seconds)
75
75
  return regexp_backed_matches if url_matcher.is_a?(Regexp)
76
76
 
@@ -19,9 +19,7 @@ module SitePrism
19
19
  RSpec::Matchers.define(matcher) do |*args|
20
20
  match { |actual| actual.public_send(object_method, *args) }
21
21
  match_when_negated do |actual|
22
- if actual.respond_to?(negated_object_method)
23
- return actual.public_send(negated_object_method, *args)
24
- end
22
+ return actual.public_send(negated_object_method, *args) if actual.respond_to?(negated_object_method)
25
23
 
26
24
  SitePrism.logger.debug(warning)
27
25
  !actual.public_send(object_method, *args)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
- VERSION = '3.7'
4
+ VERSION = '3.7.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: site_prism
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.7'
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Hill
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-10-15 00:00:00.000000000 Z
12
+ date: 2021-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -65,14 +65,14 @@ dependencies:
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.1'
68
+ version: '4.0'
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.1'
75
+ version: '4.0'
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: pry-byebug
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -91,72 +91,72 @@ dependencies:
91
91
  name: rake
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '12.3'
96
+ version: '13.0'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '12.3'
103
+ version: '13.0'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rspec
106
106
  requirement: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.8'
110
+ version: '3.9'
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '3.8'
117
+ version: '3.9'
118
118
  - !ruby/object:Gem::Dependency
119
119
  name: rubocop
120
120
  requirement: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.83.0
124
+ version: 0.90.0
125
125
  type: :development
126
126
  prerelease: false
127
127
  version_requirements: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.83.0
131
+ version: 0.90.0
132
132
  - !ruby/object:Gem::Dependency
133
133
  name: rubocop-performance
134
134
  requirement: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 1.5.1
138
+ version: 1.8.1
139
139
  type: :development
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.5.1
145
+ version: 1.8.1
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: rubocop-rspec
148
148
  requirement: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.33.0
152
+ version: 1.38.0
153
153
  type: :development
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 1.33.0
159
+ version: 1.38.0
160
160
  - !ruby/object:Gem::Dependency
161
161
  name: selenium-webdriver
162
162
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +197,14 @@ dependencies:
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '4.1'
200
+ version: '4.3'
201
201
  type: :development
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: '4.1'
207
+ version: '4.3'
208
208
  description: SitePrism gives you a simple, clean and semantic DSL for describing your
209
209
  site. SitePrism implements the Page Object Model pattern on top of Capybara.
210
210
  email:
@@ -236,7 +236,7 @@ licenses:
236
236
  - BSD-3-Clause
237
237
  metadata:
238
238
  bug_tracker_uri: https://github.com/site-prism/site_prism/issues
239
- changelog_uri: https://github.com/site-prism/site_prism/blob/master/CHANGELOG.md
239
+ changelog_uri: https://github.com/site-prism/site_prism/blob/main/CHANGELOG.md
240
240
  source_code_uri: https://github.com/site-prism/site_prism
241
241
  post_install_message:
242
242
  rdoc_options: []
@@ -253,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
253
  - !ruby/object:Gem::Version
254
254
  version: '0'
255
255
  requirements: []
256
- rubygems_version: 3.0.6
256
+ rubygems_version: 3.0.8
257
257
  signing_key:
258
258
  specification_version: 4
259
259
  summary: A Page Object Model DSL for Capybara