dill 0.4.3 → 0.4.4

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.
@@ -16,6 +16,16 @@ module Dill
16
16
  Capybara.current_session.driver
17
17
  end
18
18
 
19
+ # Executes +block+ repeatedly until it returns a "truthy" value or +timeout+
20
+ # expires.
21
+ #
22
+ # TODO: Expand documentation.
23
+ def self.wait_for(wait_time = Capybara.default_wait_time,
24
+ raise_errors = true,
25
+ &block)
26
+ new(wait_time).wait_for(raise_errors, &block)
27
+ end
28
+
19
29
  # Initializes a new Checkpoint.
20
30
  #
21
31
  # @param wait_time how long this checkpoint will wait for its conditions to
@@ -48,7 +58,7 @@ module Dill
48
58
  # @return whatever the condition block returns if the condition is
49
59
  # successful. If the condition is not met, returns +false+ if
50
60
  # +rescue_errors+ is false.
51
- def wait_until(raise_errors = true, &condition)
61
+ def wait_for(raise_errors = true, &condition)
52
62
  start
53
63
 
54
64
  begin
@@ -1,3 +1,3 @@
1
1
  module Dill
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
3
3
  end
@@ -219,27 +219,23 @@ module Dill
219
219
  # Compares the current widget with +value+, waiting for the comparison
220
220
  # to return +true+.
221
221
  def ==(value)
222
- checkpoint.wait_until(false) { cast_to(value) == value }
222
+ wait_for { cast_to_type_of(value) == value }
223
223
  end
224
224
 
225
225
  # Calls +=~+ on this widget's text content.
226
226
  def =~(regexp)
227
- checkpoint.wait_until(false) { to_s =~ regexp }
227
+ wait_for { to_s =~ regexp }
228
228
  end
229
229
 
230
230
  # Calls +!~+ on this widget's text content.
231
231
  def !~(regexp)
232
- checkpoint.wait_until(false) { to_s !~ regexp }
232
+ wait_for { to_s !~ regexp }
233
233
  end
234
234
 
235
235
  # Compares the current widget with +value+, waiting for the comparison
236
236
  # to return +false+.
237
237
  def !=(value)
238
- checkpoint.wait_until(false) { cast_to(value) != value }
239
- end
240
-
241
- def checkpoint(wait_time)
242
- Checkpoint.new(wait_time)
238
+ wait_for { cast_to_type_of(value) != value }
243
239
  end
244
240
 
245
241
  # Determines if the widget underlying an action exists.
@@ -257,14 +253,16 @@ module Dill
257
253
  end
258
254
 
259
255
  def inspect
260
- root = self.root
256
+ inspection = "<!-- #{self.class.name}: -->\n"
257
+ root = self.root
261
258
 
262
- xml = Nokogiri::HTML(page.body).at(root.path).to_xml
259
+ begin
260
+ xml = Nokogiri::HTML(page.body).at(root.path).to_xml
263
261
 
264
- "<!-- #{self.class.name}: -->\n" <<
265
- Nokogiri::XML(xml, &:noblanks).to_xhtml
266
- rescue Capybara::NotSupportedByDriverError
267
- root.inspect
262
+ inspection << Nokogiri::XML(xml, &:noblanks).to_xhtml
263
+ rescue Capybara::NotSupportedByDriverError
264
+ inspection << "<#{root.tag_name}>\n#{to_s}"
265
+ end
268
266
  end
269
267
 
270
268
  class Reload < Capybara::ElementNotFound; end
@@ -297,7 +295,7 @@ module Dill
297
295
  test = ->{ old_root != root }
298
296
  end
299
297
 
300
- checkpoint(wait_time).wait_until(false, &test)
298
+ wait_for(wait_time, false, &test)
301
299
 
302
300
  begin
303
301
  root.inspect
@@ -319,7 +317,7 @@ module Dill
319
317
  #
320
318
  # @return [MatchData] the match data from running +match+ on the text.
321
319
  def match(pattern, position = 0, &block)
322
- checkpoint.wait_until(false) { to_s.match(pattern, position, &block) }
320
+ wait_for { to_s.match(pattern, position, &block) }
323
321
  end
324
322
 
325
323
  def to_i
@@ -334,11 +332,9 @@ module Dill
334
332
  node_text(root)
335
333
  end
336
334
 
337
- alias_method :w, :widget
338
-
339
335
  protected
340
336
 
341
- def cast_to(value)
337
+ def cast_to_type_of(value)
342
338
  case value
343
339
  when Float
344
340
  to_f
@@ -359,8 +355,8 @@ module Dill
359
355
 
360
356
  attr_writer :root
361
357
 
362
- def checkpoint(wait_time = Capybara.default_wait_time)
363
- Checkpoint.new(wait_time)
358
+ def wait_for(wait_time = Capybara.default_wait_time, raise_errors = false, &block)
359
+ Checkpoint.wait_for(wait_time, raise_errors, &block)
364
360
  end
365
361
 
366
362
  def page
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: dill
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.3
5
+ version: 0.4.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - David Leal
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-07 00:00:00.000000000 Z
12
+ date: 2013-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  version_requirements: !ruby/object:Gem::Requirement