Sha256: 6a24a0b7d916d1e19297dc0cdd366a4ba0e8139594b0a9d5530c48ffc06852e8
Contents?: true
Size: 1.96 KB
Versions: 2
Compression:
Stored size: 1.96 KB
Contents
# The discover method defines the following keys as appropriate: # :ruby a string array of discovered require statements # for example, # given rb file containing # require 'json' # require 'yaml' # the resulting dependies would be # dep[:ruby]=['json','yaml'] # # C# dependencies are returned as a hash, as they are seperated into # two groups, :system and :file # # class Dependencies < Hash def initialize discover end def discover ruby_deps=Array.new cs_system_deps=Array.new cs_file_deps=Array.new Dir.glob("**/*.rb").each{|f| text=File.read(f) ruby_deps.zip(Dependencies.ruby_dependencies(text)).flatten.compact cs_system_deps.zip(Dependencies.csharp_system_dependencies(text)).flatten.compact cs_file_deps.zip(Dependencies.csharp_file_dependencies(text)).flatten.compact } self[:ruby]=ruby_deps.sort if(ruby_deps.length>0) if(cs_system_deps.length > 0 || cs_file_deps.length > 0) self["C#"]=Hash.new self["C#"][:system]=cs_system_deps.sort if(cs_system_deps.length > 0) self["C#"][:file]=cs_file_deps.sort if(cs_file_deps.length > 0) end end def self.ruby_dependencies source deps=Array.new deps=Array.new source.scan(/require '([\w\/]+)/).each{|m| dep=m.first.to_s deps << dep if(!deps.include?(dep)) } deps end def self.csharp_system_dependencies source deps=Array.new deps=Array.new source.scan(/<Reference Include="([\w\.-]+)"[\s]+\//).each{|m| dep=m.first.to_s deps << dep if(!deps.include?(dep)) } deps end def self.csharp_file_dependencies source deps=Array.new deps=Array.new source.scan(/<HintPath>([\w\.\\\s-]+)</).each{|m| dep=m.first.to_s deps << dep if(!deps.include?(dep)) } deps end def show self.each do |key,array| if(array.length > 0) puts key array.each {|v| puts " " + Color.green + v + Color.clear + " " } end end puts " " end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dev_tasks-0.0.35 | lib/dependencies.rb |
dev_tasks-0.0.34 | lib/dependencies.rb |