site_prism 3.7.2 → 3.7.3

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: 177884e3ba39ca8a9e1fa0025274c31dd1d765adbba6983f86150feeef4fa301
4
- data.tar.gz: 0ecc59ece70808dbb774128d1cf5e7f3fcdaa4d449b27be29f403633b3535c24
3
+ metadata.gz: 77096cbc91dc0e53b17b8f1af09415d52be9f2859333874869af7a4b07f3e488
4
+ data.tar.gz: 3562488e2a5122a6e71a43f3f042c6c18c6b97d89ee4bee8cf39efdbbd7963e3
5
5
  SHA512:
6
- metadata.gz: 5f402e20e4888f02d4c7695289239c1b4dfca44b47e90029699efe4ec050b2d173f78c1e427f1dbd0647c9b8238397f1c34d22697601b5f36689266f942729b7
7
- data.tar.gz: 549ac4b1187a96807c34475961999bcfaa6761fceba70cf13bdcedfdce13c86b23aad1fa700bcda122841a057bd258023f26ffc270194a8258d98756b3bf294c
6
+ metadata.gz: 5a97080c7a80c18b4fee6e4673957a16fe9a97a98d87b2cf4d4add2ce76500b326008684626757c16a090bc8a82a3363bd85d49b2b266815bcec49897f82b394
7
+ data.tar.gz: 22b3dc450956bbfbc05e0950815395c3cc4f44b9c5c8d28553cf784b8f95872f604ba177dab2a1b75c88f386f4a86544ee2fc46f70e1cf0c771b5a0bf0123cc3
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SitePrism
2
2
  [![Gem Version](https://badge.fury.io/rb/site_prism.svg)](https://badge.fury.io/rb/site_prism)
3
- [![Build Status](https://travis-ci.com/site-prism/site_prism.png)](https://travis-ci.com/site-prism/site_prism)
3
+ [![Build Status](https://github.com/site-prism/site_prism/actions/workflows/ci.yml/badge.svg)](https://github.com/site-prism/site_prism/actions/workflows/ci.yml)
4
4
 
5
5
  _A Page Object Model DSL for Capybara_
6
6
 
@@ -128,7 +128,7 @@ module SitePrism
128
128
  end
129
129
 
130
130
  # If a slug begins with non-alpha characters, it may denote the start of
131
- # a new component (e.g. query or fragment). We emit thie prefix as part of
131
+ # a new component (e.g. query or fragment). We emit this prefix as part of
132
132
  # the substituted slug so that Addressable's URI parser can see it as such.
133
133
  def slug_prefix(slug)
134
134
  prefix = slug.match(/\A{([^A-Za-z]+)/)
@@ -15,28 +15,28 @@ module SitePrism
15
15
 
16
16
  private
17
17
 
18
- # Call `find` inside context set on page/section
18
+ # Call `find` inside `to_capybara_node` context (Either Capybara::Session or Capybara::Node::Element)
19
19
  def _find(*find_args)
20
20
  kwargs = find_args.pop
21
- page.find(*find_args, **kwargs)
21
+ to_capybara_node.find(*find_args, **kwargs)
22
22
  end
23
23
 
24
- # Call `all` inside context set on page/section
24
+ # Call `all` inside `to_capybara_node` context (Either Capybara::Session or Capybara::Node::Element)
25
25
  def _all(*find_args)
26
26
  kwargs = find_args.pop
27
- page.all(*find_args, **kwargs)
27
+ to_capybara_node.all(*find_args, **kwargs)
28
28
  end
29
29
 
30
- # Call `has_selector?` inside context set on page/section
30
+ # Call `has_selector?` inside `to_capybara_node` context (Either Capybara::Session or Capybara::Node::Element)
31
31
  def element_exists?(*find_args)
32
32
  kwargs = find_args.pop
33
- page.has_selector?(*find_args, **kwargs)
33
+ to_capybara_node.has_selector?(*find_args, **kwargs)
34
34
  end
35
35
 
36
- # Call `has_no_selector?` inside context set on page/section
36
+ # Call `has_no_selector?` inside `to_capybara_node` context (Either Capybara::Session or Capybara::Node::Element)
37
37
  def element_does_not_exist?(*find_args)
38
38
  kwargs = find_args.pop
39
- page.has_no_selector?(*find_args, **kwargs)
39
+ to_capybara_node.has_no_selector?(*find_args, **kwargs)
40
40
  end
41
41
 
42
42
  # Prevent users from calling methods with blocks when they shouldn't be.
@@ -103,7 +103,7 @@ module SitePrism
103
103
  options[:wait] = Capybara.default_max_wait_time unless options.key?(:wait)
104
104
  end
105
105
 
106
- # SitePrism::DSL::ClassMethods
106
+ # [SitePrism::DSL::ClassMethods]
107
107
  # This exposes all of the DSL definitions users will use when generating
108
108
  # their POM classes.
109
109
  #
@@ -9,45 +9,6 @@ module SitePrism
9
9
  # Loadable's are primarily used with the `#load` method which will auto-execute them all
10
10
  # in their defined order. But they can be used dynamically wherever desired.
11
11
  module Loadable
12
- module ClassMethods
13
- # The list of load_validations.
14
- # They will be executed in the order they are defined.
15
- #
16
- # @return [Array]
17
- def load_validations
18
- if superclass.respond_to?(:load_validations)
19
- superclass.load_validations + _load_validations
20
- else
21
- _load_validations
22
- end
23
- end
24
-
25
- # Appends a load validation block to the page class.
26
- #
27
- # When `loaded?` is called, these blocks are instance_eval'd
28
- # against the current page instance.
29
- # This allows users to wait for specific events to occur on
30
- # the page or certain elements to be loaded before performing
31
- # any actions on the page.
32
- #
33
- # @param block [&block] A block which returns true if the page
34
- # loaded successfully, or false if it did not.
35
- # This block can contain up to 2 elements in an array
36
- # The first is the physical validation test to be truthily evaluated.
37
- #
38
- # If this does not pass, then the 2nd item (if defined), is output
39
- # as an error message to the +FailedLoadValidationError+ that is thrown
40
- def load_validation(&block)
41
- _load_validations << block
42
- end
43
-
44
- private
45
-
46
- def _load_validations
47
- @_load_validations ||= []
48
- end
49
- end
50
-
51
12
  def self.included(base)
52
13
  base.extend(ClassMethods)
53
14
  end
@@ -106,5 +67,51 @@ module SitePrism
106
67
  passed
107
68
  end
108
69
  end
70
+
71
+ # [SitePrism::Loadable::ClassMethods]
72
+ # This exposes all of the DSL definitions users will use when generating "loadables"
73
+ #
74
+ # A "Loadable" is a definition whereby the page object once loaded must pass a boolean check
75
+ # These loadables are typically provided using the method `load_validation`
76
+ module ClassMethods
77
+ # The list of load_validations.
78
+ # They will be executed in the order they are defined.
79
+ #
80
+ # @return [Array]
81
+ def load_validations
82
+ if superclass.respond_to?(:load_validations)
83
+ superclass.load_validations + _load_validations
84
+ else
85
+ _load_validations
86
+ end
87
+ end
88
+
89
+ # Appends a load validation block to the page class.
90
+ #
91
+ # When `loaded?` is called, these blocks are instance_eval'd
92
+ # against the current page instance.
93
+ # This allows users to wait for specific events to occur on
94
+ # the page or certain elements to be loaded before performing
95
+ # any actions on the page.
96
+ #
97
+ # @param block [&block] A block which returns true if the page
98
+ # loaded successfully, or false if it did not.
99
+ # This block can contain up to 2 elements in an array
100
+ # The first is the physical validation test to be truthily evaluated.
101
+ #
102
+ # If this does not pass, then the 2nd item (if defined), is output
103
+ # as an error message to the +FailedLoadValidationError+ that is thrown
104
+ #
105
+ # @return [Proc]
106
+ def load_validation(&block)
107
+ _load_validations << block
108
+ end
109
+
110
+ private
111
+
112
+ def _load_validations
113
+ @_load_validations ||= []
114
+ end
115
+ end
109
116
  end
110
117
  end
@@ -42,6 +42,11 @@ module SitePrism
42
42
  (defined?(@page) && @page) || Capybara.current_session
43
43
  end
44
44
 
45
+ # This scopes our calls inside Page correctly to the `Capybara::Session`
46
+ def to_capybara_node
47
+ page
48
+ end
49
+
45
50
  # Loads the page.
46
51
  # @param expansion_or_html
47
52
  # @param block [&block] An optional block to run once the page is loaded.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
- VERSION = '3.7.2'
4
+ VERSION = '3.7.3'
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.2
4
+ version: 3.7.3
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: 2021-08-23 00:00:00.000000000 Z
12
+ date: 2021-09-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '2.5'
20
+ version: '2.6'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '2.5'
27
+ version: '2.6'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: capybara
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '3.8'
34
+ version: '3.15'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '3.8'
41
+ version: '3.15'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: site_prism-all_there
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -63,22 +63,22 @@ dependencies:
63
63
  name: cucumber
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ">"
67
67
  - !ruby/object:Gem::Version
68
- version: '4.0'
68
+ version: '4'
69
69
  - - "<"
70
70
  - !ruby/object:Gem::Version
71
- version: '5.2'
71
+ version: '8'
72
72
  type: :development
73
73
  prerelease: false
74
74
  version_requirements: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - ">="
76
+ - - ">"
77
77
  - !ruby/object:Gem::Version
78
- version: '4.0'
78
+ version: '4'
79
79
  - - "<"
80
80
  - !ruby/object:Gem::Version
81
- version: '5.2'
81
+ version: '8'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: pry-byebug
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -93,48 +93,34 @@ dependencies:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
- - !ruby/object:Gem::Dependency
97
- name: rake
98
- requirement: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '13.0'
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '13.0'
110
96
  - !ruby/object:Gem::Dependency
111
97
  name: rspec
112
98
  requirement: !ruby/object:Gem::Requirement
113
99
  requirements:
114
100
  - - "~>"
115
101
  - !ruby/object:Gem::Version
116
- version: '3.9'
102
+ version: '3.10'
117
103
  type: :development
118
104
  prerelease: false
119
105
  version_requirements: !ruby/object:Gem::Requirement
120
106
  requirements:
121
107
  - - "~>"
122
108
  - !ruby/object:Gem::Version
123
- version: '3.9'
109
+ version: '3.10'
124
110
  - !ruby/object:Gem::Dependency
125
111
  name: rubocop
126
112
  requirement: !ruby/object:Gem::Requirement
127
113
  requirements:
128
114
  - - "~>"
129
115
  - !ruby/object:Gem::Version
130
- version: 0.93.0
116
+ version: 1.11.0
131
117
  type: :development
132
118
  prerelease: false
133
119
  version_requirements: !ruby/object:Gem::Requirement
134
120
  requirements:
135
121
  - - "~>"
136
122
  - !ruby/object:Gem::Version
137
- version: 0.93.0
123
+ version: 1.11.0
138
124
  - !ruby/object:Gem::Dependency
139
125
  name: rubocop-performance
140
126
  requirement: !ruby/object:Gem::Requirement
@@ -155,21 +141,21 @@ dependencies:
155
141
  requirements:
156
142
  - - "~>"
157
143
  - !ruby/object:Gem::Version
158
- version: 1.44.0
144
+ version: 2.2.0
159
145
  type: :development
160
146
  prerelease: false
161
147
  version_requirements: !ruby/object:Gem::Requirement
162
148
  requirements:
163
149
  - - "~>"
164
150
  - !ruby/object:Gem::Version
165
- version: 1.44.0
151
+ version: 2.2.0
166
152
  - !ruby/object:Gem::Dependency
167
153
  name: selenium-webdriver
168
154
  requirement: !ruby/object:Gem::Requirement
169
155
  requirements:
170
156
  - - ">="
171
157
  - !ruby/object:Gem::Version
172
- version: '3.11'
158
+ version: '3.13'
173
159
  - - "<"
174
160
  - !ruby/object:Gem::Version
175
161
  version: '4.1'
@@ -179,7 +165,7 @@ dependencies:
179
165
  requirements:
180
166
  - - ">="
181
167
  - !ruby/object:Gem::Version
182
- version: '3.11'
168
+ version: '3.13'
183
169
  - - "<"
184
170
  - !ruby/object:Gem::Version
185
171
  version: '4.1'
@@ -203,14 +189,14 @@ dependencies:
203
189
  requirements:
204
190
  - - "~>"
205
191
  - !ruby/object:Gem::Version
206
- version: '4.5'
192
+ version: '4.6'
207
193
  type: :development
208
194
  prerelease: false
209
195
  version_requirements: !ruby/object:Gem::Requirement
210
196
  requirements:
211
197
  - - "~>"
212
198
  - !ruby/object:Gem::Version
213
- version: '4.5'
199
+ version: '4.6'
214
200
  description: SitePrism gives you a simple, clean and semantic DSL for describing your
215
201
  site. SitePrism implements the Page Object Model pattern on top of Capybara.
216
202
  email: