Sha256: 179b42b153953fe4197b540d355de0f8e6a279e734c4bcb3316015ce4828aaf2

Contents?: true

Size: 1002 Bytes

Versions: 1

Compression:

Stored size: 1002 Bytes

Contents

# frozen_string_literal: true

#
# Copyright (c) 2018-present, Blue Marble Payroll, LLC
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
#

module Conferrable
  # Extra utilities that help, but do not define the domain.
  class FileUtilities
    class << self
      def resolve(filenames)
        Array(filenames).flatten.map do |filename|
          next unless filename && filename.to_s.length.positive?

          if File.exist?(filename) && File.directory?(filename)
            dir_name = File.join(filename, '**', '*.yml.erb')
            Dir.glob(dir_name).reject { |f| File.directory?(f) }
          elsif File.exist?(filename)
            filename
          else
            raise ArgumentError, "Cannot find file: #{filename} => #{File.expand_path(filename)}"
          end
        end.flatten
      end

      def read(filename)
        YAML.safe_load(ERB.new(IO.read(filename)).result)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
conferrable-1.0.3 lib/conferrable/file_utilities.rb