Sha256: 45de83fc80658455e7ea8c4ea89306d7944fd0058785432d4be0ba461c5955c6

Contents?: true

Size: 1.48 KB

Versions: 4

Compression:

Stored size: 1.48 KB

Contents

require 'tsort'       # to sort paramset in correct order 

module Sbuilder

  class ParamSets < Hash

    attr_reader :model                       # to resolve paramSets
    
    include TSort                            # sort in correct order

    # ------------------------------------------------------------------
    # constructore
    
    class << self

      def create( model )
        new( model )
      end

      private :new
      
    end # class methods

    def initialize( model )
      @model = model
    end

    # ------------------------------------------------------------------
    # tsort

    alias tsort_each_node each_key
    
    def tsort_each_child( paramSetName, &block)

      # # no depencies if no name ??
      # return unless key?( paramSetName )
      
      # access the object to sort
      # puts "fetch(#{paramSetName}) in #{keys}"
      paramSet = fetch(paramSetName)
      
      # find dependencies amongst the refenced paramSets (TestCase)
      paramSet.parameters.
        select do |parameter|
        parameter.isReference
      end.                                                      # consider only refences
        map do |parameter|
        # parameter.deReference( model ).getId
        parameter.getResolvedReference.getId        
      end.                                                      # resolve paramSet referenced
        each(&block)                                            # process tsort block for each paramSetname
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tla-sbuilder-0.3.9 lib/sbuilder/param_sets.rb
tla-sbuilder-0.3.8 lib/sbuilder/param_sets.rb
tla-sbuilder-0.3.7 lib/sbuilder/param_sets.rb
tla-sbuilder-0.3.4 lib/sbuilder/param_sets.rb