Add Assets module to abstract accessing asset files

This commit is contained in:
Josh Holtrop 2023-09-25 16:16:20 -04:00
parent db6dc0e099
commit 197f126109
3 changed files with 13 additions and 1 deletions

View File

@ -1,6 +1,7 @@
require "erb"
require "set"
require "stringio"
require_relative "propane/assets"
require_relative "propane/cli"
require_relative "propane/code_point_range"
require_relative "propane/fa"

10
lib/propane/assets.rb Normal file
View File

@ -0,0 +1,10 @@
class Propane
module Assets
class << self
def get(name)
path = File.join(File.dirname(File.expand_path(__FILE__)), "../../assets/#{name}")
File.binread(path)
end
end
end
end

View File

@ -25,7 +25,8 @@ class Propane
extensions += %w[h]
end
extensions.each do |extension|
erb = ERB.new(File.read(File.join(File.dirname(File.expand_path(__FILE__)), "../../assets/parser.#{extension}.erb")), trim_mode: "<>")
template = Assets.get("parser.#{extension}.erb")
erb = ERB.new(template, trim_mode: "<>")
output_file = @output_file.sub(%r{\.[a-z]+$}, ".#{extension}")
result = erb.result(binding.clone)
File.open(output_file, "wb") do |fh|