Sha256: 211a1fcbef2080b2fee00f2dfea97245791c6bb93b27d5f7c8f4d3992d56b449
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
require 'kvm/resource' require 'kvm/rice_release' require 'kvm/impex' require 'kvm/log' require 'fileutils' module KVM class RiceReleaseGeneratedDataset < DirResource BASE_DIR=File.expand_path('datasets', KVM_DIR) attr_reader :project, :ds_name, :db_type # project is the fully resolved project dir basename (including dist) def initialize(project, ds_name, db_type, opts = {}) @project = project @ds_name = ds_name @db_type = db_type @opts = opts @ds_src_dir = RiceReleaseGeneratedDataset.project_dataset_src_dir(@project, @ds_name) LOG.debug "DS SOURCE DIR: " + @ds_src_dir LOG.debug "DS NAME: " + @ds_name file = File.join(BASE_DIR, project, RiceReleaseGeneratedDataset.ds_dirname(ds_name), db_type) super(file) end def generate! LOG.debug "Generating dataset #{path}" FileUtils.mkdir_p @path KVM::RiceRelease.new(@project).get KVM::Impex::IMPEX_SOURCE.get KVM::Impex::IMPEX.generate_sql(@ds_src_dir, @db_type, @path, @opts) end # the generated dataset base dir (excluding db type) def basedir File.dirname(path) end protected # the project dataset src dir # alternative: create RiceRelease object and lookup dataset by name (dataset_base_dir or dataset_dir) def self.project_dataset_src_dir(project, ds_name) File.join(RiceRelease::BASE_DIR, project, "database", ds_dirname(ds_name)) end def self.ds_dirname(ds) "#{ds}-dataset" end def self.list super(File.join(self::BASE_DIR, "*", "*", "*")) end def self.from_file(f) type = File.basename(f) ds_path = File.dirname(f) ds_name = File.basename(ds_path).split('-')[0] project_path = File.dirname(ds_path) project = File.basename(project_path) RiceReleaseGeneratedDataset.new(project, ds_name, type) end def self.dataset_path(dataset, type) "#{dataset}/#{type}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kvm-0.0.1.pre | lib/kvm/rice_release_generated_dataset.rb |