class Minarai::Loaders::Base

Public Class Methods

new(path) click to toggle source
# File lib/minarai/loaders/base.rb, line 8
def initialize(path)
  @path = path
end

Public Instance Methods

load() click to toggle source
# File lib/minarai/loaders/base.rb, line 12
def load
  case
  when !existed_file?
    raise "Does not exist file: #{pathname}"
  when yml_file?
    load_yaml_file
  when erb_file?
    load_erb_file
  else
    raise 'inalid extname error'
  end
end

Private Instance Methods

binding_for_erb() click to toggle source
# File lib/minarai/loaders/base.rb, line 27
def binding_for_erb
  TOPLEVEL_BINDING
end
erb_file?() click to toggle source
# File lib/minarai/loaders/base.rb, line 62
def erb_file?
  pathname.extname == '.erb'
end
existed_file?() click to toggle source
# File lib/minarai/loaders/base.rb, line 54
def existed_file?
  pathname.exist?
end
load_erb_file() click to toggle source
# File lib/minarai/loaders/base.rb, line 39
def load_erb_file
  self.class.new(parsed_erb_file.path).load
end
load_file_from_yaml() click to toggle source
# File lib/minarai/loaders/base.rb, line 66
def load_file_from_yaml
  YAML.load_file(pathname)
end
load_yaml_file() click to toggle source
# File lib/minarai/loaders/base.rb, line 35
def load_yaml_file
  loaded_class.new(load_file_from_yaml)
end
loaded_class() click to toggle source
# File lib/minarai/loaders/base.rb, line 31
def loaded_class
  raise NotImplementedError
end
parsed_erb() click to toggle source
# File lib/minarai/loaders/base.rb, line 43
def parsed_erb
  ERB.new(pathname.read).result(binding_for_erb)
end
parsed_erb_file() click to toggle source
# File lib/minarai/loaders/base.rb, line 47
def parsed_erb_file
  @parsed_erb_file ||= Tempfile.open(['', '.yml']) do |tmp|
    tmp.puts parsed_erb
    tmp
  end
end
pathname() click to toggle source
# File lib/minarai/loaders/base.rb, line 70
def pathname
  @pathname ||= Pathname.new(@path)
end
yml_file?() click to toggle source
# File lib/minarai/loaders/base.rb, line 58
def yml_file?
  %w(.yml yaml).include?(pathname.extname)
end