class Tofu::ERBMethod

Public Class Methods

new(method_name, fname, dir=nil) click to toggle source
# File lib/tofu.rb, line 171
def initialize(method_name, fname, dir=nil)
  @fname = build_fname(fname, dir)
  @method_name = method_name
end

Public Instance Methods

reload(mod) click to toggle source
# File lib/tofu.rb, line 176
def reload(mod)
  erb = File.open(@fname) {|f| ERB.new(f.read)}
  erb.def_method(mod, @method_name, @fname)
end

Private Instance Methods

build_fname(fname, dir) click to toggle source
# File lib/tofu.rb, line 182
def build_fname(fname, dir)
  case dir
  when String
    ary = [dir]
  when Array
    ary = dir
  else
    ary = $:
  end

  found = fname # default
  ary.each do |dir|
    path = File::join(dir, fname)
    if File::readable?(path)
      found = path
      break
    end
  end
  found
end