Class: Zodra::Export::SurfaceResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/zodra/export/surface_resolver.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definitions, contracts) ⇒ SurfaceResolver

Returns a new instance of SurfaceResolver.



12
13
14
15
# File 'lib/zodra/export/surface_resolver.rb', line 12

def initialize(definitions, contracts)
  @definitions_by_name = definitions.to_h { |d| [d.name, d] }
  @contracts = contracts
end

Class Method Details

.call(definitions, contracts) ⇒ Object



6
7
8
9
10
# File 'lib/zodra/export/surface_resolver.rb', line 6

def self.call(definitions, contracts)
  return definitions if contracts.empty?

  new(definitions, contracts).resolve
end

Instance Method Details

#resolveObject



17
18
19
20
# File 'lib/zodra/export/surface_resolver.rb', line 17

def resolve
  reachable = expand_dependencies(collect_seed_types)
  @definitions_by_name.values.select { |d| reachable.include?(d.name) }
end