Class: Udb::Prm

Inherits:
TopLevelDatabaseObject show all
Defined in:
lib/udb/obj/prm.rb

Overview

Represents a Programmer’s Reference Manual specification

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Udb::TopLevelDatabaseObject

Instance Attribute Details

#resolverObject

Store the resolver for processor config loading



15
16
17
# File 'lib/udb/obj/prm.rb', line 15

def resolver
  @resolver
end

Instance Method Details

#chaptersArray<Hash>

Returns Array of chapter definitions in their natural order.

Returns:

  • (Array<Hash>)

    Array of chapter definitions in their natural order



46
47
48
# File 'lib/udb/obj/prm.rb', line 46

def chapters
  @data["chapters"] || []
end

#descriptionString

Returns Brief description of this PRM.

Returns:

  • (String)

    Brief description of this PRM



19
20
21
# File 'lib/udb/obj/prm.rb', line 19

def description
  @data["description"]
end

#processor_configConfiguredArchitecture

Returns The processor configuration this PRM documents.

Returns:



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/udb/obj/prm.rb', line 25

def processor_config
  return @processor_config unless @processor_config.nil?

  config_ref = @data["processor_config"]["$ref"]
  # Remove the trailing # if present
  config_path = config_ref.sub(/#\z/, '')

  # Resolve relative path from PRM file location to config file
  prm_dir = File.dirname(@data["$source"])
  config_full_path = File.expand_path(config_path, prm_dir)

  # Extract config name from the filename
  config_name = File.basename(config_full_path, '.yaml')

  @processor_config = @resolver.cfg_arch_for(config_name)
  @processor_config
end