mirror of
https://github.com/rsheldiii/KeyV2.git
synced 2024-11-30 00:16:10 +00:00
31 lines
673 B
Ruby
31 lines
673 B
Ruby
module OpenSCAD
|
|
def self.expand(filename)
|
|
lines = File.readlines(filename)
|
|
old_dir = Dir.getwd
|
|
|
|
Dir.chdir File.dirname(filename)
|
|
lines = lines.flat_map do |line|
|
|
if line =~ /(include|use)\s*<(.*)>/
|
|
# File.readlines("./#{$2}")
|
|
expand("./#{$2}")
|
|
# in lieu of actually implementing `use`, we can just cull this final line from key.scad
|
|
elsif line =~ /example\_key\(\);/
|
|
""
|
|
else
|
|
line
|
|
end
|
|
end
|
|
|
|
Dir.chdir old_dir
|
|
|
|
lines
|
|
end
|
|
|
|
def self.expand_openSCAD_file(source, destination)
|
|
lines = OpenSCAD::expand(source)
|
|
|
|
f = File.open(destination, 'w')
|
|
f.write lines.join
|
|
end
|
|
end
|