site_prism-all_there 0.1 → 0.1.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/LICENSE.md +1 -1
- data/README.md +33 -1
- data/lib/site_prism/all_there/recursion_checker.rb +34 -18
- data/lib/site_prism/all_there/version.rb +1 -1
- data/lib/site_prism/all_there.rb +20 -0
- metadata +10 -10
- data/lib/site_prism.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13d340b7a35050d9497c7f8f581bdd9fd52e2e1de277dc8898160f00d589b116
|
4
|
+
data.tar.gz: 63f61f0accbe52abb0037aeb77d9f4a3f290281f0257e261520e20499beb5298
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82a6b3eaa4873687a697e2f969cf85b20c74ffb72fe84572a47ee37f076a1e5a26868f8be48c6aefce3ac42888d079d846a10cb84eb5eeca6f345c53a2684841
|
7
|
+
data.tar.gz: 952de2d7fb8aafef01786dadd9e3bc329d0d278fe660fab4835a1f2f085cdc9558ae1ff398c85d60dd2cf72567ed4ed3df605aef641f7da8145ba538fc7a3f59
|
data/LICENSE.md
CHANGED
data/README.md
CHANGED
@@ -1,2 +1,34 @@
|
|
1
1
|
# site_prism-all_there
|
2
|
-
The breakout gem from SitePrism to perform recursion checks for all_there
|
2
|
+
The breakout gem from SitePrism to perform recursion checks for `#all_there?`
|
3
|
+
|
4
|
+
This gem is currently being developed by copying over the code-base from the existing
|
5
|
+
SitePrism repo and slowly refactoring it and breaking it out
|
6
|
+
|
7
|
+
As such at the moment, the gem is very much considered a Work in Progress and works "as is".
|
8
|
+
|
9
|
+
It is fully expected to have a number of bug-fix / refactor PR's in between each minor release.
|
10
|
+
|
11
|
+
In order to use this gem you simply need to do the following
|
12
|
+
|
13
|
+
```rb
|
14
|
+
# In either spec_helper.rb or env.rb
|
15
|
+
|
16
|
+
require 'site_prism/all_there
|
17
|
+
|
18
|
+
# Then in either a config or initializer location (Or env.rb / spec_helper.rb)
|
19
|
+
|
20
|
+
SitePrism.use_all_there_gem = true
|
21
|
+
|
22
|
+
or ...
|
23
|
+
|
24
|
+
SitePrism.configure do |config|
|
25
|
+
config.use_all_there_gem = true
|
26
|
+
end
|
27
|
+
```
|
28
|
+
|
29
|
+
v1.0 is slated for release some-time in the Autumn/Winter of 2019, with a variety of small interim
|
30
|
+
releases being planned in the meantime.
|
31
|
+
|
32
|
+
Happy Testing / Developing!
|
33
|
+
|
34
|
+
The SitePrism team
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module SitePrism
|
4
4
|
module AllThere
|
5
|
+
# Recurse through all of the objects found on an individual Page/Section
|
6
|
+
# Perform the all_there? check according to what recursion level is specified
|
5
7
|
class RecursionChecker
|
6
8
|
attr_reader :instance
|
7
9
|
private :instance
|
@@ -10,17 +12,41 @@ module SitePrism
|
|
10
12
|
@instance = instance
|
11
13
|
end
|
12
14
|
|
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
|
+
# regular repo uses currently
|
13
18
|
def all_there?
|
14
|
-
|
15
|
-
|
19
|
+
current_class_all_there? &&
|
20
|
+
section_classes_all_there? &&
|
21
|
+
sections_classes_all_there?
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
16
25
|
|
17
|
-
|
18
|
-
|
19
|
-
|
26
|
+
# This will check all elements that are in the current scope
|
27
|
+
# This is equivalent to checking a recursion value of +:none+
|
28
|
+
def current_class_all_there?
|
29
|
+
expected_item_map.flatten.all? { |name| there?(name) }
|
30
|
+
end
|
31
|
+
|
32
|
+
# This will check all elements that are in any of the individual
|
33
|
+
# +section+ items defined in the current scope
|
34
|
+
def section_classes_all_there?
|
35
|
+
section_classes_to_check.all?(&:all_there?)
|
36
|
+
end
|
37
|
+
|
38
|
+
# This will check all elements that are in any instance of any of the
|
39
|
+
# +sections+ items defined in the current scope
|
40
|
+
def sections_classes_all_there?
|
41
|
+
sections_classes_to_check.flatten.all?(&:all_there?)
|
42
|
+
end
|
43
|
+
|
44
|
+
def section_classes_to_check
|
45
|
+
expected_item_map[2].map { |name| instance.send(name) }
|
46
|
+
end
|
20
47
|
|
21
|
-
|
22
|
-
|
23
|
-
sections_classes_to_check.all?(&:all_there?)
|
48
|
+
def sections_classes_to_check
|
49
|
+
expected_item_map[3].map { |name| instance.send(name) }
|
24
50
|
end
|
25
51
|
|
26
52
|
def expected_item_map
|
@@ -37,16 +63,6 @@ module SitePrism
|
|
37
63
|
map[type].select { |name| elements_to_check.include?(name) }
|
38
64
|
end
|
39
65
|
|
40
|
-
def section_classes_to_check
|
41
|
-
expected_item_map[2].map { |name| instance.send(name) }
|
42
|
-
end
|
43
|
-
|
44
|
-
def sections_classes_to_check
|
45
|
-
expected_item_map[3].map { |name| instance.send(name) }.flatten
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
66
|
# If the page or section has expected_items set, return expected_items that are mapped
|
51
67
|
# otherwise just return the list of all mapped_items
|
52
68
|
def elements_to_check
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'site_prism/all_there/recursion_checker'
|
4
|
+
|
5
|
+
# Configure the behaviour of the site_prism-all_there gem
|
6
|
+
module SitePrism
|
7
|
+
class << self
|
8
|
+
attr_writer :recursion_setting
|
9
|
+
|
10
|
+
def configure
|
11
|
+
yield self
|
12
|
+
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
|
+
end
|
20
|
+
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:
|
4
|
+
version: 0.1.1
|
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-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.71.0
|
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: 0.
|
54
|
+
version: 0.71.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rubocop-performance
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,16 +91,16 @@ extra_rdoc_files: []
|
|
91
91
|
files:
|
92
92
|
- LICENSE.md
|
93
93
|
- README.md
|
94
|
-
- lib/site_prism.rb
|
94
|
+
- lib/site_prism/all_there.rb
|
95
95
|
- lib/site_prism/all_there/recursion_checker.rb
|
96
96
|
- lib/site_prism/all_there/version.rb
|
97
|
-
homepage: https://github.com/
|
97
|
+
homepage: https://github.com/site-prism/site_prism-all_there
|
98
98
|
licenses:
|
99
99
|
- BSD-3-Clause
|
100
100
|
metadata:
|
101
|
-
bug_tracker_uri: https://github.com/
|
102
|
-
changelog_uri: https://github.com/
|
103
|
-
source_code_uri: https://github.com/
|
101
|
+
bug_tracker_uri: https://github.com/site-prism/site_prism-all_there/issues
|
102
|
+
changelog_uri: https://github.com/site-prism/site_prism-all_there/blob/master/CHANGELOG.md
|
103
|
+
source_code_uri: https://github.com/site-prism/site_prism-all_there
|
104
104
|
post_install_message:
|
105
105
|
rdoc_options: []
|
106
106
|
require_paths:
|
@@ -120,5 +120,5 @@ rubyforge_project:
|
|
120
120
|
rubygems_version: 2.7.8
|
121
121
|
signing_key:
|
122
122
|
specification_version: 4
|
123
|
-
summary:
|
123
|
+
summary: An extension to allow you to recurse through your SitePrism Pages/Sections
|
124
124
|
test_files: []
|
data/lib/site_prism.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module SitePrism
|
4
|
-
autoload :RecursionChecker, 'site_prism/all_there/recursion_checker'
|
5
|
-
|
6
|
-
class << self
|
7
|
-
attr_writer :recursion_setting
|
8
|
-
|
9
|
-
def configure
|
10
|
-
yield self
|
11
|
-
end
|
12
|
-
|
13
|
-
def recursion_setting
|
14
|
-
@recursion_setting ||= :none
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|