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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a932a3e8344d082e310dceec42f21dfbba56cd11264e330aa06245e66e6af07f
4
- data.tar.gz: 0b904e3f1dbb926a0138614fee3b96e2d9aeb1363711c04b758058328904afd3
3
+ metadata.gz: ad472bedd321d089aa70093dc87f830278f89649ec4ffeae49c5731a3ca76ebb
4
+ data.tar.gz: a9dcddb04da9f226c5daf92bb1db506c9c18e7292a90262a03b1bd4060cad0ce
5
5
  SHA512:
6
- metadata.gz: 4010088d237ee4e02e40161da7d2f9d0caa049bf07b6b3d63267e08419a30ac5b2582e433e1176c79b6a07e885294e090b6d4f6c94c466eebe37479efc32fe30
7
- data.tar.gz: c5a21854d4c7ca77e07edd9c3145679953ddf7bd52dd356777a2fc88cfdcea83af7048be55a5a2cacd064bf72792eab9b5e40e221a26514db3ccedd50cf1cb2c
6
+ metadata.gz: 7e42d362abf4332b9c50d6c7fa0f25ec2ab3af647db2c85be35c2ebfe3c960a02e8dbf0ed8bd2d7ab6e8aea6df992331eedeb7203bfefc7b124eb3e40710f68b
7
+ data.tar.gz: c4ddb213915221aa40b2b37fd22671858d4a7baabfb7804dda973e37520006acb9ed473bd82664708424e1456f5ae4c7cb4bb57e7f386109fd779a9d0bacea1a
@@ -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
- synchronize_with_retry(session, timeout, errors) do
13
- new(selector, table, session, timeout, block).diff!(**kwargs)
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
@@ -47,4 +47,3 @@ module Chop
47
47
  }
48
48
  end
49
49
  end
50
-
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
 
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Chop
2
- VERSION = "0.36.1"
2
+ VERSION = "0.36.2"
3
3
  end
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.1
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-22 00:00:00.000000000 Z
11
+ date: 2025-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord