unobtainium 0.8.0 → 0.8.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 +4 -4
- data/.gitignore +14 -0
- data/.travis.yml +3 -0
- data/Gemfile.lock +16 -19
- data/docs/CONFIGURATION.md +2 -105
- data/lib/unobtainium/drivers/appium.rb +1 -0
- data/lib/unobtainium/version.rb +1 -1
- data/lib/unobtainium/world.rb +12 -1
- data/spec/spec_helper.rb +0 -6
- data/spec/utility_spec.rb +1 -1
- data/spec/world_spec.rb +1 -1
- data/unobtainium.gemspec +6 -4
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32ec07edb9ef9b7a1794e3660a6dbaedec57054f
|
4
|
+
data.tar.gz: 36ec4332fb3921acb4e3b723b4fe0f208bc839e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 140e9dbdc8f5f83d4ff607ffd9fe5381652f710e3a9cf6036ef278daa3da8c792c450883b701395680094997983bd880ee5dc5eb5d0403fd2f690da05b311d13
|
7
|
+
data.tar.gz: 5f6dcef3056e6110c49a6b3fba2913641f43a1c4a15895c5802edf3af8569e6be0ec0f2a66b01a88694937d450b6650683981f456f39d400447ac77e914fdf8e
|
data/.gitignore
CHANGED
@@ -10,10 +10,24 @@
|
|
10
10
|
/test/version_tmp/
|
11
11
|
/tmp/
|
12
12
|
|
13
|
+
# Used by dotenv library to load environment variables.
|
14
|
+
# .env
|
15
|
+
|
13
16
|
## Specific to RubyMotion:
|
14
17
|
.dat*
|
15
18
|
.repl_history
|
16
19
|
build/
|
20
|
+
*.bridgesupport
|
21
|
+
build-iPhoneOS/
|
22
|
+
build-iPhoneSimulator/
|
23
|
+
|
24
|
+
## Specific to RubyMotion (use of CocoaPods):
|
25
|
+
#
|
26
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
27
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
28
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
29
|
+
#
|
30
|
+
# vendor/Pods/
|
17
31
|
|
18
32
|
## Documentation cache and generated files:
|
19
33
|
/.yardoc/
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
unobtainium (0.8.
|
5
|
-
collapsium (~> 0.
|
6
|
-
collapsium-config (~> 0.
|
4
|
+
unobtainium (0.8.1)
|
5
|
+
collapsium (~> 0.6)
|
6
|
+
collapsium-config (~> 0.4)
|
7
7
|
ptools (~> 1.3)
|
8
8
|
sys-proctable (~> 1.1)
|
9
9
|
|
@@ -26,11 +26,10 @@ GEM
|
|
26
26
|
chromedriver-helper (1.0.0)
|
27
27
|
archive-zip (~> 0.7.0)
|
28
28
|
nokogiri (~> 1.6)
|
29
|
-
codeclimate-test-reporter (0.
|
30
|
-
|
31
|
-
collapsium (0.4.
|
32
|
-
|
33
|
-
collapsium (~> 0.4)
|
29
|
+
codeclimate-test-reporter (1.0.1)
|
30
|
+
collapsium (0.6.1)
|
31
|
+
collapsium-config (0.4.0)
|
32
|
+
collapsium (~> 0.6)
|
34
33
|
cucumber (2.4.0)
|
35
34
|
builder (>= 2.1.2)
|
36
35
|
cucumber-core (~> 1.5.0)
|
@@ -51,22 +50,20 @@ GEM
|
|
51
50
|
mini_portile2 (2.1.0)
|
52
51
|
multi_json (1.12.1)
|
53
52
|
multi_test (0.1.2)
|
54
|
-
nokogiri (1.6.8)
|
53
|
+
nokogiri (1.6.8.1)
|
55
54
|
mini_portile2 (~> 2.1.0)
|
56
|
-
|
57
|
-
parser (2.3.1.2)
|
55
|
+
parser (2.3.1.4)
|
58
56
|
ast (~> 2.2)
|
59
57
|
phantomjs (2.1.1.0)
|
60
|
-
pkg-config (1.1.7)
|
61
58
|
powerpack (0.1.1)
|
62
59
|
ptools (1.3.3)
|
63
60
|
rainbow (2.1.0)
|
64
|
-
rake (11.
|
61
|
+
rake (11.3.0)
|
65
62
|
rspec (3.5.0)
|
66
63
|
rspec-core (~> 3.5.0)
|
67
64
|
rspec-expectations (~> 3.5.0)
|
68
65
|
rspec-mocks (~> 3.5.0)
|
69
|
-
rspec-core (3.5.
|
66
|
+
rspec-core (3.5.4)
|
70
67
|
rspec-support (~> 3.5.0)
|
71
68
|
rspec-expectations (3.5.0)
|
72
69
|
diff-lcs (>= 1.2.0, < 2.0)
|
@@ -75,7 +72,7 @@ GEM
|
|
75
72
|
diff-lcs (>= 1.2.0, < 2.0)
|
76
73
|
rspec-support (~> 3.5.0)
|
77
74
|
rspec-support (3.5.0)
|
78
|
-
rubocop (0.
|
75
|
+
rubocop (0.45.0)
|
79
76
|
parser (>= 2.3.1.1, < 3.0)
|
80
77
|
powerpack (~> 0.1)
|
81
78
|
rainbow (>= 1.99.1, < 3.0)
|
@@ -92,7 +89,7 @@ GEM
|
|
92
89
|
json (>= 1.8, < 3)
|
93
90
|
simplecov-html (~> 0.10.0)
|
94
91
|
simplecov-html (0.10.0)
|
95
|
-
sys-proctable (1.1.
|
92
|
+
sys-proctable (1.1.3)
|
96
93
|
tomlrb (1.2.3)
|
97
94
|
unicode-display_width (1.1.1)
|
98
95
|
websocket (1.2.3)
|
@@ -108,13 +105,13 @@ DEPENDENCIES
|
|
108
105
|
codeclimate-test-reporter
|
109
106
|
cucumber
|
110
107
|
phantomjs
|
111
|
-
rake (~> 11.
|
108
|
+
rake (~> 11.3)
|
112
109
|
rspec (~> 3.5)
|
113
|
-
rubocop (~> 0.
|
110
|
+
rubocop (~> 0.45)
|
114
111
|
selenium-webdriver
|
115
112
|
simplecov (~> 0.12)
|
116
113
|
unobtainium!
|
117
114
|
yard (~> 0.9)
|
118
115
|
|
119
116
|
BUNDLED WITH
|
120
|
-
1.
|
117
|
+
1.13.6
|
data/docs/CONFIGURATION.md
CHANGED
@@ -1,110 +1,7 @@
|
|
1
1
|
# Configuration
|
2
2
|
|
3
|
-
The
|
4
|
-
|
5
|
-
|
6
|
-
## Basic Configuration Features
|
7
|
-
|
8
|
-
### Pathed Access
|
9
|
-
|
10
|
-
`Config` is a `Hash` with pathed access. Take a nested structure such as this
|
11
|
-
as an example:
|
12
|
-
|
13
|
-
```yaml
|
14
|
-
---
|
15
|
-
foo:
|
16
|
-
bar: baz
|
17
|
-
```
|
18
|
-
|
19
|
-
Instead of accessing `config['foo']['bar']`, you can instead use a path such
|
20
|
-
as `config['foo.bar']`. The major benefit is that if *any* of the path components
|
21
|
-
does not exist, nil is returned (and the behaviour is equivalent to other access
|
22
|
-
methods such as `:fetch`, etc.)
|
23
|
-
|
24
|
-
Similarly you can use this type of access for writing: `config['baz.quux'] = 42`
|
25
|
-
will create both the `baz` hash, and it's child the `quux` key.
|
26
|
-
|
27
|
-
### Configuration Loading
|
28
|
-
|
29
|
-
If you're using `World.config`, configuration is automatically loaded at the
|
30
|
-
time it's first invoked from the location specified by `World.config_file`, which
|
31
|
-
defaults to `config/config.yml`.
|
32
|
-
|
33
|
-
This is equivalent to invoking `Config.load_config` with that location manually.
|
34
|
-
|
35
|
-
### Local Configuration Overrides
|
36
|
-
|
37
|
-
For the example file of `config/config.yml`, if a file with the same path and
|
38
|
-
name, and the name postfix `-local` exists (i.e. `config/config-local.yml`), that
|
39
|
-
file will also be loaded. It's keys will be recursively added to the keys from the
|
40
|
-
main configuration file, overwriting only leaves, not entire hashes.
|
41
|
-
|
42
|
-
Example:
|
43
|
-
|
44
|
-
```yaml
|
45
|
-
# config/config.yml
|
46
|
-
---
|
47
|
-
foo:
|
48
|
-
bar: 42
|
49
|
-
baz: quux
|
50
|
-
|
51
|
-
# config/config-local.yml
|
52
|
-
---
|
53
|
-
something: else
|
54
|
-
foo:
|
55
|
-
baz: override
|
56
|
-
|
57
|
-
# result
|
58
|
-
---
|
59
|
-
something: else
|
60
|
-
foo:
|
61
|
-
bar: 42
|
62
|
-
baz: override
|
63
|
-
```
|
64
|
-
|
65
|
-
### Configuration Extension
|
66
|
-
|
67
|
-
An additional feature of the `Config` class is that you can extend individual
|
68
|
-
hashes with values from other hashes.
|
69
|
-
|
70
|
-
```yaml
|
71
|
-
---
|
72
|
-
root:
|
73
|
-
foo: bar
|
74
|
-
derived:
|
75
|
-
baz: quux
|
76
|
-
extends: root
|
77
|
-
```
|
78
|
-
|
79
|
-
This results in:
|
80
|
-
|
81
|
-
```yaml
|
82
|
-
---
|
83
|
-
root:
|
84
|
-
foo: bar
|
85
|
-
derived:
|
86
|
-
baz: quux
|
87
|
-
foo: bar
|
88
|
-
base: root
|
89
|
-
```
|
90
|
-
|
91
|
-
**Notes:**
|
92
|
-
|
93
|
-
- This feature means that `extends` and `base` are reserved configuration keys!
|
94
|
-
- Multiple levels of extension are supported. The `base` keyword will *always
|
95
|
-
name the root-most element*, not the immediate ancestor.
|
96
|
-
- Extending from multiple bases is not supported.
|
97
|
-
- Extending from nonexistent bases is supported; all that happens is that the
|
98
|
-
`base` key is set.
|
99
|
-
|
100
|
-
### Environment Variable Override
|
101
|
-
|
102
|
-
Given a configuration path, any environment variable with the same name (change
|
103
|
-
path to upper case letters and replace `.` with `_`, e.g. `foo.bar` becomes
|
104
|
-
`FOO_BAR`) overrides the values in the configuration file.
|
105
|
-
|
106
|
-
If the environment variable is parseable as JSON, then that parsed JSON will
|
107
|
-
**replace** the original configuration path (i.e. it will not be merged).
|
3
|
+
The main configuration features are best described by [collapsium-config](https://github.com/jfinkhaeuser/collapsium-config)
|
4
|
+
upon which the configuration is based.
|
108
5
|
|
109
6
|
## Configuration Values Interpreted by World
|
110
7
|
|
data/lib/unobtainium/version.rb
CHANGED
data/lib/unobtainium/world.rb
CHANGED
@@ -82,7 +82,18 @@ module Unobtainium
|
|
82
82
|
# The merged/extended options might define a "base"; that's the label
|
83
83
|
# we need to use.
|
84
84
|
if not options.nil? and not options["base"].nil?
|
85
|
-
|
85
|
+
bases = options["base"]
|
86
|
+
|
87
|
+
# Collapsium config returns an Array of bases, but we really only want
|
88
|
+
# one. We'll have to do the sensible thing and only use one of the bases
|
89
|
+
# which also is a driver for the label. Since there's no better choice,
|
90
|
+
# let's default to the first of those.
|
91
|
+
bases.each do |base|
|
92
|
+
if not base.start_with?(".drivers.")
|
93
|
+
next
|
94
|
+
end
|
95
|
+
label = base.gsub(/^\.drivers\./, '')
|
96
|
+
end
|
86
97
|
|
87
98
|
# Unfortunately, the "base" key may not be recognized by the drivers,
|
88
99
|
# which could lead to errors down the road. Let's remove it; it's reserved
|
data/spec/spec_helper.rb
CHANGED
data/spec/utility_spec.rb
CHANGED
@@ -12,7 +12,7 @@ class Tester
|
|
12
12
|
end # class Tester
|
13
13
|
|
14
14
|
describe ::Unobtainium::Support::Utility do
|
15
|
-
it "returns nil for a
|
15
|
+
it "returns nil for a label that can't be matched" do
|
16
16
|
expect(Tester.normalize_label("nomatch")).to be_nil
|
17
17
|
expect(Tester.normalize_label(:nomatch)).to be_nil
|
18
18
|
end
|
data/spec/world_spec.rb
CHANGED
@@ -32,7 +32,7 @@ describe ::Unobtainium::World do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "extends driver options, but doesn't pass 'base' on" do
|
35
|
-
expect(@tester.config["drivers.leaf.base"]).to eql
|
35
|
+
expect(@tester.config["drivers.leaf.base"]).to eql %w(.drivers.mock)
|
36
36
|
expect(@tester.driver.passed_options["base"]).to be_nil
|
37
37
|
end
|
38
38
|
end
|
data/unobtainium.gemspec
CHANGED
@@ -13,6 +13,7 @@ require 'unobtainium/version'
|
|
13
13
|
|
14
14
|
# rubocop:disable Style/UnneededPercentQ, Style/ExtraSpacing
|
15
15
|
# rubocop:disable Style/SpaceAroundOperators
|
16
|
+
# rubocop:disable Metrics/BlockLength
|
16
17
|
Gem::Specification.new do |spec|
|
17
18
|
spec.name = "unobtainium"
|
18
19
|
spec.version = Unobtainium::VERSION
|
@@ -43,8 +44,8 @@ Gem::Specification.new do |spec|
|
|
43
44
|
"'phantomjs'"
|
44
45
|
|
45
46
|
spec.add_development_dependency "bundler", "~> 1.12"
|
46
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
47
|
-
spec.add_development_dependency "rake", "~> 11.
|
47
|
+
spec.add_development_dependency "rubocop", "~> 0.45"
|
48
|
+
spec.add_development_dependency "rake", "~> 11.3"
|
48
49
|
spec.add_development_dependency "rspec", "~> 3.5"
|
49
50
|
spec.add_development_dependency "simplecov", "~> 0.12"
|
50
51
|
spec.add_development_dependency "yard", "~> 0.9"
|
@@ -56,8 +57,9 @@ Gem::Specification.new do |spec|
|
|
56
57
|
|
57
58
|
spec.add_dependency "sys-proctable", "~> 1.1"
|
58
59
|
spec.add_dependency "ptools", "~> 1.3"
|
59
|
-
spec.add_dependency "collapsium", "~> 0.
|
60
|
-
spec.add_dependency "collapsium-config", "~> 0.
|
60
|
+
spec.add_dependency "collapsium", "~> 0.6"
|
61
|
+
spec.add_dependency "collapsium-config", "~> 0.4"
|
61
62
|
end
|
63
|
+
# rubocop:enable Metrics/BlockLength
|
62
64
|
# rubocop:enable Style/SpaceAroundOperators
|
63
65
|
# rubocop:enable Style/UnneededPercentQ, Style/ExtraSpacing
|
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.8.
|
4
|
+
version: 0.8.1
|
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-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.45'
|
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.45'
|
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.3'
|
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.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,28 +198,28 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0.
|
201
|
+
version: '0.6'
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0.
|
208
|
+
version: '0.6'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: collapsium-config
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: '0.
|
215
|
+
version: '0.4'
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '0.
|
222
|
+
version: '0.4'
|
223
223
|
description: "\n Unobtainium wraps Selenium and Appium in a simple driver abstraction
|
224
224
|
so that\n test code can more easily cover desktop browsers, mobile browsers and
|
225
225
|
mobile\n apps.\n\n Some additional useful functionality for the maintenance
|