Sha256: c649e57aad949ac438be34b9259f5fb3b2cf5013de937b6f8ee87f5bfa13b4cb

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'data_magic/core_ext/string'
require 'data_magic/core_ext/fixnum'
require "data_magic/version"
require "data_magic/translation"
require "data_magic/date_translation"
require 'yml_reader'

require 'faker'

module DataMagic
  include Translation
  include DateTranslation
  extend YmlReader

  def self.included(cls)
    translators.each do |translator|
      cls.send :include, translator
    end
  end

  def data_for(key, additional={})
    DataMagic.load('default.yml') unless DataMagic.yml
    data = DataMagic.yml[key.to_s]
    prep_data data.merge(additional).clone
  end

  private

  def prep_data(data)
    data.each do |key, value|
      unless value.nil?
        next unless value.respond_to? '[]'
        data[key] = eval(value[1..-1]) if value[0,1] == "~"
      end
    end
    data
  end

  class << self
    attr_accessor :yml
  
    def default_directory
      'config/data'
    end

    def add_translator(translator)
      translators << translator
    end

    def translators
      @translators ||= []
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
data_magic-0.13 lib/data_magic.rb