Class: Udb::ProfileFamily

Inherits:
PortfolioClass show all
Defined in:
lib/udb/obj/profile.rb

Overview

privileged profiles (e.g., RVA20S64).

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Udb::TopLevelDatabaseObject

Instance Method Details

#companyCompany

Returns Company that created the profile.

Returns:

  • (Company)

    Company that created the profile



21
# File 'lib/udb/obj/profile.rb', line 21

def company = Company.new(@data["company"])

#doc_licenseLicense

Returns Documentation license.

Returns:

  • (License)

    Documentation license



24
25
26
# File 'lib/udb/obj/profile.rb', line 24

def doc_license
  License.new(@data["doc_license"])
end

#in_scope_extensionsArray<Extension>

Returns Sorted list of all mandatory or optional extensions across the profile releases belonging to the profile family.

Returns:

  • (Array<Extension>)

    Sorted list of all mandatory or optional extensions across the profile releases belonging to the profile family



67
68
69
70
71
72
73
74
75
76
# File 'lib/udb/obj/profile.rb', line 67

def in_scope_extensions
  return @in_scope_extensions unless @in_scope_extensions.nil?

  @in_scope_extensions = []
  profiles.each do |profile|
    @in_scope_extensions += profile.in_scope_extensions
  end

  @in_scope_extensions = @in_scope_extensions.uniq(&:name).sort_by(&:name)
end

#in_scope_extensions_matching_processor_kindArray<Extension>

Returns Sorted list of all potential extensions with my processor kind.

Returns:

  • (Array<Extension>)

    Sorted list of all potential extensions with my processor kind



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/udb/obj/profile.rb', line 79

def in_scope_extensions_matching_processor_kind
  return @in_scope_extensions_matching_processor_kind unless @in_scope_extensions_matching_processor_kind.nil?

  @in_scope_extensions_matching_processor_kind = []
  profiles_matching_processor_kind.each do |profile|
    @in_scope_extensions_matching_processor_kind += profile.in_scope_extensions
  end

  @in_scope_extensions_matching_processor_kind =
    @in_scope_extensions_matching_processor_kind.uniq(&:name).sort_by(&:name)
end

#marketing_nameString

Returns Name of the class.

Returns:

  • (String)

    Name of the class



18
# File 'lib/udb/obj/profile.rb', line 18

def marketing_name = @data["marketing_name"]

#naming_schemeString

Returns Naming scheme for profile family.

Returns:

  • (String)

    Naming scheme for profile family



15
# File 'lib/udb/obj/profile.rb', line 15

def naming_scheme = @data["naming_scheme"]

#profile_releasesArray<ProfileRelease>

Returns Defined profile releases in this profile family.

Returns:

  • (Array<ProfileRelease>)

    Defined profile releases in this profile family



29
30
31
32
33
34
35
# File 'lib/udb/obj/profile.rb', line 29

def profile_releases
  return @profile_releases unless @profile_releases.nil?

  @profile_releases = @arch.profile_releases.select { |pr| pr.profile_family.name == name }

  @profile_releases
end

#profile_releases_matching_processor_kindArray<ProfileRelease>

Returns Defined profile releases of this processor class.

Returns:

  • (Array<ProfileRelease>)

    Defined profile releases of this processor class



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/udb/obj/profile.rb', line 38

def profile_releases_matching_processor_kind
  return @profile_releases_matching_processor_kind unless @profile_releases_matching_processor_kind.nil?

  matching_classes = portfolio_classes_matching_portfolio_kind_and_processor_kind

  # Look for all profile releases that are from any of the matching classes.
  @profile_releases_matching_processor_kind = @arch.profile_releases.select { |pr|
    matching_classes.any? { |matching_class| matching_class.name == pr.profile_family.name }
  }

  @profile_releases_matching_processor_kind
end

#profilesArray<Profile>

Returns All profiles in this profile family (for all releases).

Returns:

  • (Array<Profile>)

    All profiles in this profile family (for all releases).



52
53
54
55
56
# File 'lib/udb/obj/profile.rb', line 52

def profiles
  return @profiles unless @profiles.nil?

  @profiles = @arch.profiles.select {|profile| profile.profile_family.name == name}
end

#profiles_matching_processor_kindArray<Profile>

Returns All profiles in database matching my processor kind.

Returns:

  • (Array<Profile>)

    All profiles in database matching my processor kind



59
60
61
62
63
# File 'lib/udb/obj/profile.rb', line 59

def profiles_matching_processor_kind
  return @profiles_matching_processor_kind unless @profiles_matching_processor_kind.nil?

  @profiles_matching_processor_kind = @arch.profiles.select {|profile| profile.profile_family.processor_kind == processor_kind}
end