ae_page_objects 1.0.0 → 1.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 21bb3ce2ec7cab7d29ee0c2d1f820351283fa949
4
+ data.tar.gz: 25d73f3965d7e6fe0ef3c9997b96c3cdd1414299
5
+ SHA512:
6
+ metadata.gz: fb4b1ad7f3389aa64a2cdc8e3215a345af964a015d6394d1d6db2734ecdaae88344e878e6e86530ddd0f6729aea1ea8bfd3b26aec77c3fe0e3648d9f2a8690e3
7
+ data.tar.gz: 737667a88d09c4d8c8447b36c28d0d4ad214c6b65d2e7e6334edd4fb002f06c53cf73e654cb9b81d6d5e3a255d44b43249ed9bdfb2dcf8fe75df7d39393bdabb
@@ -16,6 +16,7 @@ module AePageObjects
16
16
  autoload :InternalHelpers, 'ae_page_objects/util/internal_helpers'
17
17
  autoload :HashSymbolizer, 'ae_page_objects/util/hash_symbolizer'
18
18
  autoload :Inflector, 'ae_page_objects/util/inflector'
19
+ autoload :Waiter, 'ae_page_objects/util/waiter'
19
20
 
20
21
  module Concerns
21
22
  autoload :LoadEnsuring, 'ae_page_objects/concerns/load_ensuring'
@@ -9,10 +9,10 @@ module AePageObjects
9
9
  private
10
10
 
11
11
  def ensure_loaded!
12
- unless self.class.can_load_from_current_url?
12
+ unless Waiter.wait_for { self.class.can_load_from_current_url? }
13
13
  raise LoadingFailed, "#{self.class.name} cannot be loaded with url '#{current_url_without_params}'"
14
14
  end
15
-
15
+
16
16
  super
17
17
  end
18
18
 
@@ -19,14 +19,14 @@ module AePageObjects
19
19
  # Provided so that visible? can be asked without
20
20
  # an explicit check for present? first.
21
21
  def visible?
22
- wait_for do
22
+ Waiter.wait_for do
23
23
  inst = presence
24
24
  !! inst && inst.visible?
25
25
  end
26
26
  end
27
27
 
28
28
  def not_visible?
29
- wait_for do
29
+ Waiter.wait_for do
30
30
  inst = presence
31
31
  inst.nil? || ! inst.visible?
32
32
  end
@@ -37,7 +37,7 @@ module AePageObjects
37
37
  end
38
38
 
39
39
  def not_present?
40
- wait_for do
40
+ Waiter.wait_for do
41
41
  ! present?
42
42
  end
43
43
  end
@@ -70,15 +70,6 @@ module AePageObjects
70
70
 
71
71
  private
72
72
 
73
- def wait_for(&block)
74
- Timeout.timeout(Capybara.default_wait_time) do
75
- sleep(0.05) until value = Capybara.using_wait_time(0, &block)
76
- value
77
- end
78
- rescue Timeout::Error
79
- false
80
- end
81
-
82
73
  def element
83
74
  @element ||= @element_class.new(*@args)
84
75
  end
@@ -0,0 +1,12 @@
1
+ module AePageObjects
2
+ module Waiter
3
+ def self.wait_for(&block)
4
+ Timeout.timeout(Capybara.default_wait_time) do
5
+ sleep(0.05) until value = Capybara.using_wait_time(0, &block)
6
+ value
7
+ end
8
+ rescue Timeout::Error
9
+ false
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module AePageObjects
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,22 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ae_page_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Donnie Tognazzini
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-02-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capybara
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.1'
22
20
  - - <
@@ -25,9 +23,8 @@ dependencies:
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
- - - ! '>='
27
+ - - '>='
31
28
  - !ruby/object:Gem::Version
32
29
  version: '1.1'
33
30
  - - <
@@ -64,34 +61,31 @@ files:
64
61
  - lib/ae_page_objects/util/inflector.rb
65
62
  - lib/ae_page_objects/util/internal_helpers.rb
66
63
  - lib/ae_page_objects/util/singleton.rb
64
+ - lib/ae_page_objects/util/waiter.rb
67
65
  - lib/ae_page_objects/version.rb
68
66
  - lib/ae_page_objects/window.rb
69
67
  homepage: http://github.com/appfolio/ae_page_objects
70
68
  licenses:
71
69
  - MIT
70
+ metadata: {}
72
71
  post_install_message:
73
72
  rdoc_options: []
74
73
  require_paths:
75
74
  - lib
76
75
  required_ruby_version: !ruby/object:Gem::Requirement
77
- none: false
78
76
  requirements:
79
- - - ! '>='
77
+ - - '>='
80
78
  - !ruby/object:Gem::Version
81
79
  version: '0'
82
- segments:
83
- - 0
84
- hash: 472038393023831036
85
80
  required_rubygems_version: !ruby/object:Gem::Requirement
86
- none: false
87
81
  requirements:
88
- - - ! '>='
82
+ - - '>='
89
83
  - !ruby/object:Gem::Version
90
84
  version: '0'
91
85
  requirements: []
92
86
  rubyforge_project:
93
- rubygems_version: 1.8.25
87
+ rubygems_version: 2.1.11
94
88
  signing_key:
95
- specification_version: 3
89
+ specification_version: 4
96
90
  summary: Capybara Page Objects pattern
97
91
  test_files: []