Class: Udb::ProfileFamily
- Inherits:
-
PortfolioClass
- Object
- DatabaseObject
- TopLevelDatabaseObject
- PortfolioClass
- Udb::ProfileFamily
- Defined in:
- lib/udb/obj/profile.rb
Overview
privileged profiles (e.g., RVA20S64).
Instance Method Summary collapse
-
#company ⇒ Company
Company that created the profile.
-
#doc_license ⇒ License
Documentation license.
-
#in_scope_extensions ⇒ Array<Extension>
Sorted list of all mandatory or optional extensions across the profile releases belonging to the profile family.
-
#in_scope_extensions_matching_processor_kind ⇒ Array<Extension>
Sorted list of all potential extensions with my processor kind.
-
#marketing_name ⇒ String
Name of the class.
-
#naming_scheme ⇒ String
Naming scheme for profile family.
-
#profile_releases ⇒ Array<ProfileRelease>
Defined profile releases in this profile family.
-
#profile_releases_matching_processor_kind ⇒ Array<ProfileRelease>
Defined profile releases of this processor class.
-
#profiles ⇒ Array<Profile>
All profiles in this profile family (for all releases).
-
#profiles_matching_processor_kind ⇒ Array<Profile>
All profiles in database matching my processor kind.
Constructor Details
This class inherits a constructor from Udb::TopLevelDatabaseObject
Instance Method Details
#company ⇒ Company
Returns Company that created the profile.
21 |
# File 'lib/udb/obj/profile.rb', line 21 def company = Company.new(@data["company"]) |
#doc_license ⇒ License
Returns Documentation license.
24 25 26 |
# File 'lib/udb/obj/profile.rb', line 24 def doc_license License.new(@data["doc_license"]) end |
#in_scope_extensions ⇒ Array<Extension>
Returns 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_kind ⇒ Array<Extension>
Returns 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_name ⇒ String
Returns Name of the class.
18 |
# File 'lib/udb/obj/profile.rb', line 18 def marketing_name = @data["marketing_name"] |
#naming_scheme ⇒ String
Returns Naming scheme for profile family.
15 |
# File 'lib/udb/obj/profile.rb', line 15 def naming_scheme = @data["naming_scheme"] |
#profile_releases ⇒ Array<ProfileRelease>
Returns 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_kind ⇒ Array<ProfileRelease>
Returns 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 |
#profiles ⇒ Array<Profile>
Returns 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_kind ⇒ Array<Profile>
Returns 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 |