Sha256: bb4709ee71f1c322b13e79bce7e0abe644f5bb47cf8db9f2fc2442de1cbcaaa4

Contents?: true

Size: 1.49 KB

Versions: 15

Compression:

Stored size: 1.49 KB

Contents

module SportDB

class Loader

## make models available in sportdb module by default with namespace
#  e.g. lets you use Team instead of Models::Team 
  include SportDB::Models


  def initialize( logger=nil )
    if logger.nil?
      @logger = Logger.new(STDOUT)
      @logger.level = Logger::INFO
    else
      @logger = logger
    end
  end

  attr_reader :logger


  def run( opts, args )

    args.each do |arg|
      name = arg     # File.basename( arg, '.*' )
      
      if opts.load?
        load_fixtures_builtin( name )
      else
        load_fixtures_with_include_path( name, opts.data_path )
      end
    end
    
  end # method run


  def load_fixtures_with_include_path( name, include_path )  # load from file system
    path = "#{include_path}/#{name}.rb"
 
    puts "*** loading data '#{name}' (#{path})..."

    code = File.read( path )
    
    load_fixtures_worker( code )
  end
  
  def load_fixtures_builtin( name ) # load from gem (built-in)
    path = "#{SportDB.root}/db/#{name}.rb"
 
    puts "*** loading data '#{name}' (#{path})..."

    code = File.read( path )
    
    load_fixtures_worker( code )
  end
  

private
  def load_fixtures_worker( code )
    
    self.class_eval( code )

    # NB: same as
    #
    # module SportDB
    #   include SportDB::Models
    #  <code here>
    # end
    
    
    # require path
    # require "#{Dir.pwd}/db/#{seed}.rb"

    # Prop.create!( :key => "db.#{name}.version", :value => SportDB::VERSION )
    
  end
  
end # class Loader
end # module SportDB

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
sportdb-0.8.1 lib/sportdb/loader.rb
sportdb-0.8.0 lib/sportdb/loader.rb
sportdb-0.7.2 lib/sportdb/loader.rb
sportdb-0.7.1 lib/sportdb/loader.rb
sportdb-0.7.0 lib/sportdb/loader.rb
sportdb-0.6.0 lib/sportdb/loader.rb
sportdb-0.5.6 lib/sportdb/loader.rb
sportdb-0.5.5 lib/sportdb/loader.rb
sportdb-0.5.4 lib/sportdb/loader.rb
sportdb-0.5.3 lib/sportdb/loader.rb
sportdb-0.5.2 lib/sportdb/loader.rb
sportdb-0.5.1 lib/sportdb/loader.rb
sportdb-0.5.0 lib/sportdb/loader.rb
sportdb-0.4.5 lib/sportdb/loader.rb
sportdb-0.4.4 lib/sportdb/loader.rb