Sha256: 33dcb8d5b28518aae69fa71a012d96be044abdd7b1289f481ae9ee31d9e27a1a

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

require "erb"
require "yaml"

module DataAccessible
  def self.include_data(filename)
    ERB.new(IO.read("#{filename}")).result
  end

  module DataLoader
    module_function

    def process_erb(text)
      ERB.new(text).result
    end

    def load_from_file(file)
      contents = File.read(file)
      evaluated_contents = process_erb(contents)
      YAML.load(evaluated_contents) || {}
    end

    def load_source(data_source)
      case data_source
        when Hash
          data_source
        when String
          load_from_file(data_source)
        when Symbol
          load_from_file("#{DataAccessible.data_path}/#{data_source}.yml")
        else
          raise("Invalid data source provided: #{data_source}")
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
data_accessible-1.0.2 lib/data_accessible/data_loader.rb