Sha256: c71701a3d4949485c0281318698d543c18feb4d696e8fc9114baa93328349af7

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

module OrigenTesters
  module IGXLBasedTester
    class Base
      class TestInstanceGroup
        attr_accessor :name, :version, :append_version

        include Enumerable

        def initialize(name, options = {})
          @name = name
          @store = []
          @append_version = true
        end

        def name
          if unversioned_name
            if version && @append_version
              "#{unversioned_name}_v#{version}"
            else
              unversioned_name.to_s
            end
          end
        end

        def unversioned_name
          if @name
            if @name =~ /grp$/
              @name
            else
              "#{@name}_grp"
            end
          end
        end

        def <<(instance)
          @store << instance
        end

        def size
          @store.size
        end

        def each
          @store.each { |ins| yield ins }
        end

        def ==(other_instance_group)
          self.class == other_instance_group.class &&
            unversioned_name.to_s == other_instance_group.unversioned_name.to_s &&
            size == other_instance_group.size &&
            self.all? do |ins|
              other_instance_group.any? { |other_ins| ins == other_ins }
            end
        end

        def finalize
          lambda do |group|
            each do |ti|
              ti.finalize.call(ti) if ti.finalize
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
origen_testers-0.13.2 lib/origen_testers/igxl_based_tester/base/test_instance_group.rb
origen_testers-0.10.0 lib/origen_testers/igxl_based_tester/base/test_instance_group.rb