/ openscad.rb
openscad.rb
1 module OpenSCAD 2 def self.expand(filename) 3 lines = File.readlines(filename) 4 old_dir = Dir.getwd 5 6 Dir.chdir File.dirname(filename) 7 lines = lines.flat_map do |line| 8 # please note we do not implement `use` at all 9 if line =~ /(include|use)\s*<(.*)>/ 10 # File.readlines("./#{$2}") 11 expand("./#{$2}") 12 else 13 line 14 end 15 end 16 17 Dir.chdir old_dir 18 19 lines 20 end 21 22 def self.expand_openSCAD_file(source, destination) 23 lines = OpenSCAD::expand(source) 24 25 f = File.open(destination, 'w') 26 f.write lines.join 27 end 28 end