Sha256: 17dc8121405d05b16fe93afcaac0b4bd2305d222059d7d782f1335dbcd5757b1
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
module Bibliothecary module Analyser def self.included(base) base.extend(ClassMethods) end module ClassMethods def parse_file(filename, contents) mapping.each do |regex, method_name| if filename.match(regex) return send(method_name, contents) end end return [] end def match?(filename) mapping.keys.any?{|regex| filename.match(regex) } end def platform_name self.name.to_s.split('::').last.downcase end def analyse(folder_path, file_list) file_list.map do |path| filename = path.gsub(folder_path, '').gsub(/^\//, '') contents = File.open(path).read analyse_contents(filename, contents) end.compact end def analyse_contents(filename, contents) begin dependencies = parse_file(filename, contents) if dependencies.any? { platform: platform_name, path: filename, dependencies: dependencies } else nil end rescue nil end end def parse_ruby_manifest(manifest) manifest.dependencies.inject([]) do |deps, dep| deps.push({ name: dep.name, requirement: dep.requirement.to_s, type: dep.type }) end.uniq end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bibliothecary-5.0.1 | lib/bibliothecary/analyser.rb |
bibliothecary-5.0.0 | lib/bibliothecary/analyser.rb |