class BaseChip::Bom
Attributes
hash[R]
name1[R]
name2[R]
Public Class Methods
new(hash)
click to toggle source
# File lib/base_chip/bom.rb, line 36 def initialize(hash) @hash = hash.with_indifferent_access @name1 = 'all' @name2 = 'all' end
Public Instance Methods
+(bom)
click to toggle source
# File lib/base_chip/bom.rb, line 61 def +(bom) Bom.new(@hash.merge bom.hash) end
classes()
click to toggle source
# File lib/base_chip/bom.rb, line 42 def classes ; @classes ||= trim(2,:classes ) end
directories()
click to toggle source
# File lib/base_chip/bom.rb, line 57 def directories @directories ||= files.map{ |f| File.dirname(f) }.uniq end
gates()
click to toggle source
# File lib/base_chip/bom.rb, line 48 def gates ; @gates ||= trim(1,:gates ) end
headers()
click to toggle source
# File lib/base_chip/bom.rb, line 45 def headers ; @headers ||= trim(2,:headers ) end
list()
click to toggle source
# File lib/base_chip/bom.rb, line 53 def list ; @list ||= to_a.join(' ') ; end
rtl()
click to toggle source
# File lib/base_chip/bom.rb, line 47 def rtl ; @rtl ||= trim(1,:rtl ) end
stimulus()
click to toggle source
# File lib/base_chip/bom.rb, line 50 def stimulus ; @stimulus ||= trim(1,:stimulus ) end
systemc()
click to toggle source
# File lib/base_chip/bom.rb, line 44 def systemc ; @systemc ||= trim(2,:systemc ) end
tcl()
click to toggle source
# File lib/base_chip/bom_file.rb, line 41 def tcl @tcl ||= BomType.new(self,:tcl ) end
testbench()
click to toggle source
# File lib/base_chip/bom.rb, line 49 def testbench ; @testbench ||= trim(1,:testbench) end
text()
click to toggle source
# File lib/base_chip/bom_file.rb, line 38 def text @text ||= BomType.new(self,:text) end
to_a()
click to toggle source
# File lib/base_chip/bom.rb, line 52 def to_a ; @to_a ||= @hash.deep_values.flatten; end
Also aliased as: files
to_s()
click to toggle source
# File lib/base_chip/bom.rb, line 54 def to_s ; @to_s ||= list ; end
verilog()
click to toggle source
# File lib/base_chip/bom.rb, line 41 def verilog ; @verilog ||= trim(2,:verilog ) end
vhdl()
click to toggle source
# File lib/base_chip/bom.rb, line 43 def vhdl ; @vhdl ||= trim(2,:vhdl ) end
Protected Instance Methods
trim(depth,key)
click to toggle source
# File lib/base_chip/bom.rb, line 66 def trim(depth,key) hash = HashWithIndifferentAccess.new @hash.each do |k1,l1| case depth when 1; hash[k1] = l1 if k1.to_s == key.to_s when 2; hash[k1] = HashWithIndifferentAccess.new l1.each do |k2,l2| hash[k1][k2] = l2 if k2.to_s == key.to_s end end end Bom.new(hash) end