Module: SitePrism::Loadable
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#load_error ⇒ Object
In certain circumstances, we cache that the page has already been confirmed to be loaded so that actions which call ‘loaded?` a second time do not need to perform the load_validation queries against the page a second time.
-
#loaded ⇒ Object
In certain circumstances, we cache that the page has already been confirmed to be loaded so that actions which call ‘loaded?` a second time do not need to perform the load_validation queries against the page a second time.
Class Method Summary collapse
Instance Method Summary collapse
-
#loaded? ⇒ Boolean
Check if the page is loaded.
-
#when_loaded(&_block) ⇒ Object
Executes the given block after the page is loaded.
Instance Attribute Details
#load_error ⇒ Object
In certain circumstances, we cache that the page has already been confirmed to be loaded so that actions which call ‘loaded?` a second time do not need to perform the load_validation queries against the page a second time.
51 52 53 |
# File 'lib/site_prism/loadable.rb', line 51 def load_error @load_error end |
#loaded ⇒ Object
In certain circumstances, we cache that the page has already been confirmed to be loaded so that actions which call ‘loaded?` a second time do not need to perform the load_validation queries against the page a second time.
51 52 53 |
# File 'lib/site_prism/loadable.rb', line 51 def loaded @loaded end |
Class Method Details
.included(base) ⇒ Object
43 44 45 |
# File 'lib/site_prism/loadable.rb', line 43 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#loaded? ⇒ Boolean
Check if the page is loaded.
On failure, if an error was reported by a failing validation, it will be available via the ‘load_error` accessor.
82 83 84 85 86 87 88 |
# File 'lib/site_prism/loadable.rb', line 82 def loaded? self.load_error = nil return true if loaded load_validations_pass? end |
#when_loaded(&_block) ⇒ Object
Executes the given block after the page is loaded.
The loadable object instance is yielded into the block.
has finished loading.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/site_prism/loadable.rb', line 59 def when_loaded(&_block) # Get original loaded value, in case we are nested # inside another when_loaded block. previously_loaded = loaded = 'A block was expected, but none received.' raise ArgumentError, unless block_given? # Within the block, cache loaded? to optimize performance. self.loaded = loaded? raise SitePrism::NotLoadedError, load_error unless loaded yield self ensure self.loaded = previously_loaded end |