site_prism 4.0.3 → 5.0

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.
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.0.3
4
+ version: '5.0'
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: 2023-07-07 00:00:00.000000000 Z
12
+ date: 2023-12-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -18,6 +18,9 @@ dependencies:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '2.8'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.8.1
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,54 +28,77 @@ dependencies:
25
28
  - - "~>"
26
29
  - !ruby/object:Gem::Version
27
30
  version: '2.8'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.8.1
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: capybara
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
38
  - - "~>"
33
39
  - !ruby/object:Gem::Version
34
- version: '3.27'
40
+ version: '3.31'
35
41
  type: :runtime
36
42
  prerelease: false
37
43
  version_requirements: !ruby/object:Gem::Requirement
38
44
  requirements:
39
45
  - - "~>"
40
46
  - !ruby/object:Gem::Version
41
- version: '3.27'
47
+ version: '3.31'
42
48
  - !ruby/object:Gem::Dependency
43
49
  name: site_prism-all_there
44
50
  requirement: !ruby/object:Gem::Requirement
45
51
  requirements:
46
- - - "~>"
52
+ - - ">"
47
53
  - !ruby/object:Gem::Version
48
- version: '2.0'
54
+ version: '2'
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: '5'
49
58
  type: :runtime
50
59
  prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">"
63
+ - !ruby/object:Gem::Version
64
+ version: '2'
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '5'
68
+ - !ruby/object:Gem::Dependency
69
+ name: automation_helpers
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '4.0'
75
+ type: :development
76
+ prerelease: false
51
77
  version_requirements: !ruby/object:Gem::Requirement
52
78
  requirements:
53
79
  - - "~>"
54
80
  - !ruby/object:Gem::Version
55
- version: '2.0'
81
+ version: '4.0'
56
82
  - !ruby/object:Gem::Dependency
57
83
  name: cucumber
58
84
  requirement: !ruby/object:Gem::Requirement
59
85
  requirements:
60
86
  - - ">"
61
87
  - !ruby/object:Gem::Version
62
- version: '6'
88
+ version: '7'
63
89
  - - "<"
64
90
  - !ruby/object:Gem::Version
65
- version: '9'
91
+ version: '10'
66
92
  type: :development
67
93
  prerelease: false
68
94
  version_requirements: !ruby/object:Gem::Requirement
69
95
  requirements:
70
96
  - - ">"
71
97
  - !ruby/object:Gem::Version
72
- version: '6'
98
+ version: '7'
73
99
  - - "<"
74
100
  - !ruby/object:Gem::Version
75
- version: '9'
101
+ version: '10'
76
102
  - !ruby/object:Gem::Dependency
77
103
  name: rspec
78
104
  requirement: !ruby/object:Gem::Requirement
@@ -93,56 +119,56 @@ dependencies:
93
119
  requirements:
94
120
  - - "~>"
95
121
  - !ruby/object:Gem::Version
96
- version: 1.49.0
122
+ version: 1.57.1
97
123
  type: :development
98
124
  prerelease: false
99
125
  version_requirements: !ruby/object:Gem::Requirement
100
126
  requirements:
101
127
  - - "~>"
102
128
  - !ruby/object:Gem::Version
103
- version: 1.49.0
129
+ version: 1.57.1
104
130
  - !ruby/object:Gem::Dependency
105
131
  name: rubocop-performance
106
132
  requirement: !ruby/object:Gem::Requirement
107
133
  requirements:
108
134
  - - "~>"
109
135
  - !ruby/object:Gem::Version
110
- version: 1.17.1
136
+ version: 1.19.0
111
137
  type: :development
112
138
  prerelease: false
113
139
  version_requirements: !ruby/object:Gem::Requirement
114
140
  requirements:
115
141
  - - "~>"
116
142
  - !ruby/object:Gem::Version
117
- version: 1.17.1
143
+ version: 1.19.0
118
144
  - !ruby/object:Gem::Dependency
119
145
  name: rubocop-rspec
120
146
  requirement: !ruby/object:Gem::Requirement
121
147
  requirements:
122
148
  - - "~>"
123
149
  - !ruby/object:Gem::Version
124
- version: 2.20.0
150
+ version: 2.25.0
125
151
  type: :development
126
152
  prerelease: false
127
153
  version_requirements: !ruby/object:Gem::Requirement
128
154
  requirements:
129
155
  - - "~>"
130
156
  - !ruby/object:Gem::Version
131
- version: 2.20.0
157
+ version: 2.25.0
132
158
  - !ruby/object:Gem::Dependency
133
159
  name: selenium-webdriver
134
160
  requirement: !ruby/object:Gem::Requirement
135
161
  requirements:
136
162
  - - "~>"
