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?

Constructor Details

#initialize(aParent = nil) ⇒ FeatureStructDef

Returns a new instance of FeatureStructDef.

Parameters:



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

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

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



6
7
8
# File 'lib/zenlish/feature/feature_struct_def.rb', line 6

def parent
  @parent
end

#structObject (readonly)

Returns the value of attribute struct.



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

def struct
  @struct
end

Instance Method Details

#[](aFeatureName) ⇒ Object

Parameters:

  • aFeatureName (String)

Raises:

  • (StandardError)


16
17
18
19
20
21
22
23
24
# File 'lib/zenlish/feature/feature_struct_def.rb', line 16

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:



27
28
29
# File 'lib/zenlish/feature/feature_struct_def.rb', line 27

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