class Zenlish::Feature::FeatureStructDef

Attributes

parent[R]
struct[R]

Public Class Methods

new(aParent = nil) click to toggle source

@param aParent [FeatureStructDef]

Calls superclass method
# File lib/zenlish/feature/feature_struct_def.rb, line 12
def initialize(aParent = nil)
  super()
  @parent = validated_parent(aParent)
  @struct = {}
end

Public Instance Methods

[](aFeatureName) click to toggle source

@param aFeatureName [String]

# 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) click to toggle source

@param aFeatureDef [Zenlish::Feature::FeatureDef]

# File lib/zenlish/feature/feature_struct_def.rb, line 31
def add_feature_def(aFeatureDef)
  struct[aFeatureDef.name] = aFeatureDef
end

Private Instance Methods

validated_parent(aParent) click to toggle source
# File lib/zenlish/feature/feature_struct_def.rb, line 37
def validated_parent(aParent)
  if aParent.kind_of?(FeatureStructDef)
    aParent
  elsif aParent
    aParent.struct
  else
    nil
  end
end