Module: ArchSpec::Rules::ProtocolEvidence

Defined in:
lib/archspec/rules/protocol_rules.rb

Overview

Builds the shared "methods: ..." evidence string for the protocol rules and resolves the classes in a component. Internal helper.

Class Method Summary collapse

Class Method Details

.constants_for(graph, source) ⇒ Object



153
154
155
156
157
158
# File 'lib/archspec/rules/protocol_rules.rb', line 153

def constants_for(graph, source)
  component = graph.components[source]
  return [] unless component

  component.constants.flat_map { |name| graph.constants_named(name) }.select(&:class?).uniq(&:name)
end

.for(constant, methods, unresolved) ⇒ Object



160
161
162
163
164
165
# File 'lib/archspec/rules/protocol_rules.rb', line 160

def for(constant, methods, unresolved)
  evidence = "#{constant.name} methods: #{methods.empty? ? '(none)' : methods.to_a.sort.join(', ')}"
  return evidence if unresolved.empty?

  "#{evidence}; unresolved ancestors: #{unresolved.to_a.sort.join(', ')}"
end