Class: DataMetaPii::AppLink
- Inherits:
-
VersionedVo
- Object
- VersionedVo
- DataMetaPii::AppLink
- Defined in:
- lib/dataMetaPii.rb
Overview
AppLink Attribute Division VO, i.e. full Application Link Definition
Constant Summary collapse
- INDENT =
Use same ident as the main class:
DataMetaPii::INDENT
Instance Attribute Summary collapse
-
#reusables ⇒ Hash
nilor the Hash keyed by reusable var name pointing to the instance of AttrSect PII field key pointing to the instance of AttrSect. -
#sectVos ⇒ Hash
The Hash keyed by the application name symbol pointing to a Hash keyed by the Abstract PII field key pointing to the instance of AttrSect.
Attributes inherited from VersionedVo
Instance Method Summary collapse
-
#initialize(ver, vos, reusables = nil) ⇒ AppLink
constructor
Creates an instance for the given parameters, see the properties with the same names.
-
#resolveRefs ⇒ Object
Resolves reusable variable references, reports errors.
-
#to_s ⇒ Object
String representation.
Constructor Details
#initialize(ver, vos, reusables = nil) ⇒ AppLink
Creates an instance for the given parameters, see the properties with the same names.
330 331 332 333 |
# File 'lib/dataMetaPii.rb', line 330 def initialize(ver, vos, reusables = nil) super(ver) @sectVos, @reusables = vos, reusables end |
Instance Attribute Details
#reusables ⇒ Hash
Returns nil or the Hash keyed by reusable var name pointing to the instance of AttrSect PII field key pointing to the instance of AttrSect.
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 |
# File 'lib/dataMetaPii.rb', line 321 class AppLink < VersionedVo # Use same ident as the main class: INDENT = DataMetaPii::INDENT attr_accessor :sectVos, :reusables Creates an instance for the given parameters, see the properties with the same names. def initialize(ver, vos, reusables = nil) super(ver) @sectVos, @reusables = vos, reusables end # Resolves reusable variable references, reports errors def resolveRefs() raise ArgumentError, 'Sections are not set yet on this instance' unless @sectVos return self unless @reusables # no reusables defined, all vars should be accounted for @reusables.keys.each { |uk| ref = @reusables[uk].refs ref.keys.each { |rk| raise ArgumentError, %<Reusable "#{uk}" references "#{rk}" which is not defined> unless @reusables[rk] } } @sectVos.keys.each { |ak| app = @sectVos[ak] app.keys.each { |sk| sect = app[sk] sect.refs.keys.each { |rk| raise ArgumentError, %<In the app "#{ak}": the field "#{sk}" references "#{ rk}" which is not defined> unless @reusables[rk] } } } self end # String representation def to_s %<#{self.class.name}{apps=#{@sectVos.inspect}> end end |
#sectVos ⇒ Hash
Returns the Hash keyed by the application name symbol pointing to a Hash keyed by the Abstract PII field key pointing to the instance of AttrSect.
321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 |
# File 'lib/dataMetaPii.rb', line 321 class AppLink < VersionedVo # Use same ident as the main class: INDENT = DataMetaPii::INDENT attr_accessor :sectVos, :reusables Creates an instance for the given parameters, see the properties with the same names. def initialize(ver, vos, reusables = nil) super(ver) @sectVos, @reusables = vos, reusables end # Resolves reusable variable references, reports errors def resolveRefs() raise ArgumentError, 'Sections are not set yet on this instance' unless @sectVos return self unless @reusables # no reusables defined, all vars should be accounted for @reusables.keys.each { |uk| ref = @reusables[uk].refs ref.keys.each { |rk| raise ArgumentError, %<Reusable "#{uk}" references "#{rk}" which is not defined> unless @reusables[rk] } } @sectVos.keys.each { |ak| app = @sectVos[ak] app.keys.each { |sk| sect = app[sk] sect.refs.keys.each { |rk| raise ArgumentError, %<In the app "#{ak}": the field "#{sk}" references "#{ rk}" which is not defined> unless @reusables[rk] } } } self end # String representation def to_s %<#{self.class.name}{apps=#{@sectVos.inspect}> end end |
Instance Method Details
#resolveRefs ⇒ Object
Resolves reusable variable references, reports errors
336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
# File 'lib/dataMetaPii.rb', line 336 def resolveRefs() raise ArgumentError, 'Sections are not set yet on this instance' unless @sectVos return self unless @reusables # no reusables defined, all vars should be accounted for @reusables.keys.each { |uk| ref = @reusables[uk].refs ref.keys.each { |rk| raise ArgumentError, %<Reusable "#{uk}" references "#{rk}" which is not defined> unless @reusables[rk] } } @sectVos.keys.each { |ak| app = @sectVos[ak] app.keys.each { |sk| sect = app[sk] sect.refs.keys.each { |rk| raise ArgumentError, %<In the app "#{ak}": the field "#{sk}" references "#{ rk}" which is not defined> unless @reusables[rk] } } } self end |
#to_s ⇒ Object
String representation
360 361 362 |
# File 'lib/dataMetaPii.rb', line 360 def to_s %<#{self.class.name}{apps=#{@sectVos.inspect}> end |