watir_pump 0.0.3 → 0.1.0
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 +4 -4
- data/lib/watir_pump/component.rb +14 -7
- data/lib/watir_pump/component_collection.rb +1 -1
- data/lib/watir_pump/constants.rb +21 -0
- data/lib/watir_pump/decorated_element.rb +18 -0
- data/lib/watir_pump/page.rb +1 -0
- metadata +19 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0444ad7afb7e39ef4c6b90b840fff6314b218560
|
4
|
+
data.tar.gz: 6514f75a50b8cce7f1511224e9bbe8479be64ba6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 700b00f4eeeabcc0314295a252461edea24801fd8d053f30fab7665648be4954725321ea6c4bbd3a4c5d3e2bd5c2011df944d82f3acca59aeecdac67e02b8aaa
|
7
|
+
data.tar.gz: 3c23071c446f307c0d4c9f603bb9ea03ac702751c8d2e1081396c2574129a73af4ddab00d390bd828b14caff32cf63dc6e3896a7079f898ab307a51d07446b16
|
data/lib/watir_pump/component.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'component_collection'
|
4
|
+
require_relative 'decorated_element'
|
5
|
+
require_relative 'constants'
|
4
6
|
require 'forwardable'
|
5
7
|
|
6
8
|
module WatirPump
|
7
9
|
class Component
|
8
10
|
extend Forwardable
|
9
11
|
|
12
|
+
include Constants
|
13
|
+
|
10
14
|
delegate %i[visible? present?] => :root
|
11
15
|
|
12
16
|
attr_reader :browser
|
@@ -30,7 +34,7 @@ module WatirPump
|
|
30
34
|
# span_reader, :title, id: asd
|
31
35
|
# will create methods :title and :title_element
|
32
36
|
# where :title is a shortcut for :title_element.text
|
33
|
-
|
37
|
+
Constants::READABLES.each do |watir_method|
|
34
38
|
define_method "#{watir_method}_reader" do |name, *args|
|
35
39
|
send(watir_method, "#{name}_element", *args)
|
36
40
|
define_method(name) do
|
@@ -40,7 +44,7 @@ module WatirPump
|
|
40
44
|
end
|
41
45
|
|
42
46
|
# Methods for element content writers
|
43
|
-
|
47
|
+
Constants::WRITABLES.each do |watir_method|
|
44
48
|
define_method "#{watir_method}_writer" do |name, *args|
|
45
49
|
send(watir_method, "#{name}_element", *args)
|
46
50
|
define_method("#{name}=") do |value|
|
@@ -50,7 +54,7 @@ module WatirPump
|
|
50
54
|
end
|
51
55
|
|
52
56
|
# Methods for element clickers
|
53
|
-
|
57
|
+
Constants::CLICKABLES.each do |watir_method|
|
54
58
|
define_method "#{watir_method}_clicker" do |name, *args|
|
55
59
|
send(watir_method, "#{name}_element", *args)
|
56
60
|
define_method(name) do
|
@@ -92,10 +96,13 @@ module WatirPump
|
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
95
|
-
def decorate(method,
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
+
def decorate(method, *klasses)
|
100
|
+
klasses.each do |klass|
|
101
|
+
original_name = "#{method}_before_#{klass}".to_sym
|
102
|
+
alias_method original_name, method
|
103
|
+
define_method method do |*args|
|
104
|
+
klass.new(send(original_name, *args))
|
105
|
+
end
|
99
106
|
end
|
100
107
|
end
|
101
108
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module WatirPump
|
4
|
+
module Constants
|
5
|
+
CLICKABLES = %i[
|
6
|
+
button
|
7
|
+
link
|
8
|
+
].freeze
|
9
|
+
|
10
|
+
WRITABLES = %i[
|
11
|
+
text_field
|
12
|
+
text_area
|
13
|
+
].freeze
|
14
|
+
|
15
|
+
READABLES = %i[
|
16
|
+
div
|
17
|
+
span
|
18
|
+
p
|
19
|
+
].freeze
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module WatirPump
|
4
|
+
class DecoratedElement
|
5
|
+
def initialize(element)
|
6
|
+
@element = element
|
7
|
+
end
|
8
|
+
|
9
|
+
def method_missing(name, *args, &blk)
|
10
|
+
return @element.send(name, *args, &blk) if @element.respond_to?(name)
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
def respond_to_missing?(name, include_private = false)
|
15
|
+
@element.respond_to?(name) || super
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/watir_pump/page.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watir_pump
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartek Wilczek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.11'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '12.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '12.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +131,8 @@ files:
|
|
117
131
|
- lib/watir_pump.rb
|
118
132
|
- lib/watir_pump/component.rb
|
119
133
|
- lib/watir_pump/component_collection.rb
|
134
|
+
- lib/watir_pump/constants.rb
|
135
|
+
- lib/watir_pump/decorated_element.rb
|
120
136
|
- lib/watir_pump/page.rb
|
121
137
|
homepage: https://github.com/bwilczek/watir_pump
|
122
138
|
licenses:
|
@@ -141,5 +157,5 @@ rubyforge_project:
|
|
141
157
|
rubygems_version: 2.6.13
|
142
158
|
signing_key:
|
143
159
|
specification_version: 4
|
144
|
-
summary: Page
|
160
|
+
summary: Page Object pattern for Watir. Hacker friendly and enterprise ready.
|
145
161
|
test_files: []
|