Class: Hashira::Analysis::Census

Inherits:
Object
  • Object
show all
Defined in:
lib/hashira/analysis/census.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project, trees) ⇒ Census

Returns a new instance of Census.



6
7
8
9
10
11
12
# File 'lib/hashira/analysis/census.rb', line 6

def initialize(project, trees)
  @definitions = Definitions.new(project, trees)
  @type_count = Hash.new(0)
  @declaring_package = {}
  @root_namespace = RootNamespace.infer(@definitions)
  take
end

Instance Attribute Details

#declaring_packageObject (readonly)

Returns the value of attribute declaring_package.



14
15
16
# File 'lib/hashira/analysis/census.rb', line 14

def declaring_package
  @declaring_package
end

#root_namespaceObject (readonly)

Returns the value of attribute root_namespace.



14
15
16
# File 'lib/hashira/analysis/census.rb', line 14

def root_namespace
  @root_namespace
end

#type_countObject (readonly)

Returns the value of attribute type_count.



14
15
16
# File 'lib/hashira/analysis/census.rb', line 14

def type_count
  @type_count
end

Instance Method Details

#packagesObject



16
# File 'lib/hashira/analysis/census.rb', line 16

def packages = (@type_count.keys | @definitions.packages)

#resolve(segments) ⇒ Object



18
19
20
21
# File 'lib/hashira/analysis/census.rb', line 18

def resolve(segments)
  outer, inner = segments.first(2)
  @declaring_package[outer == root_namespace ? inner : outer]
end