kicad 0.9.6 → 0.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e944bc881b0e7a99b42b633c9df21024d42b2e30e7b457ffa6ca1a796588c04e
4
- data.tar.gz: 3e85ea51ff84ceeb5568caf53bb7c52b0e63a4dc5b1e9f2d477ac436e7227482
3
+ metadata.gz: 18fb51abbed1c58f99dbd73f3f9af6b8cac11938f885eb69f1af2b767b41d084
4
+ data.tar.gz: 9379a13c657dfa54b433c02cba67392447a93146980d33299ffd73d8a61860ef
5
5
  SHA512:
6
- metadata.gz: c89b5bae3031b0d8e20ac110a32332aa9fa28d4165fffd11c83babc20a147118df8b605563eda7ce20bd564beccfcdd9e5291f473ac038bec9c19fa55a189e00
7
- data.tar.gz: b790349787e1c3badd597ffc4be397e472f41c55c2a7c189552bc9373ad2132102f71dbc20ec52291344bda9706f52cddfb9589d74b0357c82573b45bfc8260a
6
+ metadata.gz: 9181bf9733dea2ab7483dfa622088c4604146def2cfcdd1eb249221f8a8a7b6e3dcab80cbb2075d6c3bca72cacd9d9d76e1bb3246e5c07c5210170963629de2e
7
+ data.tar.gz: 884bdd9984b362aee84d9a12af8843732c35d69f92836a349a1a2e1b31167226fb8985325c8b8977f8f14434c89c182b95f2ebcef8cea1efb8d4356a3d669463
@@ -0,0 +1,9 @@
1
+ # ruby -w
2
+ #
3
+ # Pretty-printer for JLC libraries
4
+ #
5
+ require 'kicad'
6
+
7
+ k = KiCad.load(ARGV[0]).value
8
+
9
+ File.open('rewrite.kicad_sym', 'w') { |f| f.puts k.emit }
@@ -0,0 +1,36 @@
1
+ # ruby -w
2
+ #
3
+ # Find duplicate symbol rendering in a Kicad library
4
+ # Merged symbols must have same appearance and reference designator
5
+ #
6
+ require 'kicad'
7
+ require 'debug'
8
+
9
+ k = KiCad.load(ARGV[0]).value
10
+
11
+ symbols_by_pretty = {}
12
+
13
+ k.all_symbol.
14
+ each do |s|
15
+ child_symbols = s.all_symbol
16
+
17
+ # the key is the concatenated pretty-printed contents of all child symbols
18
+ key =
19
+ child_symbols.map do |c|
20
+ s['Reference'].inspect+':' +
21
+ c.children.filter{|e| KiCad::AST::Property === e}.map(&:emit).sort*" "
22
+ end.sort*"\n"
23
+
24
+ existing = symbols_by_pretty[key]
25
+ if existing
26
+ puts "#{s.id} is a dup of #{existing.id}"
27
+
28
+ # delete all child symbols, prepend extends:
29
+ s.children.delete_if{|c| child_symbols.include?(c)}
30
+ s.children.prepend(KiCad.parse("(extends #{existing.id.inspect})")&.value)
31
+ else
32
+ symbols_by_pretty[key] = s
33
+ end
34
+ end
35
+
36
+ File.open('rewrite.kicad_sym', 'w') { |f| f.puts k.emit }
data/kicad.gemspec CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.required_ruby_version = ">= 3.0"
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
- # spec.bindir = "bin"
20
- # spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.bindir = "bin"
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
23
  spec.add_development_dependency "bundler", ">= 1.11"
data/lib/kicad/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module KiCad
2
- VERSION = "0.9.6"
2
+ VERSION = "0.9.7"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kicad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clifford Heath
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-11 00:00:00.000000000 Z
10
+ date: 2025-05-15 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: bundler
@@ -80,7 +80,9 @@ dependencies:
80
80
  description: Load and rewrite Kicad s-expression files into a tree structure for scripting
81
81
  email:
82
82
  - clifford.heath@gmail.com
83
- executables: []
83
+ executables:
84
+ - kicad_beautify.rb
85
+ - kicad_dedup_symbols.rb
84
86
  extensions: []
85
87
  extra_rdoc_files: []
86
88
  files:
@@ -89,6 +91,8 @@ files:
89
91
  - Gemfile.lock
90
92
  - README.md
91
93
  - Rakefile
94
+ - bin/kicad_beautify.rb
95
+ - bin/kicad_dedup_symbols.rb
92
96
  - kicad.gemspec
93
97
  - lib/kicad.rb
94
98
  - lib/kicad/ast.rb