Module: Sbuilder::StepGeneratorValue

Included in:
StepGeneratorValueRoot
Defined in:
lib/sbuilder/extension_loader_step_generator.rb

Overview

module implementing ‘@validIndex’ and ‘@validValues’ array to return values.

Class including this module must implement ‘validValuesSet’

Instance Attribute Summary collapse

Public services collapse

Implement set of valid values collapse

Instance Attribute Details

#validIndexObject



112
113
114
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 112

def validIndex
  @validIndex
end

Instance Method Details

#currentValue(memo) ⇒ Boolean, Hash

Update ‘memo’ key ‘parameterName’ with current ‘validValue’

Parameters:

  • memo (Hash)

    hash where current ‘validValue’ gets updated

Returns:

  • (Boolean, Hash)

    true when valid value found, updated ‘memo’



122
123
124
125
126
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 122

def currentValue( memo )
  currentValue = validValue( validIndex )
  memo[parameterName] = currentValue
  return !currentValue.nil?, memo
end

#nextValueBoolean

Advance ‘@validIndex’ to point to next valid entry in ‘@validValue’ -set.

Returns:

  • (Boolean)

    true is not wrapped around



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 132

def nextValue

  self.validIndex= validIndex + 1

    # loop until next valid value found (or wrapped around)
    if validIndex >= validValueCount
      # Wrapped around
      self.validIndex= 0
      return false
    end

    # not wrapped around
    return true

end

#validValue(indx) ⇒ String

Returns element in position ‘indx’ of ‘validValues’.

Returns:

  • (String)

    element in position ‘indx’ of ‘validValues’



154
155
156
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 154

def validValue( indx )
  validValues[indx]
end

#validValueCountInteger

validation

Returns:

  • (Integer)

    number of domain elements passed ‘action’



161
162
163
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 161

def validValueCount
  validValues.length
end

#validValuesString:Array|Hash:Array

Return (cached ) set of valid values. For non isArray generator return ‘validValuesSet’, else (i.e. isArray = true ) return powerset( validValuesSet )

Returns:

  • (String:Array|Hash:Array)

    valid_values set for parameter



171
172
173
174
175
176
177
178
179
180
# File 'lib/sbuilder/extension_loader_step_generator.rb', line 171

def validValues
  return @validValues if @validValues

  Sbuilder::StepGenerator.logger.info "#{__method__}, parameter=#{parameter.name}, isArray=#{isArray}, validValuesSet.length=#{validValuesSet.length}"

  Sbuilder::StepGenerator.maxPowerSet( validValuesSet.length ) if isArray
  @validValues = isArray ? Sbuilder::Powerset.powerset( validValuesSet ) : validValuesSet
  
  return @validValues
end