pagetience 0.2.1 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/pagetience/meditate.rb +14 -3
- data/lib/pagetience/version.rb +1 -1
- data/lib/pagetience.rb +6 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05f8f8ddbf769b62605052f8378282c011a3cb71
|
4
|
+
data.tar.gz: 18c1edeecdc20fff221975e926019a21836fd454
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c6933320f5286a4614ba5f54248495ed6f1135498b92f80bf5f633fa10b8c012a62096a634ce122c84d22805382d366dc61cc32167ce52c2110e1d13ae1babe
|
7
|
+
data.tar.gz: 8ceafa985213dc9416312bdb1f1b1c7491754a6141ea98d4869c1471a0fcbdddb80d5c94d95e19724e1abbf26071424cf0aa265b8a7741956fc5e47b51ce574a
|
data/lib/pagetience/meditate.rb
CHANGED
@@ -1,24 +1,35 @@
|
|
1
1
|
module Pagetience
|
2
2
|
class Meditate
|
3
|
+
DEFAULT_TIMEOUT_MESSAGE = 'Timed out waiting for the expected result.'
|
4
|
+
|
3
5
|
attr_accessor :timeout, :polling, :block
|
4
6
|
|
7
|
+
class << self
|
8
|
+
def for(opts, &block)
|
9
|
+
opts[:timeout] ||= 30
|
10
|
+
opts[:polling] ||= 1
|
11
|
+
opts[:msg] ||= DEFAULT_TIMEOUT_MESSAGE
|
12
|
+
Meditate.new(opts[:timeout], opts[:polling]) { block.call }.until_enlightened opts[:expecting], opts[:msg]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
5
16
|
def initialize(timeout=30, polling=1, &block)
|
6
17
|
@timeout = timeout
|
7
18
|
@polling = polling
|
8
19
|
@block = block
|
9
20
|
end
|
10
21
|
|
11
|
-
def until_enlightened(expected=nil, msg=
|
22
|
+
def until_enlightened(expected=nil, msg=DEFAULT_TIMEOUT_MESSAGE)
|
12
23
|
raise ArgumentError, 'Timeout cannot be lower than the polling value.' unless @timeout > @polling
|
13
24
|
|
14
25
|
while @timeout > 0 && @timeout > @polling
|
15
26
|
@latest_result = @block.call
|
16
|
-
break
|
27
|
+
break if @latest_result == expected
|
17
28
|
sleep @polling
|
18
29
|
@timeout = @timeout - @polling
|
19
30
|
end
|
20
31
|
|
21
|
-
raise Pagetience::Exceptions::Timeout, msg unless @latest_result
|
32
|
+
raise Pagetience::Exceptions::Timeout, msg unless @latest_result == expected
|
22
33
|
|
23
34
|
@latest_result
|
24
35
|
end
|
data/lib/pagetience/version.rb
CHANGED
data/lib/pagetience.rb
CHANGED
@@ -80,6 +80,12 @@ module Pagetience
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
+
def transition_to(page, timeout=30, polling=1)
|
84
|
+
page = page.new browser
|
85
|
+
Pagetience::Meditate.for(timeout: timeout, polling: polling, msg: 'Timed out waiting for page transition.', expecting: true) { page.loaded? }
|
86
|
+
page
|
87
|
+
end
|
88
|
+
|
83
89
|
private
|
84
90
|
|
85
91
|
def determine_platform
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pagetience
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek McNeil
|
@@ -184,3 +184,4 @@ signing_key:
|
|
184
184
|
specification_version: 4
|
185
185
|
summary: A simple gem for making page object waiting easy.
|
186
186
|
test_files: []
|
187
|
+
has_rdoc:
|