module YARD::Templates::ErbCache

@since 0.5.4

Public Class Methods

clear!() click to toggle source
# File lib/yard/templates/erb_cache.rb, line 17
def self.clear!
  return unless defined?(@methods) && @methods
  @methods.clear
end
method_for(filename) { || ... } click to toggle source
# File lib/yard/templates/erb_cache.rb, line 6
def self.method_for(filename)
  @methods ||= {}
  return @methods[filename] if @methods[filename]
  @methods[filename] = name = "_erb_cache_#{@methods.size}"
  erb = yield.src
  encoding = erb[/\A(#coding[:=].*\r?\n)/, 1] || ''
  module_eval "#{encoding}def #{name}; #{erb}; end", filename

  name
end