Class: Oscal::BaseClass
- Inherits:
-
Object
- Object
- Oscal::BaseClass
- Includes:
- Serializer
- Defined in:
- lib/oscal/base_class.rb
Direct Known Subclasses
Add, Address, AddressLine, Alter, BackMatter, Base64Object, Choice, Citation, Combine, Constraint, Control, Custom, DocumentId, EmailAddress, ExcludeControl, ExternalId, Group, Guideline, HashObject, ImportObject, IncludeControl, InsertControl, Link, Location, LocationUuid, Matching, MemberOfOrganization, Merge, MetadataBlock, Modify, Parameter, Part, Party, PartyUuid, Property, Remove, Resource, ResponsibleParty, Revision, Rlink, Role, Select, SetParameter, TelephoneNumber, Test, Url, Value, WithId
Constant Summary collapse
- KEY =
%i(val)
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ BaseClass
constructor
A new instance of BaseClass.
- #set_value(_key_name, val) ⇒ Object
Methods included from Serializer
included, #to_h, #to_json, #to_xml, #to_yaml
Constructor Details
#initialize(options = {}) ⇒ BaseClass
Returns a new instance of BaseClass.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/oscal/base_class.rb', line 23 def initialize( = {}) klass = self.class unless .is_a? Hash = { klass::KEY.first.to_s => } end .each_pair.each do |key, val| key_name = key.gsub("-", "_") key_name = "klass" if key == "class" unless klass::KEY.include?(key_name.to_sym) raise UnknownAttributeError.new( "Unknown key `#{key}` in #{klass.name}", ) end val = set_value(key_name, val) send("#{key_name}=", val) end end |
Class Method Details
.wrap(obj) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/oscal/base_class.rb', line 13 def self.wrap(obj) klass = self return obj if obj.is_a? klass return klass.new(obj) unless obj.is_a? Array obj.map do |x| klass.wrap(x) end end |
Instance Method Details
#set_value(_key_name, val) ⇒ Object
46 47 48 |
# File 'lib/oscal/base_class.rb', line 46 def set_value(_key_name, val) val end |