mirror of
https://github.com/rsheldiii/KeyV2.git
synced 2024-11-23 05:34:23 +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
|