From 197f1261092bcfeb393aede1f6d7600c10b40eed Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 25 Sep 2023 16:16:20 -0400 Subject: [PATCH] Add Assets module to abstract accessing asset files --- lib/propane.rb | 1 + lib/propane/assets.rb | 10 ++++++++++ lib/propane/generator.rb | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 lib/propane/assets.rb diff --git a/lib/propane.rb b/lib/propane.rb index a5e7324..33b2b76 100644 --- a/lib/propane.rb +++ b/lib/propane.rb @@ -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" diff --git a/lib/propane/assets.rb b/lib/propane/assets.rb new file mode 100644 index 0000000..a4b0087 --- /dev/null +++ b/lib/propane/assets.rb @@ -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 diff --git a/lib/propane/generator.rb b/lib/propane/generator.rb index ae82334..ff8fbca 100644 --- a/lib/propane/generator.rb +++ b/lib/propane/generator.rb @@ -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|