Class: Zenlish::Feature::FeatureStructDef

Inherits:
FeatureDomain show all
Defined in:
lib/zenlish/feature/feature_struct_def.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from FeatureDomain

#include?, #to_a

Constructor Details

#initialize(aParent = nil) ⇒ FeatureStructDef

Returns a new instance of FeatureStructDef.

Parameters:



12
13
14
15
16
# File 'lib/zenlish/feature/feature_struct_def.rb', line 12

def initialize(aParent = nil)
  super()
  @parent = validated_parent(aParent)
  @struct = {}
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



8
9
10
# File 'lib/zenlish/feature/feature_struct_def.rb', line 8

def parent
  @parent
end

#structObject (readonly)

Returns the value of attribute struct.



9
10
11
# File 'lib/zenlish/feature/feature_struct_def.rb', line 9

def struct
  @struct
end

Instance Method Details

#[](aFeatureName) ⇒ Object

Parameters:

  • aFeatureName (String)

Raises:

  • (StandardError)


19
20
21
22
23
24
25
26
27
28
# File 'lib/zenlish/feature/feature_struct_def.rb', line 19

def [](aFeatureName)
  return struct[aFeatureName] if struct.include? aFeatureName

  if parent
    p_struct = parent.struct
    return p_struct[aFeatureName] if p_struct.include? aFeatureName
  end

  raise StandardError, "Unknown feature name #{aFeatureName}"
end

#add_feature_def(aFeatureDef) ⇒ Object

Parameters:



31
32
33
# File 'lib/zenlish/feature/feature_struct_def.rb', line 31

def add_feature_def(aFeatureDef)
  struct[aFeatureDef.name] = aFeatureDef
end