Sha256: cf79c915e7e8ef2d4dae8e4409a265be4de7a31874ab5e57444d09cd0d3c9ca6

Contents?: true

Size: 1.11 KB

Versions: 3

Compression:

Stored size: 1.11 KB

Contents

require 'fabricators/callbacks'
require 'fabricators/definitions'
require 'fabricators/configuration'
require 'fabricators/fabricator'
require 'fabricators/sequence'
require 'fabricators/fetcher'
require 'fabricators/proxy'
require 'fabricators/methods'
require 'fabricators/railtie'

module Fabricators
  extend Methods
  class << self

    def reset
      configuration.reset
      definitions.reset
    end

    def configure(&block)
      configuration.instance_eval &block
    end

    def configuration
      @configuration ||= Configuration.new
    end

    def define(&block)
      definitions.instance_eval &block
    end

    def definitions
      @definitions ||= Definitions.new
    end

    def clean
      records.pop.destroy until records.empty?
    end

    def records
      @records ||= []
    end

    def load
      if path
        Dir[path.join('**', '*.rb')].each do |file|
          definitions.instance_eval File.read(file)
        end
      end
    end

    def path
      @path ||= %w(test spec).map{ |dir| Rails.root.join(dir) }.find{ |path| Dir.exist?(path) }.try(:join, 'fabricators')
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
fabricators-0.1.2 lib/fabricators.rb
fabricators-0.1.1 lib/fabricators.rb
fabricators-0.1.0 lib/fabricators.rb