Sha256: 1456b5db3740ca35bf987b6e74baaf0e6870c61d549cf5034fa589e98d1f678a

Contents?: true

Size: 1.84 KB

Versions: 107

Compression:

Stored size: 1.84 KB

Contents

module OrigenTesters
  module IGXLBasedTester
    class Base
      class Patset
        attr_accessor :index

        # Specify multiple patterns by passing an array of attributes
        # as the 2nd argument:
        #
        #   Patset.new("mrd1_pset", :pattern => "nvm_mrd1.PAT")
        #
        #   Patset.new("mrd1_pset", [{:pattern => "nvm_mrd1.PAT"},
        #                            {:pattern => "nvm_global_subs.PAT, :start_label => "subr"}
        #                           ])
        def initialize(name, attrs = {})
          attrs = [attrs] unless attrs.is_a? Array
          attrs.each do |pattrs|
            if pattrs[:pattern]
              pat = Pathname.new(pattrs[:pattern].gsub('\\', '/')).basename('.*').to_s
              Origen.interface.referenced_patterns << pat
            end
            lines << platform::PatsetPattern.new(name, pattrs)
          end
          self.name = name
        end

        def ==(other_patset)
          self.class == other_patset.class &&
            name.to_s == other_patset.name.to_s &&
            sorted_pattern_files == other_patset.sorted_pattern_files
        end

        def name
          @name
        end

        def name=(n)
          @name = n
          lines.each { |l| l.pattern_set = n }
          n
        end

        # Returns all lines in the pattern set
        def lines
          @lines ||= []
        end

        # Returns all pattern files in the pattern set in alphabetical order
        def sorted_pattern_files
          @lines.map(&:file_name).sort
        end

        # Returns the fully formatted pattern set for insertion into a patset sheet
        def to_s
          l = ''
          lines.each do |line|
            l += "#{line}\r\n"
          end
          l.chomp
        end

        def platform
          Origen.interface.platform
        end
      end
    end
  end
end

Version data entries

107 entries across 107 versions & 1 rubygems

Version Path
origen_testers-0.52.9 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.8 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.7 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.6 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.5 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.4 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.3 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.1 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.52.0 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.5 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.4 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.3 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.2 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.1 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.51.0 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.50.0 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.49.4 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.49.3 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.49.2 lib/origen_testers/igxl_based_tester/base/patset.rb
origen_testers-0.49.1 lib/origen_testers/igxl_based_tester/base/patset.rb