Codependency
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).
Installation
Add this line to your application's Gemfile:
gem 'codependency'
And then execute:
$ bundle
Or install it yourself as:
$ gem install codependency
Usage
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
endfoo.rb:
class Foo
endThen, 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 pathnamesContributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Added some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request