Module: Udb

Extended by:
T::Sig
Defined in:
lib/udb.rb,
lib/udb/z3.rb,
lib/udb/cli.rb,
lib/udb/eqn.rb,
lib/udb/log.rb,
lib/udb/logic.rb,
lib/udb/config.rb,
lib/udb/schema.rb,
lib/udb/obj/csr.rb,
lib/udb/obj/prm.rb,
lib/udb/version.rb,
lib/udb/cfg_arch.rb,
lib/udb/presence.rb,
lib/udb/resolver.rb,
lib/udb/condition.rb,
lib/udb/obj/manual.rb,
lib/udb/obj/profile.rb,
lib/udb/architecture.rb,
lib/udb/version_spec.rb,
lib/udb/obj/csr_field.rb,
lib/udb/obj/extension.rb,
lib/udb/obj/parameter.rb,
lib/udb/obj/portfolio.rb,
lib/udb/obj/certificate.rb,
lib/udb/obj/instruction.rb,
lib/udb/obj/database_obj.rb,
lib/udb/portfolio_design.rb,
lib/udb/proc_cert_design.rb,
lib/udb/obj/exception_code.rb,
lib/udb/cert_normative_rule.rb,
lib/udb/cert_test_procedure.rb,
lib/udb/obj/certifiable_obj.rb,
lib/udb/obj/non_isa_specification.rb,
lib/udb/external_documentation_renderer.rb

Overview

frozen_string_literal: true

Defined Under Namespace

Modules: CertifiableObject, CliCommands, Code Classes: AbstractCondition, AbstractConfig, AlwaysFalseCondition, AlwaysTrueCondition, Architecture, CertNormativeRule, CertTestProcedure, Cli, Company, Condition, ConditionalExtensionRequirement, ConditionalExtensionVersion, ConfigType, ConfiguredArchitecture, Constraint, Csr, CsrField, DatabaseObject, DocLink, DummyMultiProgressBar, DummyProgressBar, Eqn, ExceptionCode, Extension, ExtensionCondition, ExtensionRequirement, ExtensionRequirementList, ExtensionTerm, ExtensionVersion, ExternalDocumentationRenderer, FreeTerm, FullConfig, IdlCondition, Instruction, InstructionSubtype, InstructionType, InterruptCode, InvalidConfigError, License, LogLevel, LogicCondition, LogicNode, LogicNodeType, Manual, ManualChapter, ManualVersion, ManualVolume, NonIsaSpecification, ParamCondition, Parameter, ParameterTerm, ParameterWithValue, PartialConfig, Person, Portfolio, PortfolioClass, PortfolioDesign, PortfolioExtensionRequirement, PortfolioGroup, Presence, Prm, ProcCertClass, ProcCertDesign, ProcCertModel, Profile, ProfileFamily, ProfileRelease, RequirementSpec, Resolver, Schema, TopLevelDatabaseObject, UnConfig, VersionSpec, XlenCondition, XlenTerm, Z3ExtensionRequirement, Z3ExtensionVersion, Z3FiniteArray, Z3ParameterTerm, Z3Solver, Z3Sovler

Constant Summary collapse

DEFAULT_PROGRESSBAR_LOG_LEVEL =
LogLevel::Info
TermType =
T.type_alias { T.any(ExtensionTerm, ParameterTerm, XlenTerm, FreeTerm) }

Class Method Summary collapse

Class Method Details

.create_progressbar(fmt, **options) ⇒ TTY::ProgressBar, DummyProgressBar

Parameters:

  • fmt (String)
  • options (T.untyped)

Returns:



134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/udb/log.rb', line 134

def self.create_progressbar(fmt, **options)
  if @top_level_progressbar.nil?

    target_level = options.key?(:level) ? LogLevel.deserialize(options[:level].to_s) : LogLevel::Info
    if target_level <= @log_level
      TTY::ProgressBar.new(fmt, **options)
    else
      DummyProgressBar.new
    end
  else
    @top_level_progressbar.register(fmt, **options)
  end
end