137
163
  - !ruby/object:Gem::Version
138
- version: '4.0'
164
+ version: '4.7'
139
165
  type: :development
140
166
  prerelease: false
141
167
  version_requirements: !ruby/object:Gem::Requirement
142
168
  requirements:
143
169
  - - "~>"
144
170
  - !ruby/object:Gem::Version
145
- version: '4.0'
171
+ version: '4.7'
146
172
  - !ruby/object:Gem::Dependency
147
173
  name: simplecov
148
174
  requirement: !ruby/object:Gem::Requirement
@@ -157,20 +183,6 @@ dependencies:
157
183
  - - "~>"
158
184
  - !ruby/object:Gem::Version
159
185
  version: '0.21'
160
- - !ruby/object:Gem::Dependency
161
- name: webdrivers
162
- requirement: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '5.0'
167
- type: :development
168
- prerelease: false
169
- version_requirements: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '5.0'
174
186
  description: SitePrism gives you a simple, clean and semantic DSL for describing your
175
187
  site. SitePrism implements the Page Object Model pattern on top of Capybara.
176
188
  email:
@@ -186,7 +198,10 @@ files:
186
198
  - lib/site_prism/addressable_url_matcher.rb
187
199
  - lib/site_prism/deprecator.rb
188
200
  - lib/site_prism/dsl.rb
189
- - lib/site_prism/dsl_validator.rb
201
+ - lib/site_prism/dsl/builder.rb
202
+ - lib/site_prism/dsl/locators.rb
203
+ - lib/site_prism/dsl/methods.rb
204
+ - lib/site_prism/dsl/validator.rb
190
205
  - lib/site_prism/element_checker.rb
191
206
  - lib/site_prism/error.rb
192
207
  - lib/site_prism/loadable.rb
@@ -212,14 +227,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
227
  requirements:
213
228
  - - ">="
214
229
  - !ruby/object:Gem::Version
215
- version: '2.6'
230
+ version: '2.7'
216
231
  required_rubygems_version: !ruby/object:Gem::Requirement
217
232
  requirements:
218
233
  - - ">="
219
234
  - !ruby/object:Gem::Version
220
235
  version: '0'
221
236
  requirements: []
222
- rubygems_version: 3.4.13
237
+ rubygems_version: 3.2.3
223
238
  signing_key:
224
239
  specification_version: 4
225
240
  summary: A Page Object Model DSL for Capybara
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SitePrism
4
- # [SitePrism::DSLValidator]
5
- #
6
- # This is the new validator module which will check all DSL items against a whitelist
7
- # for any entries which are prohibited
8
- module DSLValidator
9
- def invalid?(name)
10
- prefix_invalid?(name) ||
11
- suffix_invalid?(name) ||
12
- characters_invalid?(name) ||
13
- blacklisted?(name)
14
- end
15
-
16
- private
17
-
18
- def prefix_invalid?(name)
19
- prefix_blacklist.any? { |prefix| name.start_with?(prefix) }.tap { |result| log_failure(name, 'prefix') unless result }
20
- end
21
-
22
- def suffix_invalid?(name)
23
- suffix_blacklist.any? { |prefix| name.end_with?(prefix) }.tap { |result| log_failure(name, 'suffix') unless result }
24
- end
25
-
26
- def characters_invalid?(name)
27
- !name.match?(regex_permission).tap { |result| log_failure(name, 'character(s)') unless result }
28
- end
29
-
30
- def blacklisted?(name)
31
- blacklisted_names.include?(name).tap { |result| log_failure(name, 'name (blacklisted entry)') unless result }
32
- end
33
-
34
- def regex_permission
35
- /^[a-z]\w+$/
36
- end
37
-
38
- def prefix_blacklist
39
- %w[
40
- no_
41
- _
42
- ]
43
- end
44
-
45
- def suffix_blacklist
46
- %w[
47
- _
48
- ?
49
- ]
50
- end
51
-
52
- def blacklisted_names
53
- %w[
54
- attributes
55
- html
56
- no
57
- title
58
- ]
59
- end
60
-
61
- def log_failure(name, type)
62
- SitePrism.logger.error("DSL item: #{name} has an invalid #{type}")
63
- SitePrism.logger.debug(debug_error(type))
64
- end
65
-
66
- def debug_error(type)
67
- case type
68
- when 'prefix'; then "Invalid Prefixes: #{prefix_blacklist.join(', ')}."
69
- when 'suffix'; then "Invalid Suffixes: #{suffix_blacklist.join(', ')}"
70
- when 'character(s)'; then "Invalid DSL Names: #{blacklisted_names.join(', ')}"
71
- else "DSL Charset REGEX: #{regex_permission.inspect}"
72
- end
73
- end
74
- end
75
- end