dill 0.4.3 → 0.4.4

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