Sha256: 8bfd5adb443f5b69f25bba272e38fb1a8c2f713621964dc0df85e8b9ad1fd988

Contents?: true

Size: 1.32 KB

Versions: 18

Compression:

Stored size: 1.32 KB

Contents

module Origen
  module Tester
    class Ultraflex
      class Parser
        class DCSpecs < Origen::Tester::Parser::SearchableHash
          attr_accessor :parser

          def initialize(options = {})
            @parser = options[:parser]
          end

          def import(file)
            @categories = []
            File.readlines(file).each do |line|
              unless line.strip.empty?
                components = line.split("\t")
                if components[3] == 'Selector'
                  extract_categories(components)
                else
                  unless components[1] == 'DC Specs' || components[1] == 'Symbol'
                    extract_spec(components)
                  end
                end
              end
            end
          end

          def inspect
            "<DCSpecs: #{size}>"
          end

          def extract_categories(components)
            components.each_with_index do |val, i|
              if i > 4
                @categories << val unless val.strip.empty?
              end
            end
            @categories.uniq!
          end

          def extract_spec(components)
            name = components[1]
            self[name] ||= DCSpec.new(name, @categories, parser: parser)
            self[name].add_values(components)
          end
        end
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
origen-0.2.6 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.5 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.4 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.3 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.2 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.1 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.2.0 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.1.3 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.1.2 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.1.1 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.1.0 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.9 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.8 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.6 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.5 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.4 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.3 lib/origen/tester/ultraflex/parser/dc_specs.rb
origen-0.0.2 lib/origen/tester/ultraflex/parser/dc_specs.rb