site_prism-all_there 2.0.2 → 3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dbdb3fd1e22f9f832cb21e808f77a1c0c236f25442874f692df69bb0d1437367
4
- data.tar.gz: b98ec38bc16d1f410dc1584ced388a451856295660a9492d64a2b789cd450153
3
+ metadata.gz: 3508b03f4e5a02c0dd04ec670549bd2462b9c749de74373747ced1c10d2b1e5d
4
+ data.tar.gz: 198324b39aa2eb29bb622028e383446043dbd9f8352f545d78e3dd0f35dfc26f
5
5
  SHA512:
6
- metadata.gz: b068d588ecb66eae71bb7a5bca3ed990b6f38a7c5b6a6b617edab27f63666a2bfb7a6afd21c07f362cfbcc4930a2ce6b4b1dd6abb724927793f5f2438ba2602a
7
- data.tar.gz: 0fa5d87ac1f7aa303dac2754eb3b6303522bfb5ba0b70772e971207f8a0da0621e606f7243c8db2f6065df0d22fc2202d2d31d998606dc3cdc0201710c8a8216
6
+ metadata.gz: 1bf75250e248cb6b07c69d88bf7742e79eb31bf6a8d8565d58587dfe93994bbcb292077182035c9d233b2c8e502bf366106003263d3e835120e3ee444f5e0d93
7
+ data.tar.gz: 4a92b0b0d433de1717634d3dcb32ebadce9ce492dfc69cd8efa9f00cf0c65d505615555400d731a323b0a7a2df567755847ba8f5426f1de58b4604124f12d104
@@ -19,48 +19,30 @@ module SitePrism
19
19
  # All defined/expected mapped items
20
20
  def array
21
21
  [
22
- element,
23
- elements,
22
+ mapped_checklist_of(:element),
23
+ mapped_checklist_of(:elements),
24
24
  section,
25
25
  sections,
26
- iframe
26
+ mapped_checklist_of(:iframe)
27
27
  ]
28
28
  end
29
29
 
30
- # @return [Array<Symbol>]
31
- # All defined/expected items that were mapped as +element+
32
- def element
33
- mapped_checklist_of(:element) || []
34
- end
35
-
36
- # @return [Array<Symbol>]
37
- # All defined/expected items that were mapped as +elements+
38
- def elements
39
- mapped_checklist_of(:elements) || []
40
- end
41
-
42
30
  # @return [Array<Symbol>]
43
31
  # All defined/expected items that were mapped as +section+
44
32
  def section
45
- mapped_checklist_of(:section) || []
33
+ mapped_checklist_of(:section)
46
34
  end
47
35
 
48
36
  # @return [Array<Symbol>]
49
37
  # All defined/expected items that were mapped as +sections+
50
38
  def sections
51
- mapped_checklist_of(:sections) || []
52
- end
53
-
54
- # @return [Array<Symbol>]
55
- # All defined/expected items that were mapped as +iframe+
56
- def iframe
57
- mapped_checklist_of(:iframe) || []
39
+ mapped_checklist_of(:sections)
58
40
  end
59
41
 
60
42
  private
61
43
 
62
44
  def mapped_checklist_of(type)
63
- mapped_items.hash[type]&.select { |name| mapped_checklist.include?(name) }
45
+ mapped_items.hash[type] & mapped_checklist
64
46
  end
65
47
 
66
48
  def mapped_checklist
@@ -10,6 +10,8 @@ module SitePrism
10
10
  class MappedItems
11
11
  attr_reader :hash
12
12
 
13
+ # @return [Hash]
14
+ # Return a list of all mapped items on a SitePrism class instance (Page or Section)
13
15
  def initialize(instance)
14
16
  @hash = instance.class.mapped_items
15
17
  end
@@ -3,8 +3,9 @@
3
3
  module SitePrism
4
4
  module AllThere
5
5
  #
6
- # This will recurse through all of the objects found on an individual Page/Section level
6
+ # @api private
7
7
  #
