unobtainium 0.6.0 → 0.7.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/Gemfile.lock +58 -46
- data/README.md +3 -10
- data/lib/unobtainium/drivers/appium.rb +24 -13
- data/lib/unobtainium/drivers/selenium.rb +81 -9
- data/lib/unobtainium/version.rb +1 -1
- data/unobtainium.gemspec +9 -6
- metadata +56 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d69617dc2a12c35e334b4d4e85b680237aef970c
|
|
4
|
+
data.tar.gz: fed5f537d65ca9dfe6c5282e6ed5eae2701414a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94ec3a3a6520ddfa7a24349c92c50ff603a34afe62a24e0b8bb7e82668e4181f2aaf1d23dc1d84dbfec66b9327628520d48055ed16e0a213cf3b682531d90496
|
|
7
|
+
data.tar.gz: 964c731c3fc82ff0c0357ed7f43b0aabbba5ec2d02425180ee0ee3672ff505763391ab8ad796bb5ee7d207d7a3c5008a4e5cf465b312c71bea24cf251f3aab55
|
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
unobtainium (0.
|
|
4
|
+
unobtainium (0.7.0)
|
|
5
|
+
collapsium (~> 0.3)
|
|
5
6
|
collapsium-config (~> 0.1)
|
|
6
|
-
|
|
7
|
+
ptools (~> 1.3)
|
|
8
|
+
sys-proctable (~> 1.1)
|
|
7
9
|
|
|
8
10
|
GEM
|
|
9
11
|
remote: https://rubygems.org/
|
|
@@ -14,78 +16,87 @@ GEM
|
|
|
14
16
|
nokogiri (~> 1.6.6)
|
|
15
17
|
selenium-webdriver (~> 2.49)
|
|
16
18
|
tomlrb (~> 1.1)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
archive-zip (0.7.0)
|
|
20
|
+
io-like (~> 0.3.0)
|
|
21
|
+
ast (2.3.0)
|
|
22
|
+
awesome_print (1.7.0)
|
|
19
23
|
builder (3.2.2)
|
|
20
24
|
childprocess (0.5.9)
|
|
21
25
|
ffi (~> 1.0, >= 1.0.11)
|
|
22
|
-
|
|
26
|
+
chromedriver-helper (1.0.0)
|
|
27
|
+
archive-zip (~> 0.7.0)
|
|
28
|
+
nokogiri (~> 1.6)
|
|
29
|
+
codeclimate-test-reporter (0.6.0)
|
|
23
30
|
simplecov (>= 0.7.1, < 1.0.0)
|
|
24
|
-
collapsium (0.
|
|
31
|
+
collapsium (0.3.0)
|
|
25
32
|
collapsium-config (0.1.1)
|
|
26
33
|
collapsium (~> 0.1)
|
|
27
|
-
cucumber (2.
|
|
34
|
+
cucumber (2.4.0)
|
|
28
35
|
builder (>= 2.1.2)
|
|
29
|
-
cucumber-core (~> 1.
|
|
36
|
+
cucumber-core (~> 1.5.0)
|
|
30
37
|
cucumber-wire (~> 0.0.1)
|
|
31
38
|
diff-lcs (>= 1.1.3)
|
|
32
|
-
gherkin (~>
|
|
39
|
+
gherkin (~> 4.0)
|
|
33
40
|
multi_json (>= 1.7.5, < 2.0)
|
|
34
41
|
multi_test (>= 0.1.2)
|
|
35
|
-
cucumber-core (1.
|
|
36
|
-
gherkin (~>
|
|
42
|
+
cucumber-core (1.5.0)
|
|
43
|
+
gherkin (~> 4.0)
|
|
37
44
|
cucumber-wire (0.0.1)
|
|
38
45
|
diff-lcs (1.2.5)
|
|
39
46
|
docile (1.1.5)
|
|
40
|
-
ffi (1.9.
|
|
41
|
-
gherkin (
|
|
47
|
+
ffi (1.9.14)
|
|
48
|
+
gherkin (4.0.0)
|
|
49
|
+
io-like (0.3.0)
|
|
42
50
|
json (1.8.3)
|
|
43
|
-
mini_portile2 (2.
|
|
44
|
-
multi_json (1.12.
|
|
51
|
+
mini_portile2 (2.1.0)
|
|
52
|
+
multi_json (1.12.1)
|
|
45
53
|
multi_test (0.1.2)
|
|
46
|
-
nokogiri (1.6.
|
|
47
|
-
mini_portile2 (~> 2.
|
|
48
|
-
|
|
54
|
+
nokogiri (1.6.8)
|
|
55
|
+
mini_portile2 (~> 2.1.0)
|
|
56
|
+
pkg-config (~> 1.1.7)
|
|
57
|
+
parser (2.3.1.2)
|
|
49
58
|
ast (~> 2.2)
|
|
50
59
|
phantomjs (2.1.1.0)
|
|
60
|
+
pkg-config (1.1.7)
|
|
51
61
|
powerpack (0.1.1)
|
|
62
|
+
ptools (1.3.3)
|
|
52
63
|
rainbow (2.1.0)
|
|
53
|
-
rake (11.
|
|
54
|
-
rspec (3.
|
|
55
|
-
rspec-core (~> 3.
|
|
56
|
-
rspec-expectations (~> 3.
|
|
57
|
-
rspec-mocks (~> 3.
|
|
58
|
-
rspec-core (3.
|
|
59
|
-
rspec-support (~> 3.
|
|
60
|
-
rspec-expectations (3.
|
|
64
|
+
rake (11.2.2)
|
|
65
|
+
rspec (3.5.0)
|
|
66
|
+
rspec-core (~> 3.5.0)
|
|
67
|
+
rspec-expectations (~> 3.5.0)
|
|
68
|
+
rspec-mocks (~> 3.5.0)
|
|
69
|
+
rspec-core (3.5.1)
|
|
70
|
+
rspec-support (~> 3.5.0)
|
|
71
|
+
rspec-expectations (3.5.0)
|
|
61
72
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
62
|
-
rspec-support (~> 3.
|
|
63
|
-
rspec-mocks (3.
|
|
73
|
+
rspec-support (~> 3.5.0)
|
|
74
|
+
rspec-mocks (3.5.0)
|
|
64
75
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
65
|
-
rspec-support (~> 3.
|
|
66
|
-
rspec-support (3.
|
|
67
|
-
rubocop (0.
|
|
68
|
-
parser (>= 2.3.1.
|
|
76
|
+
rspec-support (~> 3.5.0)
|
|
77
|
+
rspec-support (3.5.0)
|
|
78
|
+
rubocop (0.41.2)
|
|
79
|
+
parser (>= 2.3.1.1, < 3.0)
|
|
69
80
|
powerpack (~> 0.1)
|
|
70
81
|
rainbow (>= 1.99.1, < 3.0)
|
|
71
82
|
ruby-progressbar (~> 1.7)
|
|
72
83
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
73
|
-
ruby-progressbar (1.8.
|
|
84
|
+
ruby-progressbar (1.8.1)
|
|
74
85
|
rubyzip (1.2.0)
|
|
75
|
-
selenium-webdriver (2.53.
|
|
86
|
+
selenium-webdriver (2.53.4)
|
|
76
87
|
childprocess (~> 0.5)
|
|
77
88
|
rubyzip (~> 1.0)
|
|
78
89
|
websocket (~> 1.0)
|
|
79
|
-
simplecov (0.
|
|
90
|
+
simplecov (0.12.0)
|
|
80
91
|
docile (~> 1.1.0)
|
|
81
|
-
json (
|
|
92
|
+
json (>= 1.8, < 3)
|
|
82
93
|
simplecov-html (~> 0.10.0)
|
|
83
94
|
simplecov-html (0.10.0)
|
|
84
|
-
sys-proctable (1.
|
|
85
|
-
tomlrb (1.2.
|
|
86
|
-
unicode-display_width (1.0
|
|
95
|
+
sys-proctable (1.1.1)
|
|
96
|
+
tomlrb (1.2.2)
|
|
97
|
+
unicode-display_width (1.1.0)
|
|
87
98
|
websocket (1.2.3)
|
|
88
|
-
yard (0.
|
|
99
|
+
yard (0.9.0)
|
|
89
100
|
|
|
90
101
|
PLATFORMS
|
|
91
102
|
ruby
|
|
@@ -93,16 +104,17 @@ PLATFORMS
|
|
|
93
104
|
DEPENDENCIES
|
|
94
105
|
appium_lib
|
|
95
106
|
bundler (~> 1.12)
|
|
107
|
+
chromedriver-helper
|
|
96
108
|
codeclimate-test-reporter
|
|
97
109
|
cucumber
|
|
98
110
|
phantomjs
|
|
99
|
-
rake (~> 11.
|
|
100
|
-
rspec (~> 3.
|
|
101
|
-
rubocop (~> 0.
|
|
111
|
+
rake (~> 11.2)
|
|
112
|
+
rspec (~> 3.5)
|
|
113
|
+
rubocop (~> 0.41)
|
|
102
114
|
selenium-webdriver
|
|
103
|
-
simplecov (~> 0.
|
|
115
|
+
simplecov (~> 0.12)
|
|
104
116
|
unobtainium!
|
|
105
|
-
yard (~> 0.
|
|
117
|
+
yard (~> 0.9)
|
|
106
118
|
|
|
107
119
|
BUNDLED WITH
|
|
108
|
-
1.12.
|
|
120
|
+
1.12.5
|
data/README.md
CHANGED
|
@@ -29,16 +29,6 @@ You can use unobtainium on its own, or use it as part of a
|
|
|
29
29
|
Unobtainium's functionality is in standalone classes, but it's all combined in
|
|
30
30
|
the `Unobtainium::World` module.
|
|
31
31
|
|
|
32
|
-
- The `PathedHash` class extends `Hash` by allowing paths to nested values, e.g.:
|
|
33
|
-
|
|
34
|
-
```ruby
|
|
35
|
-
h = PathedHash.new { "foo" => { "bar" => 42 }}
|
|
36
|
-
h["foo.bar"] == 42 # true
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
- The `Config` class is a `PathedHash`, but also reads JSON or YAML files to
|
|
40
|
-
initialize itself with values. See the documentation on [configuration features](docs/CONFIGURATION.md)
|
|
41
|
-
for details.
|
|
42
32
|
- The `Runtime` class is a singleton and a `Hash`-like container (but simpler),
|
|
43
33
|
that destroys all of its contents at the end of a script, calling custom
|
|
44
34
|
destructors if required. That allows for clean teardown and avoids everything
|
|
@@ -53,6 +43,9 @@ the `Unobtainium::World` module.
|
|
|
53
43
|
drv.navigate.to "..." # delegates to Selenium or Appium
|
|
54
44
|
```
|
|
55
45
|
|
|
46
|
+
See the documentation on [configuration features](docs/CONFIGURATION.md) for
|
|
47
|
+
details on configuration.
|
|
48
|
+
|
|
56
49
|
## World
|
|
57
50
|
|
|
58
51
|
The World module combines all of the above by providing a simple entry point
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
# All rights reserved.
|
|
8
8
|
#
|
|
9
9
|
|
|
10
|
+
require 'collapsium'
|
|
11
|
+
|
|
10
12
|
require_relative '../support/util'
|
|
11
13
|
|
|
12
14
|
module Unobtainium
|
|
@@ -19,7 +21,6 @@ module Unobtainium
|
|
|
19
21
|
class Appium
|
|
20
22
|
# Recognized labels for matching the driver
|
|
21
23
|
LABELS = {
|
|
22
|
-
appium: [],
|
|
23
24
|
ios: [:iphone, :ipad],
|
|
24
25
|
android: [],
|
|
25
26
|
}.freeze
|
|
@@ -57,18 +58,31 @@ module Unobtainium
|
|
|
57
58
|
##
|
|
58
59
|
# Sanitize options, and expand the :browser key, if present.
|
|
59
60
|
def resolve_options(label, options)
|
|
60
|
-
#
|
|
61
|
+
# Normalize label and options
|
|
61
62
|
normalized = normalize_label(label)
|
|
63
|
+
options = ::Collapsium::UberHash.new(options || {})
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
# Merge 'caps' and 'desired_capabilities', letting the former win
|
|
66
|
+
options[:caps] =
|
|
67
|
+
::Collapsium::UberHash.new(options[:desired_capabilities])
|
|
68
|
+
.recursive_merge(options[:caps])
|
|
69
|
+
options.delete(:desired_capabilities)
|
|
70
|
+
options.delete('desired_capabilities')
|
|
71
|
+
|
|
72
|
+
# The label specifies the platform, if no other platform is given.
|
|
73
|
+
if options['caps.platformName']
|
|
74
|
+
options['caps.platformName'] = normalized.to_s
|
|
68
75
|
end
|
|
69
76
|
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
# Make the appium driver behave a little more like Selenium by using
|
|
78
|
+
# the :url key if the normalized label is remote, and setting
|
|
79
|
+
# appropriate options.
|
|
80
|
+
set_url = options['appium_lib.server_url']
|
|
81
|
+
if set_url and not set_url == options['url']
|
|
82
|
+
warn "You have the remote URL '#{set_url}' set in your options, "\
|
|
83
|
+
"so we're not replacing it with '#{options['url']}'!"
|
|
84
|
+
else
|
|
85
|
+
options['appium_lib.server_url'] = options['url']
|
|
72
86
|
end
|
|
73
87
|
|
|
74
88
|
# If no app is given, but a browser is requested, we can supplement
|
|
@@ -99,7 +113,7 @@ module Unobtainium
|
|
|
99
113
|
browser = options['browser'].downcase.to_sym
|
|
100
114
|
|
|
101
115
|
# Platform
|
|
102
|
-
platform = options['caps
|
|
116
|
+
platform = options['caps.platformName'].to_s.downcase.to_sym
|
|
103
117
|
|
|
104
118
|
# If we have supplement data matching the platform and browser, great!
|
|
105
119
|
data = BROWSER_MATCHES[platform][browser]
|
|
@@ -109,12 +123,9 @@ module Unobtainium
|
|
|
109
123
|
|
|
110
124
|
# We do have to check that we're not overwriting any of the keys.
|
|
111
125
|
data.each do |key, value|
|
|
112
|
-
key_s = key.to_s
|
|
113
126
|
option_value = nil
|
|
114
127
|
if options['caps'].key?(key)
|
|
115
128
|
option_value = options['caps'][key]
|
|
116
|
-
elsif options['caps'].key?(key_s)
|
|
117
|
-
option_value = options['caps'][key_s]
|
|
118
129
|
end
|
|
119
130
|
|
|
120
131
|
if option_value.nil? or option_value == value
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
# All rights reserved.
|
|
8
8
|
#
|
|
9
9
|
|
|
10
|
+
require 'collapsium'
|
|
11
|
+
|
|
10
12
|
require_relative '../support/util'
|
|
11
13
|
|
|
12
14
|
module Unobtainium
|
|
@@ -22,10 +24,17 @@ module Unobtainium
|
|
|
22
24
|
firefox: [:ff,],
|
|
23
25
|
internet_explorer: [:internetexplorer, :explorer, :ie,],
|
|
24
26
|
safari: [],
|
|
25
|
-
chrome: [
|
|
26
|
-
|
|
27
|
+
chrome: [],
|
|
28
|
+
chromium: [],
|
|
27
29
|
}.freeze
|
|
28
30
|
|
|
31
|
+
# When :chromium is selected, search for these executables. The
|
|
32
|
+
# resulting label will be :chrome, but with an executable path
|
|
33
|
+
# set in the options.
|
|
34
|
+
CHROMIUM_EXECUTABLES = [
|
|
35
|
+
'chromium-browser'
|
|
36
|
+
].freeze
|
|
37
|
+
|
|
29
38
|
class << self
|
|
30
39
|
include ::Unobtainium::Support::Utility
|
|
31
40
|
|
|
@@ -49,15 +58,23 @@ module Unobtainium
|
|
|
49
58
|
##
|
|
50
59
|
# Selenium really wants symbol keys for the options
|
|
51
60
|
def resolve_options(label, options)
|
|
52
|
-
|
|
61
|
+
# Normalize label and options
|
|
62
|
+
normalized = normalize_label(label)
|
|
63
|
+
options = ::Collapsium::UberHash.new(options || {})
|
|
53
64
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
# Merge 'caps' and 'desired_capabilities', letting the latter win
|
|
66
|
+
options[:desired_capabilities] =
|
|
67
|
+
::Collapsium::UberHash.new(options[:caps])
|
|
68
|
+
.recursive_merge(options[:desired_capabilities])
|
|
69
|
+
options.delete(:caps)
|
|
70
|
+
options.delete('caps')
|
|
71
|
+
|
|
72
|
+
# Chromium is chrome, but with a different binary. Help with that.
|
|
73
|
+
label, options = supplement_chromium(normalized, options)
|
|
59
74
|
|
|
60
|
-
|
|
75
|
+
# Selenium expects the first level keys to be symbols *only*, so
|
|
76
|
+
# indifferent access from UberHash isn't good. We have to fix that.
|
|
77
|
+
options = fix_options(options)
|
|
61
78
|
|
|
62
79
|
return label, options
|
|
63
80
|
end
|
|
@@ -68,6 +85,61 @@ module Unobtainium
|
|
|
68
85
|
driver = ::Selenium::WebDriver.for(normalize_label(label), options)
|
|
69
86
|
return driver
|
|
70
87
|
end
|
|
88
|
+
|
|
89
|
+
private
|
|
90
|
+
|
|
91
|
+
##
|
|
92
|
+
# If the driver was :chromium, try to use the :chrome driver with
|
|
93
|
+
# options pointing to the chromium binary.
|
|
94
|
+
def supplement_chromium(label, options)
|
|
95
|
+
# Only applies to :chromium
|
|
96
|
+
if :chromium != label
|
|
97
|
+
return label, options
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Try to find a chromium binary
|
|
101
|
+
binary = nil
|
|
102
|
+
require 'ptools'
|
|
103
|
+
CHROMIUM_EXECUTABLES.each do |name|
|
|
104
|
+
location = File.which(name)
|
|
105
|
+
if not location.nil?
|
|
106
|
+
binary = location
|
|
107
|
+
break
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# If we found a chromium binary, we can modify the options.
|
|
112
|
+
# Otherwise, we don't do a thing and let selenium fail.
|
|
113
|
+
if binary.nil?
|
|
114
|
+
return label, options
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
set_binary = options['desired_capabilities.chromeOptions.binary']
|
|
118
|
+
if set_binary and not set_binary == binary
|
|
119
|
+
# There's already a binary set. We should warn about this, but
|
|
120
|
+
# otherwise leave this choice.
|
|
121
|
+
warn "You have the chrome binary '#{set_binary}' set in your "\
|
|
122
|
+
"options, so we're not replacing it with '#{binary}'!"
|
|
123
|
+
else
|
|
124
|
+
options['desired_capabilities.chromeOptions.binary'] = binary
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Selenium doesn't recognize :chromium, but :chrome with the above
|
|
128
|
+
# options works.
|
|
129
|
+
return :chrome, options
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Selenium expects the first level keys to be symbols *only*, so
|
|
133
|
+
# indifferent access from UberHash isn't good. We have to fix that.
|
|
134
|
+
def fix_options(options)
|
|
135
|
+
result = {}
|
|
136
|
+
|
|
137
|
+
options.each do |key, value|
|
|
138
|
+
result[key.to_sym] = value
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
return result
|
|
142
|
+
end
|
|
71
143
|
end # class << self
|
|
72
144
|
end # class Selenium
|
|
73
145
|
|
data/lib/unobtainium/version.rb
CHANGED
data/unobtainium.gemspec
CHANGED
|
@@ -43,17 +43,20 @@ Gem::Specification.new do |spec|
|
|
|
43
43
|
"'phantomjs'"
|
|
44
44
|
|
|
45
45
|
spec.add_development_dependency "bundler", "~> 1.12"
|
|
46
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
|
47
|
-
spec.add_development_dependency "rake", "~> 11.
|
|
48
|
-
spec.add_development_dependency "rspec", "~> 3.
|
|
49
|
-
spec.add_development_dependency "simplecov", "~> 0.
|
|
50
|
-
spec.add_development_dependency "yard", "~> 0.
|
|
46
|
+
spec.add_development_dependency "rubocop", "~> 0.41"
|
|
47
|
+
spec.add_development_dependency "rake", "~> 11.2"
|
|
48
|
+
spec.add_development_dependency "rspec", "~> 3.5"
|
|
49
|
+
spec.add_development_dependency "simplecov", "~> 0.12"
|
|
50
|
+
spec.add_development_dependency "yard", "~> 0.9"
|
|
51
51
|
spec.add_development_dependency "appium_lib"
|
|
52
52
|
spec.add_development_dependency "selenium-webdriver"
|
|
53
|
+
spec.add_development_dependency "chromedriver-helper"
|
|
53
54
|
spec.add_development_dependency "phantomjs"
|
|
54
55
|
spec.add_development_dependency "cucumber"
|
|
55
56
|
|
|
56
|
-
spec.add_dependency "sys-proctable", "~> 1.
|
|
57
|
+
spec.add_dependency "sys-proctable", "~> 1.1"
|
|
58
|
+
spec.add_dependency "ptools", "~> 1.3"
|
|
59
|
+
spec.add_dependency "collapsium", "~> 0.3"
|
|
57
60
|
spec.add_dependency "collapsium-config", "~> 0.1"
|
|
58
61
|
end
|
|
59
62
|
# rubocop:enable Style/SpaceAroundOperators
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: unobtainium
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jens Finkhaeuser
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-07-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -30,70 +30,70 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
33
|
+
version: '0.41'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
40
|
+
version: '0.41'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rake
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '11.
|
|
47
|
+
version: '11.2'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '11.
|
|
54
|
+
version: '11.2'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rspec
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '3.
|
|
61
|
+
version: '3.5'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '3.
|
|
68
|
+
version: '3.5'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: simplecov
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.
|
|
75
|
+
version: '0.12'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.
|
|
82
|
+
version: '0.12'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: yard
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.
|
|
89
|
+
version: '0.9'
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.
|
|
96
|
+
version: '0.9'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: appium_lib
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: chromedriver-helper
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: phantomjs
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -156,14 +170,42 @@ dependencies:
|
|
|
156
170
|
requirements:
|
|
157
171
|
- - "~>"
|
|
158
172
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '1.
|
|
173
|
+
version: '1.1'
|
|
174
|
+
type: :runtime
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '1.1'
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: ptools
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - "~>"
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '1.3'
|
|
188
|
+
type: :runtime
|
|
189
|
+
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - "~>"
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '1.3'
|
|
195
|
+
- !ruby/object:Gem::Dependency
|
|
196
|
+
name: collapsium
|
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - "~>"
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: '0.3'
|
|
160
202
|
type: :runtime
|
|
161
203
|
prerelease: false
|
|
162
204
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
205
|
requirements:
|
|
164
206
|
- - "~>"
|
|
165
207
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '
|
|
208
|
+
version: '0.3'
|
|
167
209
|
- !ruby/object:Gem::Dependency
|
|
168
210
|
name: collapsium-config
|
|
169
211
|
requirement: !ruby/object:Gem::Requirement
|