class RuboCop::GitlabSecurity::ExampleGroup
Wrapper for RSpec example groups
Public Instance Methods
examples()
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 29 def examples examples_in_scope(node).map(&Example.public_method(:new)) end
hooks()
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 33 def hooks hooks_in_scope(node).map(&Hook.public_method(:new)) end
subjects()
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 25 def subjects subjects_in_scope(node) end
Private Instance Methods
examples_in_scope(node, &blk)
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 71 def examples_in_scope(node, &blk) node.each_child_node.flat_map do |child| find_examples(child, &blk) end end
find_examples(node)
click to toggle source
Recursively search for examples within the current scope
Searches node for examples and halts when a scope change is detected
@param node [RuboCop::Node] node to recursively search for examples
@return [Array<RuboCop::Node>] discovered example nodes
# File lib/rubocop/gitlab-security/example_group.rb, line 84 def find_examples(node) return [] if scope_change?(node) if example?(node) [node] else examples_in_scope(node) end end
find_hooks(node)
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 61 def find_hooks(node) return [] if scope_change?(node) || example?(node) if hook(node) [node] else hooks_in_scope(node) end end
find_subjects(node)
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 45 def find_subjects(node) return [] if scope_change?(node) if subject(node) [node] else subjects_in_scope(node) end end
hooks_in_scope(node)
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 55 def hooks_in_scope(node) node.each_child_node.flat_map do |child| find_hooks(child) end end
subjects_in_scope(node)
click to toggle source
# File lib/rubocop/gitlab-security/example_group.rb, line 39 def subjects_in_scope(node) node.each_child_node.flat_map do |child| find_subjects(child) end end