class Zenlish::Feature::FeatureDef
Attributes
default[R]
@return [FeatureValue] the default value for the feature.
domain[R]
@return [FeatureDomain] the set of potential values the feature can take
name[R]
@return [String] the name of the feature
Public Class Methods
new(aName, aDomain, aDefault = nil)
click to toggle source
@param aName [String] the name of the feature @param aDomain [FeatureDomain] @param aDefault [FeatureValue, NilClass]
# File lib/zenlish/feature/feature_def.rb, line 22 def initialize(aName, aDomain, aDefault = nil) @name = validated_name(aName) @domain = aDomain @default = validated_default(domain, aDefault) end
Private Instance Methods
validated_default(aDomain, aDefault)
click to toggle source
# File lib/zenlish/feature/feature_def.rb, line 36 def validated_default(aDomain, aDefault) if aDefault @default = aDefault elsif aDomain.is_a?(BooleanDomain) @default = nil elsif aDomain.is_a?(EnumerationDomain) if aDomain.enum.size == 1 val = FeatureValue.new(aDomain.enum[0]) @default = val else @default = nil end end end
validated_name(aName)
click to toggle source
# File lib/zenlish/feature/feature_def.rb, line 30 def validated_name(aName) raise StandardError, 'feature name cannot be empty.' if aName.empty? aName.dup end