.create_top_level_progressbar(fmt: nil, level: LogLevel::Info, clear: true) ⇒ TTY::ProgressBar::Multi, DummyMultiProgressBar

Parameters:

  • fmt (String, nil) (defaults to: nil)
  • level (LogLevel) (defaults to: LogLevel::Info)
  • clear (Boolean) (defaults to: true)

Returns:



118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/udb/log.rb', line 118

def self.create_top_level_progressbar(fmt: nil, level: LogLevel::Info, clear: true)
  raise "Top-level progressbar already exists" unless @top_level_progressbar.nil?

  @top_level_log_level = level
  if level <= @log_level
    if fmt.nil?
      @top_level_progressbar = TTY::ProgressBar::Multi.new
    else
      @top_level_progressbar = TTY::ProgressBar::Multi.new(fmt)
    end
  else
    @top_level_progressbar = DummyMultiProgressBar.new
  end
end

.default_cfgs_pathPathname

Returns:

  • (Pathname)


60
61
62
# File 'lib/udb/resolver.rb', line 60

def self.default_cfgs_path
  repo_root / "cfgs"
end

.default_custom_isa_pathPathname

Returns:

  • (Pathname)


50
51
52
# File 'lib/udb/resolver.rb', line 50

def self.default_custom_isa_path
  repo_root / "spec" / "custom" / "isa"
end

.default_gen_pathPathname

Returns:

  • (Pathname)


55
56
57
# File 'lib/udb/resolver.rb', line 55

def self.default_gen_path
  repo_root / "gen"
end

.default_std_isa_pathPathname

Returns:

  • (Pathname)


45
46
47
# File 'lib/udb/resolver.rb', line 45

def self.default_std_isa_path
  repo_root / "spec" / "std" / "isa"
end

.delete_top_level_progressbar

This method returns an undefined value.



105
106
107
108
109
# File 'lib/udb/log.rb', line 105

def self.delete_top_level_progressbar
  raise "Top-level progressbar does not exist" if @top_level_progressbar.nil?

  @top_level_progressbar = nil
end

.gem_pathPathname

Returns:

  • (Pathname)


17
18
19
# File 'lib/udb/resolver.rb', line 17

def self.gem_path
  @gem_path ||= Pathname.new(Bundler.definition.specs.find { |s| s.name == "udb" }.full_gem_path)
end

.log_levelLogLevel

Returns:



51
52
53
# File 'lib/udb/log.rb', line 51

def self.log_level
  @log_level
end

.log_level=(level)

This method returns an undefined value.

Parameters:



56
57
58
# File 'lib/udb/log.rb', line 56

def self.log_level=(level)
  @log_level = level
end

.loggerLogger, TTY::Logger

Returns:

  • (Logger, TTY::Logger)


61
62
63
64
65
# File 'lib/udb/log.rb', line 61

def self.logger
  @logger ||= TTY::Logger.new do |config|
    config.level = @log_level.serialize.to_sym
  end
end

.repo_rootPathname

Returns:

  • (Pathname)


34
35
36
37
38
39
40
41
42
# File 'lib/udb/resolver.rb', line 34

def self.repo_root
  @root ||=
    if ENV.key?("UDB_ROOT")
      Pathname.new(ENV["UDB_ROOT"])
    else
      # try to find the root in the directory hierarchy by looking for the do script
      find_udb_root(Pathname.new(__dir__))
    end
end

.set_logger(logger) ⇒ Logger, TTY::Logger

Parameters:

  • logger (Logger, TTY::Logger)

Returns:

  • (Logger, TTY::Logger)


68
69
70
# File 'lib/udb/log.rb', line 68

def self.set_logger(logger)
  @logger = logger
end

.top_level_progressbarTTY::ProgressBar::Multi?

Returns:

  • (TTY::ProgressBar::Multi, nil)


100
101
102
# File 'lib/udb/log.rb', line 100

def self.top_level_progressbar
  @top_level_progressbar
end

.versionObject



7
# File 'lib/udb/version.rb', line 7

def self.version = "0.1.0"