class Guard::Internals::Scope
def grouped_plugins(scope = { plugins: [], groups: [] })
def grouped_plugins(scope = { plugins: [], groups: [] }) items = nil plugins = _find_non_empty_scope(:plugins, scope) if plugins items = Array(plugins).map { |plugin| _instantiate(:plugin, plugin) } end unless items # TODO: no coverage here!! found = _find_non_empty_scope(:groups, scope) found ||= Guard.state.session.groups.all groups = Array(found).map { |group| _instantiate(:group, group) } if groups.any? { |g| g.name == :common } items = groups else items = ([_instantiate(:group, :common)] + Array(found)).compact end end items.map do |plugin_or_group| group = nil plugins = [plugin_or_group] if plugin_or_group.is_a?(Group) # TODO: no coverage here! group = plugin_or_group plugins = Guard.state.session.plugins.all(group: group.name) end [group, plugins] end end