site_prism-all_there 0.1.1 → 0.2
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/README.md +4 -8
- data/lib/site_prism/all_there/mapped_items.rb +28 -0
- data/lib/site_prism/all_there/recursion_checker.rb +22 -24
- data/lib/site_prism/all_there/version.rb +1 -1
- data/lib/site_prism/all_there.rb +4 -7
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33b0ff10287854efb639165548ea3718efc57094ab5e0e1f11daf8ec7a0f58c6
|
4
|
+
data.tar.gz: 9257c12cd32806afeca3a0891754d942b3cfeac06dc62b082680bf2bac2ee9dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a2603278f614090cd7ecca80d1baf2ae6cf4085eec044fbb68df527d89e1dcec8729e634b89b5fcf70f5eef28bcf529e4f8be60bedd5ef2905c002390f02a14
|
7
|
+
data.tar.gz: 4357d5ce9856f1e9b0193481d813e3f6aeb9189e1950ed5b212e219144b66b3307ab9a710fb5150e8d3711551b1c57faef52bed3a896395fd2ba46accd320951
|
data/README.md
CHANGED
@@ -8,26 +8,22 @@ As such at the moment, the gem is very much considered a Work in Progress and wo
|
|
8
8
|
|
9
9
|
It is fully expected to have a number of bug-fix / refactor PR's in between each minor release.
|
10
10
|
|
11
|
-
|
11
|
+
Add the following code to either `spec_helper.rb` or `env.rb`
|
12
12
|
|
13
13
|
```rb
|
14
|
-
# In either spec_helper.rb or env.rb
|
15
|
-
|
16
14
|
require 'site_prism/all_there
|
17
15
|
|
18
|
-
# Then in either a config or initializer location (Or env.rb / spec_helper.rb)
|
19
|
-
|
20
16
|
SitePrism.use_all_there_gem = true
|
21
17
|
|
22
|
-
or
|
18
|
+
# or...
|
23
19
|
|
24
20
|
SitePrism.configure do |config|
|
25
21
|
config.use_all_there_gem = true
|
26
22
|
end
|
27
23
|
```
|
28
24
|
|
29
|
-
|
30
|
-
|
25
|
+
This gem is currently in the `0.x` phase, meaning it is API unstable and likely to change
|
26
|
+
structure going forwards, to conform to the pairing of both gems.
|
31
27
|
|
32
28
|
Happy Testing / Developing!
|
33
29
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SitePrism
|
4
|
+
module AllThere
|
5
|
+
# Returns the Mapped Items on a specific SitePrism object
|
6
|
+
#
|
7
|
+
# api private
|
8
|
+
#
|
9
|
+
class MappedItems
|
10
|
+
attr_reader :instance
|
11
|
+
private :instance
|
12
|
+
|
13
|
+
def initialize(instance)
|
14
|
+
@instance = instance
|
15
|
+
end
|
16
|
+
|
17
|
+
# All Mapped items on the SitePrism instance as a Symbol Array
|
18
|
+
def array
|
19
|
+
hash.values.flatten.uniq
|
20
|
+
end
|
21
|
+
|
22
|
+
# All Mapped items on the SitePrism instance as a Symbol Hash
|
23
|
+
def hash
|
24
|
+
instance.class.mapped_items(legacy: false)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -12,19 +12,23 @@ module SitePrism
|
|
12
12
|
@instance = instance
|
13
13
|
end
|
14
14
|
|
15
|
-
# This is currently hard-coded to perform a recursion of depth
|
16
|
-
# It will be refactored to use either no input,
|
15
|
+
# This is currently hard-coded to perform a recursion of depth +:one+
|
16
|
+
# It will be refactored to use either no input, +:none+, or +:one+ as the
|
17
17
|
# regular repo uses currently
|
18
|
-
def all_there?
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
def all_there?(recursion: :one)
|
19
|
+
if recursion == :one || SitePrism.recursion_setting == :one
|
20
|
+
current_class_all_there? &&
|
21
|
+
section_classes_all_there? &&
|
22
|
+
sections_classes_all_there?
|
23
|
+
else
|
24
|
+
current_class_all_there?
|
25
|
+
end
|
22
26
|
end
|
23
27
|
|
24
28
|
private
|
25
29
|
|
26
30
|
# This will check all elements that are in the current scope
|
27
|
-
# This is equivalent to checking a recursion value of +:none+
|
31
|
+
# This is equivalent to checking with a recursion value of +:none+
|
28
32
|
def current_class_all_there?
|
29
33
|
expected_item_map.flatten.all? { |name| there?(name) }
|
30
34
|
end
|
@@ -51,16 +55,16 @@ module SitePrism
|
|
51
55
|
|
52
56
|
def expected_item_map
|
53
57
|
[
|
54
|
-
expected(
|
55
|
-
expected(
|
56
|
-
expected(
|
57
|
-
expected(
|
58
|
-
expected(
|
58
|
+
expected(:element),
|
59
|
+
expected(:elements),
|
60
|
+
expected(:section),
|
61
|
+
expected(:sections),
|
62
|
+
expected(:iframe),
|
59
63
|
]
|
60
64
|
end
|
61
65
|
|
62
|
-
def expected(
|
63
|
-
|
66
|
+
def expected(type)
|
67
|
+
MappedItems.new(instance).hash[type].select { |name| elements_to_check.include?(name) }
|
64
68
|
end
|
65
69
|
|
66
70
|
# If the page or section has expected_items set, return expected_items that are mapped
|
@@ -68,16 +72,14 @@ module SitePrism
|
|
68
72
|
def elements_to_check
|
69
73
|
if _expected_items
|
70
74
|
SitePrism.logger.debug('Expected Items has been set.')
|
71
|
-
|
75
|
+
MappedItems.new(instance).array.select do |name|
|
76
|
+
_expected_items.include?(name)
|
77
|
+
end
|
72
78
|
else
|
73
|
-
|
79
|
+
MappedItems.new(instance).array
|
74
80
|
end
|
75
81
|
end
|
76
82
|
|
77
|
-
def _mapped_items
|
78
|
-
mapped_items.values.flatten.uniq
|
79
|
-
end
|
80
|
-
|
81
83
|
def _expected_items
|
82
84
|
instance.class.expected_items
|
83
85
|
end
|
@@ -85,10 +87,6 @@ module SitePrism
|
|
85
87
|
def there?(name)
|
86
88
|
instance.send("has_#{name}?")
|
87
89
|
end
|
88
|
-
|
89
|
-
def mapped_items
|
90
|
-
@mapped_items ||= instance.class.mapped_items(legacy: false)
|
91
|
-
end
|
92
90
|
end
|
93
91
|
end
|
94
92
|
end
|
data/lib/site_prism/all_there.rb
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'site_prism/all_there/mapped_items'
|
3
4
|
require 'site_prism/all_there/recursion_checker'
|
4
5
|
|
5
6
|
# Configure the behaviour of the site_prism-all_there gem
|
6
7
|
module SitePrism
|
7
8
|
class << self
|
8
|
-
|
9
|
+
# Configuration setting to use on a global scale
|
10
|
+
# Note this global setting can be overridden at runtime for each individual call
|
11
|
+
attr_accessor :recursion_setting
|
9
12
|
|
10
13
|
def configure
|
11
14
|
yield self
|
12
15
|
end
|
13
|
-
|
14
|
-
# Pass in a configuration setting to use on a global scale
|
15
|
-
# Note this can be overridden at runtime for each individual call
|
16
|
-
def recursion_setting
|
17
|
-
@recursion_setting ||= :none
|
18
|
-
end
|
19
16
|
end
|
20
17
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_prism-all_there
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luke Hill
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- LICENSE.md
|
93
93
|
- README.md
|
94
94
|
- lib/site_prism/all_there.rb
|
95
|
+
- lib/site_prism/all_there/mapped_items.rb
|
95
96
|
- lib/site_prism/all_there/recursion_checker.rb
|
96
97
|
- lib/site_prism/all_there/version.rb
|
97
98
|
homepage: https://github.com/site-prism/site_prism-all_there
|