Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MakeNowJust/crystal-diff

A Crystal sequence differencing implementation
https://github.com/MakeNowJust/crystal-diff

Last synced: about 2 months ago
JSON representation

A Crystal sequence differencing implementation

Awesome Lists containing this project

README

        

# crystal-diff

Crystal sequence differencing implementation.

Based on the algorithm proposed in ["An O(NP) Sequence Comparision Algorithm" (Wu, 1989)](https://publications.mpi-cbg.de/Wu_1990_6334.pdf)

[![Build Status](https://img.shields.io/travis/MakeNowJust/crystal-diff.svg?style=flat-square)](https://travis-ci.org/MakeNowJust/crystal-diff)

## Installation

Add this to your application's `shard.yml`:

```yaml
dependencies:
diff:
github: MakeNowJust/crystal-diff
```

## Usage

```crystal
require "colorize"
require "../src/diff"

Diff.diff("hello world", "hello good-bye").each do |chunk|
print chunk.data.colorize(
chunk.append? ? :green : chunk.delete? ? :red : :dark_gray)
end
puts
```

![result](example/diff-char.png)

## Development

```console
$ crystal spec
```

## Contributing

1. Fork it ( https://github.com/MakeNowJust/crystal-diff/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request

## Contributors

- [MakeNowJust](https://github.com/MakeNowJust) TSUYUSATO Kitsune - creator, maintainer