chop 0.36.1 → 0.36.2
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/lib/chop/definition_list.rb +2 -2
- data/lib/chop/dfn_dl.rb +2 -2
- data/lib/chop/diff.rb +3 -15
- data/lib/chop/dsl.rb +0 -1
- data/lib/chop/form.rb +6 -6
- data/lib/chop/table.rb +2 -2
- data/lib/chop/unordered_list.rb +4 -4
- data/lib/chop/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ad472bedd321d089aa70093dc87f830278f89649ec4ffeae49c5731a3ca76ebb
|
|
4
|
+
data.tar.gz: a9dcddb04da9f226c5daf92bb1db506c9c18e7292a90262a03b1bd4060cad0ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7e42d362abf4332b9c50d6c7fa0f25ec2ab3af647db2c85be35c2ebfe3c960a02e8dbf0ed8bd2d7ab6e8aea6df992331eedeb7203bfefc7b124eb3e40710f68b
|
|
7
|
+
data.tar.gz: c4ddb213915221aa40b2b37fd22671858d4a7baabfb7804dda973e37520006acb9ed473bd82664708424e1456f5ae4c7cb4bb57e7f386109fd779a9d0bacea1a
|
data/lib/chop/definition_list.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require "chop/diff"
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
module Chop
|
|
4
4
|
class DefinitionList < Diff
|
|
5
5
|
self.default_selector = "dl"
|
|
6
6
|
self.rows_finder = ->(root) do
|
|
7
|
-
root.all("dt,dd").slice_before do |node|
|
|
7
|
+
root.all("dt,dd", allow_reload: true).slice_before do |node|
|
|
8
8
|
node.tag_name == "dt"
|
|
9
9
|
end
|
|
10
10
|
end
|
data/lib/chop/dfn_dl.rb
CHANGED
|
@@ -3,11 +3,11 @@ require "chop/definition_list"
|
|
|
3
3
|
module Chop
|
|
4
4
|
class DfnDl < DefinitionList
|
|
5
5
|
self.rows_finder = ->(root) do
|
|
6
|
-
root.all("dfn")
|
|
6
|
+
root.all("dfn", allow_reload: true)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
self.cells_finder = ->(row) do
|
|
10
|
-
row.all("dt,dd")
|
|
10
|
+
row.all("dt,dd", allow_reload: true)
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
data/lib/chop/diff.rb
CHANGED
|
@@ -9,25 +9,13 @@ module Chop
|
|
|
9
9
|
def self.diff! selector, table, session: Capybara.current_session, timeout: Capybara.default_max_wait_time, errors: [], **kwargs, &block
|
|
10
10
|
errors += session.driver.invalid_element_errors
|
|
11
11
|
errors += [Cucumber::MultilineArgument::DataTable::Different]
|
|
12
|
-
|
|
13
|
-
new(selector, table, session, timeout, block).diff!
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def self.synchronize_with_retry(session, timeout, errors)
|
|
18
|
-
interval = session.config.default_retry_interval
|
|
19
|
-
timer = Capybara::Helpers.timer(expire_in: timeout)
|
|
20
|
-
begin
|
|
21
|
-
yield
|
|
22
|
-
rescue *errors => e
|
|
23
|
-
raise e if timer.expired?
|
|
24
|
-
sleep interval
|
|
25
|
-
retry
|
|
12
|
+
session.document.synchronize timeout, errors: errors do
|
|
13
|
+
new(selector, table, session, timeout, block).diff! **kwargs
|
|
26
14
|
end
|
|
27
15
|
end
|
|
28
16
|
|
|
29
17
|
def cell_to_image_filename cell
|
|
30
|
-
cell.all("img").map do |img|
|
|
18
|
+
cell.all("img", allow_reload: true).map do |img|
|
|
31
19
|
File.basename(img[:src] || "").split("?")[0].sub(/-[0-9a-f]{64}/, '')
|
|
32
20
|
end.first
|
|
33
21
|
end
|
data/lib/chop/dsl.rb
CHANGED
data/lib/chop/form.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Chop
|
|
|
19
19
|
Node("")
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
-
actual = root.all(Field.combined_css_selector)
|
|
22
|
+
actual = root.all(Field.combined_css_selector, allow_reload: true)
|
|
23
23
|
.filter_map { |field_element| Field.from(session, field_element) }
|
|
24
24
|
.select(&:should_include_in_diff?)
|
|
25
25
|
.uniq { |field| field.field[:name] }
|
|
@@ -162,7 +162,7 @@ module Chop
|
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
def fill_in!
|
|
165
|
-
field.all("option").map(&:text).each do |value|
|
|
165
|
+
field.all("option", allow_reload: true).map(&:text).each do |value|
|
|
166
166
|
session.unselect value, from: label
|
|
167
167
|
end
|
|
168
168
|
value.split(", ").each do |value|
|
|
@@ -217,12 +217,12 @@ module Chop
|
|
|
217
217
|
private
|
|
218
218
|
|
|
219
219
|
def checkboxes
|
|
220
|
-
session.all("[name='#{field[:name]}']")
|
|
220
|
+
session.all("[name='#{field[:name]}']", allow_reload: true)
|
|
221
221
|
end
|
|
222
222
|
|
|
223
223
|
def checkbox_label_in_values? checkbox
|
|
224
224
|
values = value.split(", ")
|
|
225
|
-
labels = session.all("label[for='#{checkbox[:id]}']").map(&:text)
|
|
225
|
+
labels = session.all("label[for='#{checkbox[:id]}']", allow_reload: true).map(&:text)
|
|
226
226
|
(values & labels).any?
|
|
227
227
|
end
|
|
228
228
|
end
|
|
@@ -259,7 +259,7 @@ module Chop
|
|
|
259
259
|
end
|
|
260
260
|
|
|
261
261
|
def get_value
|
|
262
|
-
session.all("[name='#{field[:name]}']").find(&:checked?).try(:value)
|
|
262
|
+
session.all("[name='#{field[:name]}']", allow_reload: true).find(&:checked?).try(:value)
|
|
263
263
|
end
|
|
264
264
|
|
|
265
265
|
private
|
|
@@ -269,7 +269,7 @@ module Chop
|
|
|
269
269
|
end
|
|
270
270
|
|
|
271
271
|
def value_field
|
|
272
|
-
session.all(:field, value).select { |el| el[:name] == field[:name] }.last || {}
|
|
272
|
+
session.all(:field, value, allow_reload: true).select { |el| el[:name] == field[:name] }.last || {}
|
|
273
273
|
end
|
|
274
274
|
end
|
|
275
275
|
|
data/lib/chop/table.rb
CHANGED
|
@@ -3,8 +3,8 @@ require "chop/diff"
|
|
|
3
3
|
module Chop
|
|
4
4
|
class Table < Diff
|
|
5
5
|
self.default_selector = "table"
|
|
6
|
-
self.rows_finder = ->(root) { root.all("tr") }
|
|
7
|
-
self.cells_finder = ->(row) { row.all("td,th") }
|
|
6
|
+
self.rows_finder = ->(root) { root.all("tr", allow_reload: true) }
|
|
7
|
+
self.cells_finder = ->(row) { row.all("td,th", allow_reload: true) }
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
|
data/lib/chop/unordered_list.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require "chop/definition_list"
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
module Chop
|
|
4
4
|
class UnorderedList < DefinitionList
|
|
5
5
|
self.default_selector = "ul"
|
|
6
|
-
self.rows_finder = ->(root) { root.all("li") }
|
|
6
|
+
self.rows_finder = ->(root) { root.all("li", allow_reload: true) }
|
|
7
7
|
self.cells_finder = ->(row) { [row] }
|
|
8
8
|
|
|
9
9
|
def nested
|
|
@@ -11,14 +11,14 @@ module Chop
|
|
|
11
11
|
recurse_tree [], root
|
|
12
12
|
}
|
|
13
13
|
self.text_finder = ->(cell) {
|
|
14
|
-
cell.chop_prefix + cell.all(:xpath, "*[not(self::ul)]").map(&:text).join(" ").strip
|
|
14
|
+
cell.chop_prefix + cell.all(:xpath, "*[not(self::ul)]", allow_reload: true).map(&:text).join(" ").strip
|
|
15
15
|
}
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
private
|
|
19
19
|
|
|
20
20
|
def recurse_tree structure, root, prefix: "- "
|
|
21
|
-
root.all(:xpath, "./li").each do |li|
|
|
21
|
+
root.all(:xpath, "./li", allow_reload: true).each do |li|
|
|
22
22
|
li.define_singleton_method(:chop_prefix) { prefix }
|
|
23
23
|
structure << li
|
|
24
24
|
|
data/lib/chop/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chop
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.36.
|
|
4
|
+
version: 0.36.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Micah Geisel
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|