site_prism 3.7 → 3.7.1
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/LICENSE.md +1 -1
- data/README.md +16 -5
- data/lib/site_prism.rb +2 -0
- data/lib/site_prism/addressable_url_matcher.rb +8 -6
- data/lib/site_prism/deprecator.rb +11 -0
- data/lib/site_prism/dsl.rb +59 -34
- data/lib/site_prism/element_checker.rb +8 -4
- data/lib/site_prism/loadable.rb +7 -0
- data/lib/site_prism/page.rb +2 -2
- data/lib/site_prism/rspec_matchers.rb +1 -3
- data/lib/site_prism/version.rb +1 -1
- metadata +20 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5deda0d9df9e83e2a66663a217cf5c434fd3ed25abae0d14778d99cd5db1c0f
|
4
|
+
data.tar.gz: 6c86aff27c00c5e91b01667f7da1f9ee6e2d33d4f95d18fbb0cfdd9fd44779c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 254398e151d390326bf085d0746391aedd247d1ed8bf47909d8fb87752b6cedd056ff32c14f324d5b33f4b922734ed01ec2467f64be59a8d97a07cf8aa002eea
|
7
|
+
data.tar.gz: 652781ebe825ed5f943ca0f8480a9b5fbd511e81e6c12d9ce95de7c3239073d4499f4165044c8c58888aeabf0cf2d9bc76e4ca6f2ae6baa6996093117577005a
|
data/LICENSE.md
CHANGED
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/
|
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.
|
23
|
-
|
24
|
-
|
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/
|
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
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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}.")
|
data/lib/site_prism/dsl.rb
CHANGED
@@ -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] =
|
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
|
-
|
175
|
-
|
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
|
-
|
227
|
-
|
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
|
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,
|
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
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
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?.')
|
data/lib/site_prism/loadable.rb
CHANGED
@@ -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.
|
data/lib/site_prism/page.rb
CHANGED
@@ -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 ||
|
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 =
|
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)
|
data/lib/site_prism/version.rb
CHANGED
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:
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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/
|
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.
|
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
|