8
+ # This will recurse through all of the objects found on an individual Page/Section level
8
9
  # It will perform the `#all_there?` check on each `@instance` item that it is initialized with
9
10
  #
10
11
  class RecursionChecker
@@ -15,40 +16,39 @@ module SitePrism
15
16
  @instance = instance
16
17
  end
17
18
 
18
- # @return [Boolean]
19
- # This currently defaults to perform a recursion of depth +:one+ (From the main `site_prism` gem)
20
- # It will be refactored to use either no input, +:none+, or +:one+ as the regular repo uses currently
21
- def all_there?(recursion:)
22
- recursion = SitePrism.recursion_setting if SitePrism.recursion_setting
19
+ # @return [Boolean || Nil]
20
+ # This is only meant to be invoked from the main site_prism gem where it will use whatever inputs it is given
21
+ def all_there?(recursion: nil, options: {})
22
+ setting = recursion || SitePrism.recursion_setting
23
23
 
24
- case recursion
25
- when :none
26
- current_class_all_there?
24
+ case setting
25
+ when nil, :none
26
+ current_class_all_there?(options)
27
27
  when :one
28
- current_class_all_there? && section_classes_all_there? && sections_classes_all_there?
28
+ current_class_all_there?(options) && section_classes_all_there?(options) && sections_classes_all_there?(options)
29
29
  else
30
- SitePrism.logger.debug("Input value '#{recursion}'. Valid values are :none or :one.")
30
+ SitePrism.logger.debug("Invalid input value '#{recursion}'. Valid values are nil, :none or :one.")
31
31
  SitePrism.logger.error('Invalid recursion setting, Will not run #all_there?.')
32
32
  end
33
33
  end
34
34
 
35
35
  private
36
36
 
37
- def current_class_all_there?
38
- expected_items.array.flatten.all? { |name| there?(name) }.tap do |result|
37
+ def current_class_all_there?(**opts)
38
+ expected_items.array.flatten.all? { |name| there?(name, opts) }.tap do |result|
39
39
  SitePrism.logger.info("Result of current_class_all_there?: #{result}")
40
40
  end
41
41
  end
42
42
 
43
- def section_classes_all_there?
44
- section_classes_to_check.all?(&:all_there?).tap do |result|
43
+ def section_classes_all_there?(**opts)
44
+ section_classes_to_check.all? { |section| section.all_there?(opts) }.tap do |result|
45
45
  SitePrism.logger.debug("Result of section_classes_all_there?: #{result}")
46
46
  end
47
47
  end
48
48
 
49
- def sections_classes_all_there?
50
- sections_classes_to_check.flatten.all?(&:all_there?).tap do |result|
51
- SitePrism.logger.debug("Result of section_classes_all_there?: #{result}")
49
+ def sections_classes_all_there?(**opts)
50
+ sections_classes_to_check.flatten.all? { |section| section.all_there?(opts) }.tap do |result|
51
+ SitePrism.logger.debug("Result of sections_classes_all_there?: #{result}")
52
52
  end
53
53
  end
54
54
 
@@ -64,8 +64,8 @@ module SitePrism
64
64
  @expected_items ||= ExpectedItems.new(instance)
65
65
  end
66
66
 
67
- def there?(name)
68
- instance.send("has_#{name}?")
67
+ def there?(name, **opts)
68
+ instance.send("has_#{name}?", opts)
69
69
  end
70
70
  end
71
71
  end
@@ -4,6 +4,6 @@ module SitePrism
4
4
  module AllThere
5
5
  # @return [String]
6
6
  # Version of the gem
7
- VERSION = '2.0.2'
7
+ VERSION = '3.0'
8
8
  end
9
9
  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: 2.0.2
4
+ version: '3.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Hill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-13 00:00:00.000000000 Z
11
+ date: 2023-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -125,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
125
  requirements:
126
126
  - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '2.6'
128
+ version: '2.7'
129
129
  required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - ">="