Restructured Model loading to enable easier implementation of other parsers

This commit is contained in:
2020-01-30 08:50:05 -06:00
parent 4f1b490600
commit 31f0fa141b
8 changed files with 224 additions and 188 deletions

30
lib/model/parser.rb Normal file
View File

@@ -0,0 +1,30 @@
class IMICFPS
class Model
class Parser
@@parsers = []
def self.handles
raise NotImplementedError, "Model::Parser#handles must return an array of file extensions that this parser supports"
end
def self.inherited(parser)
@@parsers << parser
end
def self.find(file_type)
found_parser = @@parsers.find do |parser|
parser.handles.include?(file_type)
end
return found_parser
end
def initialize(model)
@model = model
end
def parse
end
end
end
end