module ArchSpec::Rules::ProtocolEvidence
Builds the shared βmethods: β¦β evidence string for the protocol rules and resolves the classes in a component. Internal helper.
Constants
- VALID_SCOPES
Public Instance Methods
# File lib/archspec/rules/protocol_rules.rb, line 251 def constants_for(graph, source) component = graph.components[source] return [] unless component graph.constants_for_component(source).select(&:class?).uniq(&:name) end
# File lib/archspec/rules/protocol_rules.rb, line 258 def for(constant, methods, unresolved, scope: :instance) label = scope == :class ? 'class methods' : 'methods' evidence = "#{constant.name} #{label}: #{methods.empty? ? '(none)' : methods.to_a.sort.join(', ')}" return evidence if unresolved.empty? "#{evidence}; unresolved ancestors: #{unresolved.to_a.sort.join(', ')}" end
# File lib/archspec/rules/protocol_rules.rb, line 245 def validate_scope!(scope, for_rule:) return if VALID_SCOPES.include?(scope) raise Error, "#{for_rule} scope: must be :instance or :class, got #{scope.inspect}" end