Sha256: f1577a321d830f4dc538e4c89d1552b0589d2cb4a58bd689b3033763ac1bd158

Contents?: true

Size: 1.34 KB

Versions: 5

Compression:

Stored size: 1.34 KB

Contents

# 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:**

``` rb
#= require foo

class Bar
end
```

**foo.rb:**

``` 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:

``` rb
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
```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
codependency-2.3.2 README.md
codependency-2.3.1 README.md
codependency-2.3.0 README.md
codependency-2.2.0 README.md
codependency-2.1.0 README.md