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
- #file_content(rel_file_path) ⇒ Object
-
#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.
24 25 26 27 28 29 |
# File 'lib/dsl/directory_parser.rb', line 24 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
.default_rel_path?(directory_type, file_type) ⇒ Boolean
65 66 67 68 69 |
# File 'lib/dsl/directory_parser.rb', line 65 def self.default_rel_path?(directory_type,file_type) if match = file_info_single_match?(directory_type,file_type) match[:default_rel_path] end end |
.implements_method?(method_name) ⇒ Boolean
32 33 34 |
# File 'lib/dsl/directory_parser.rb', line 32 def self.implements_method?(method_name) DirectoryParserMethods.include?(method_name) end |
Instance Method Details
#file_content(rel_file_path) ⇒ Object
36 37 38 |
# File 'lib/dsl/directory_parser.rb', line 36 def file_content(rel_file_path) get_content(rel_file_path) end |
#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
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/dsl/directory_parser.rb', line 42 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 |