class DtkCommon::DSL::Loader
Constants
- BaseDirForFileTypes
- FileTypeVesisonDefaults
- FileTypes
Public Class Methods
file_parser(file_type,version=nil)
click to toggle source
# File lib/dsl/file_parser.rb, line 26 def self.file_parser(file_type,version=nil) instance.file_parser(file_type,version) end
new()
click to toggle source
# File lib/dsl/file_parser.rb, line 56 def initialize() @loaded_types = Hash.new end
Public Instance Methods
file_parser(file_type,version=nil)
click to toggle source
# File lib/dsl/file_parser.rb, line 30 def file_parser(file_type,version=nil) ret = (@loaded_types[file_type]||{})[version] return ret if ret unless FileTypes.include?(file_type) raise Error.new("Illegal file type (#{file_type})") end #load base if no versions loaded already base_path = "#{BaseDirForFileTypes}/#{file_type}" #if (@loaded_types[file_type]||{}).empty? # require File.expand_path(base_path,File.dirname(__FILE__)) #end version ||= default_version(file_type) path = "#{base_path}/v#{version.to_s}/#{file_type}" require File.expand_path(path, File.dirname(__FILE__)) base_class = FileParser.const_get(Aux.snake_to_camel_case(file_type.to_s)) ret_class = base_class.const_get("V#{version.to_s}") input_hash_class = ret_class.const_get "InputHash" ret = ret_class.new(input_hash_class) (@loaded_types[file_type] ||= Hash.new)[version] = ret ret end
Private Instance Methods
default_version(file_type)
click to toggle source
# File lib/dsl/file_parser.rb, line 60 def default_version(file_type) FileTypeVesisonDefaults[file_type] || 1 end