class CatHerder::Assets::ErbAsset

Public Instance Methods

read() click to toggle source
# File lib/cat_herder/assets/erb_asset.rb, line 15
def read
  public_file.read
end
write() click to toggle source
# File lib/cat_herder/assets/erb_asset.rb, line 9
def write
  result, dependencies = evaluate_erb
  write_metadata(digest: digest_class.hexdigest(result), dependencies: dependencies)
  public_file.tap { |file| file.dirname.mkpath }.write(result)
end

Private Instance Methods

evaluate_erb() click to toggle source
# File lib/cat_herder/assets/erb_asset.rb, line 20
def evaluate_erb
  ruby = Assets.cache.fetch([self, "ruby"], version: source_mtime) do
    require "erubi"
    Erubi::Engine.new(File.read(source_path), filename: source_path).src
  end
  context = ErbContext.new(logical_path)
  [context.instance_eval(ruby), context._dependencies]
end