Simple comment-based dependency graph for arbitrary files
MIT License
Codependency is a simple comment-based dependency graph that you can use on arbitrary files. The comment syntax should look familiar to anyone who has used Sprockets, but is not nearly as robust (yet).
Add this line to your application's Gemfile:
gem 'codependency'
And then execute:
$ bundle
Or install it yourself as:
$ gem install codependency
Say you have two files, bar.rb
and foo.rb
. bar
comes before foo
in a
natural naming scheme, but bar
has a dependency on foo
. We can express
this using a simple comment syntax at the head of the file like this:
bar.rb:
#= require foo
class Bar
end
foo.rb:
class Foo
end
Then, we create a dependency graph to determine the order in which the files might need to be loaded, inserted, or compiled:
graph = Codependency::Graph.new
graph.path << '.' # works like PATH, append search paths for this graph
graph << 'bar' # adds a file to this graph, finds its dependencies recursively
graph.files # returns a topologically sorted list of relative pathnames
git checkout -b my-new-feature
)git commit -am 'Added some feature'
)git push origin my-new-feature
)