From bcbef270884750fb7f55d5ab531655c14ba53444 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 4 Jun 2022 09:26:55 -0700 Subject: Named pins on subcomponents. --- library.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'library.rb') diff --git a/library.rb b/library.rb index 1963b6e..bddcdea 100644 --- a/library.rb +++ b/library.rb @@ -30,7 +30,13 @@ def define_ic(name, value, pincount, *subparts, &automatic) if parts.size < 1 ic = comp("U", "#{$ic}-#{pincount}", name, value) automatic.call(ic) - subs = subparts.map { | sub | sub.map { | pin | ic[pin] } } + subs = subparts.map do | sub | + if sub.respond_to?(:transform_values) + sub.transform_values { | pin | ic[pin] } + else + sub.map { | pin | ic[pin] } + end + end subs.each do | sub | if sub.size == 2 parts << pair(*sub) @@ -45,8 +51,8 @@ end def stock_ic(name, value, &automatic) case value - when /74.*00/; define_ic(name, value, 14, [1, 2, 3], [4, 5, 6], [13, 12, 11], [10, 9, 8], &automatic) - when /74.*04/; define_ic(name, value, 14, [1, 2], [3, 4], [5, 6], [13, 12], [11, 10], [9, 8], &automatic) + when /74\D*00$/; define_ic(name, value, 14, {a: 1, b: 2, y: 3}, {a: 4, b: 5, y: 6}, {a: 13, b: 12, y: 11}, {a: 10, b: 9, y: 8}, &automatic) + when /74\D*04$/; define_ic(name, value, 14, [1, 2], [3, 4], [5, 6], [13, 12], [11, 10], [9, 8], &automatic) end end -- cgit v1.2.3