watir_pump 0.0.2 → 0.0.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/watir_pump/page.rb +32 -26
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2cbb8887dcba5251fc46c03f1df81c4d860a804f
4
- data.tar.gz: 3ba5eaef6712ccad5a413f4848447476f3fda28f
3
+ metadata.gz: 2b43d865d216cb89a0021ec97a0e0d9dc47732b5
4
+ data.tar.gz: d225472e316f49be403ce6a1c7c1adbd87a8535c
5
5
  SHA512:
6
- metadata.gz: 2bbc87cfee1e802483f7808384510cb9b8d52b62f0b86bfea1beb2bc625e98f3fa1de46da49c28e5e0701c315a0d24f0c8ec51c1b38d0a161a9a080e298ab5b4
7
- data.tar.gz: 05d9534cfe798b3834db12bbc8140195e301b22a9877999551bcc703343ebb4dfcebafd30db2f9923234b661a433ed57d6484e0c2ee131182de357430a885e1d
6
+ metadata.gz: 3825e375c66c430c3ae772ac5935f393c6c1a905f904f1f9e28b183e7fdb53ce8cfea0c4c4f5c702b9c19de49a8735fbced6f662f64dc412006f152dd778603e
7
+ data.tar.gz: 837952750b60feb3bffca0c5eb0d75147328cceb70b3482f29f1c2fd0b9dfda80d83aeee954235a879c9bbc8cd83664d72de352c5acf92cdc0e9bdf4f7ef8534
@@ -1,38 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'forwardable'
3
4
  require 'addressable/template'
4
5
  require_relative 'component'
5
6
 
6
7
  module WatirPump
7
8
  class Page < Component
8
9
  class << self
10
+ extend Forwardable
11
+
12
+ INSTANCE_DELEGATED_METHODS = %i[
13
+ browser
14
+ open open_yield open_dsl
15
+ use use_yield use_dsl
16
+ act act_yield use_dsl
17
+ ].freeze
18
+ delegate INSTANCE_DELEGATED_METHODS => :instance
19
+
9
20
  def uri(uri = nil)
10
21
  @uri = uri unless uri.nil?
11
22
  @uri
12
23
  end
13
24
 
14
- def open(params = {}, &blk)
15
- instance.open(params, &blk)
16
- end
17
-
18
- def open_yield(params = {}, &blk)
19
- instance.open_yield(params, &blk)
20
- end
21
-
22
- def browser
23
- instance.browser
24
- end
25
-
26
- def use(&blk)
27
- instance.use(&blk)
28
- end
29
- alias act use
30
-
31
- def use_yield(&blk)
32
- instance.use_yield(&blk)
33
- end
34
- alias act_yield use_yield
35
-
36
25
  def loaded?
37
26
  Addressable::Template.new(instance.url_template).match browser.url
38
27
  end
@@ -42,6 +31,14 @@ module WatirPump
42
31
  end
43
32
  end # << self
44
33
 
34
+ def open(params = {}, &blk)
35
+ if WatirPump.config.call_page_blocks_with_yield
36
+ open_yield(params, &blk)
37
+ else
38
+ open_dsl(params, &blk)
39
+ end
40
+ end
41
+
45
42
  def open_yield(params = {}, &blk)
46
43
  url = Addressable::Template.new(url_template).expand(params).to_s
47
44
  browser.goto url
@@ -49,13 +46,22 @@ module WatirPump
49
46
  self
50
47
  end
51
48
 
52
- def open(params = {}, &blk)
49
+ def open_dsl(params = {}, &blk)
53
50
  url = Addressable::Template.new(url_template).expand(params).to_s
54
51
  browser.goto url
55
- use(&blk) if block_given?
52
+ use_dsl(&blk) if block_given?
56
53
  self
57
54
  end
58
55
 
56
+ def use(&blk)
57
+ if WatirPump.config.call_page_blocks_with_yield
58
+ use_yield(&blk)
59
+ else
60
+ use_dsl(&blk)
61
+ end
62
+ end
63
+ alias act use
64
+
59
65
  def use_yield
60
66
  wait_for_loaded
61
67
  yield self, browser
@@ -63,12 +69,12 @@ module WatirPump
63
69
  end
64
70
  alias act_yield use_yield
65
71
 
66
- def use(&blk)
72
+ def use_dsl(&blk)
67
73
  wait_for_loaded
68
74
  instance_exec(&blk)
69
75
  self
70
76
  end
71
- alias act use
77
+ alias act_dsl use_dsl
72
78
 
73
79
  def url_template
74
80
  WatirPump.config.base_url + self.class.uri
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir_pump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartek Wilczek
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
138
  version: '0'
139
139
  requirements: []
140
140
  rubyforge_project:
141
- rubygems_version: 2.6.11
141
+ rubygems_version: 2.6.13
142
142
  signing_key:
143
143
  specification_version: 4
144
144
  summary: Page Objects for Watir