Sha256: 0efefe548be0fa044298d6afc863f335aa130608cc31d4a198bdece65ef7fc58
Contents?: true
Size: 834 Bytes
Versions: 1
Compression:
Stored size: 834 Bytes
Contents
# frozen_string_literal: true require 'yaml' require 'erb' module Conifer class File NotFoundError = Class.new(StandardError) attr_reader :name, :prefix, :dir def initialize(name, dir:, prefix: nil) @name = name @prefix = prefix @dir = dir end def [](key) args = key.split('.').tap { |v| v.prepend(prefix) if prefix } config.dig(*args) end def as_hash config end private def config @config ||= YAML.safe_load(ERB.new(::File.read(path)).result) end def path(directory = dir) file = ::File.join(directory, name).to_s if ::File.exist?(file) file else raise NotFoundError, "Could not find file #{name}" if directory == '/' path(::File.expand_path('..', directory)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
conifer-0.2.0 | lib/conifer/file.rb |