site_prism 4.0.3 → 5.0

Sign up to get free protection for your applications and to get access to all the features.
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