Class: Alpinist::Semantics

Inherits:
Object
  • Object
show all
Defined in:
lib/alpinist/semantics.rb

Instance Method Summary collapse

Constructor Details

#initialize(initial_profile, fetcher = ProfileFetcher.new) ⇒ Semantics



3
4
5
6
7
8
9
# File 'lib/alpinist/semantics.rb', line 3

def initialize(initial_profile, fetcher = ProfileFetcher.new)
  @initial_profile = initial_profile
  @fetcher = fetcher
  @profiles = {}
  @profiles[initial_profile.url] = initial_profile
  @nodes = {}
end

Instance Method Details

#build!Object



11
12
13
14
15
16
# File 'lib/alpinist/semantics.rb', line 11

def build!
  @initial_profile.all_descriptors.each do |descriptor|
    descriptor_url = "#{@initial_profile.url}##{descriptor.id}"
    connect_to_parent(descriptor_url, descriptor)
  end
end

#find_node(descriptor_url) ⇒ Object



18
19
20
# File 'lib/alpinist/semantics.rb', line 18

def find_node(descriptor_url)
  @nodes[descriptor_url]
end


22
23
24
25
# File 'lib/alpinist/semantics.rb', line 22

def print_tree
  root_nodes = @nodes.values.select { |node| node.is_root? }
  root_nodes.each(&:print_tree)
end