Module: Motion::Dependencies
- Defined in:
- lib/motion-dependencies.rb,
lib/motion-dependencies/version.rb
Constant Summary collapse
- DEPENDENCY_LINE =
"# depends "
- DEPENDENCY_LINE_LENGTH =
DEPENDENCY_LINE.length
- VERSION =
"0.0.2"
Class Method Summary collapse
- .dependencies_for_file(file) ⇒ Object
- .dependency_for_line(line) ⇒ Object
- .find_dependencies(files) ⇒ Object
- .resolve_dependencies(files, dependencies) ⇒ Object
Class Method Details
.dependencies_for_file(file) ⇒ Object
13 14 15 16 |
# File 'lib/motion-dependencies.rb', line 13 def self.dependencies_for_file(file) File.open(file).each.map(&lambda {|line| dependency_for_line(line)}) .select(&lambda {|x| x }) end |
.dependency_for_line(line) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/motion-dependencies.rb', line 6 def self.dependency_for_line(line) if line.start_with? DEPENDENCY_LINE return line.slice(DEPENDENCY_LINE_LENGTH, line.length - DEPENDENCY_LINE_LENGTH).strip end nil end |
.find_dependencies(files) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/motion-dependencies.rb', line 27 def self.find_dependencies(files) dependencies = {} files.each do |file| unresolved_dependencies = dependencies_for_file(file) if(unresolved_dependencies.length > 0) dependencies[file] = resolve_dependencies files, unresolved_dependencies end end dependencies end |
.resolve_dependencies(files, dependencies) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/motion-dependencies.rb', line 18 def self.resolve_dependencies files, dependencies files = files.select do |file| dependencies.select do |dependency| file.include? dependency end.length > 0 end files.uniq end |