Class: DtkCommon::DSL::DirectoryParser
- Inherits:
-
Object
- Object
- DtkCommon::DSL::DirectoryParser
- Defined in:
- lib/dsl/directory_parser.rb,
lib/dsl/directory_parser/git.rb,
lib/dsl/directory_parser/linux.rb
Defined Under Namespace
Constant Summary collapse
- DirectoryParserMethods =
[:parse_directory]
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(directory_type) ⇒ DirectoryParser
constructor
A new instance of DirectoryParser.
-
#parse_directory(file_type = nil, opts = {}) ⇒ Object
if file_type is given returns DtkCommon::DSL::FileParser::OutputArray otherwise returns hash at top level taht is indexed by file types found.
Constructor Details
#initialize(directory_type) ⇒ DirectoryParser
Returns a new instance of DirectoryParser.
7 8 9 10 11 12 |
# File 'lib/dsl/directory_parser.rb', line 7 def initialize(directory_type) unless @file_info = file_info(directory_type) raise Error.new("Illegal directory type (#{directory_type})") end @directory_type = directory_type end |
Class Method Details
.implements_method?(method_name) ⇒ Boolean
15 16 17 |
# File 'lib/dsl/directory_parser.rb', line 15 def self.implements_method?(method_name) DirectoryParserMethods.include?(method_name) end |
Instance Method Details
#parse_directory(file_type = nil, opts = {}) ⇒ Object
if file_type is given returns DtkCommon::DSL::FileParser::OutputArray otherwise returns hash at top level taht is indexed by file types found
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/dsl/directory_parser.rb', line 21 def parse_directory(file_type=nil,opts={}) pruned_file_info = if file_type matches = @file_info.select{|r|r[:file_type] == file_type} if matches.empty? raise Error.new("Illegal file type (#{file_type}) for directory_type (#{directory_type})") end matches else @file_info end #instantiate any rel_path_pattern pruned_file_instances = instantiate_rel_path_patterns(pruned_file_info) ret = Hash.new pruned_file_instances.each do |r| file_content = get_content(r[:rel_path]) opts[:file_path] = r[:rel_path] new_parsed = FileParser.parse_content(r[:file_type],file_content,opts) ret[file_type] = (ret[file_type] ? ret[file_type] + new_parsed : new_parsed) end file_type.nil? ? ret : ret[file_type] end |