class RuboCop::RSpec::ExampleGroup
Wrapper for RSpec
example groups
Public Instance Methods
examples()
click to toggle source
# File lib/rubocop/rspec/example_group.rb, line 30 def examples examples_in_scope(node).map(&Example.public_method(:new)) end
hooks()
click to toggle source
# File lib/rubocop/rspec/example_group.rb, line 34 def hooks hooks_in_scope(node).map(&Hook.public_method(:new)) end
subjects()
click to toggle source
# File lib/rubocop/rspec/example_group.rb, line 26 def subjects subjects_in_scope(node) end
Private Instance Methods
examples_in_scope(node, &blk)
click to toggle source
# File lib/rubocop/rspec/example_group.rb, line 72 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/rspec/example_group.rb, line 85 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/rspec/example_group.rb, line 62 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/rspec/example_group.rb, line 46 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/rspec/example_group.rb, line 56 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/rspec/example_group.rb, line 40 def subjects_in_scope(node) node.each_child_node.flat_map do |child| find_subjects(child) end end