Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gregors/graphml2json
Takes graphml and converts it to json for use in D3
https://github.com/gregors/graphml2json
Last synced: 3 months ago
JSON representation
Takes graphml and converts it to json for use in D3
- Host: GitHub
- URL: https://github.com/gregors/graphml2json
- Owner: gregors
- License: mit
- Created: 2013-08-05T01:31:29.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2020-07-20T22:19:09.000Z (over 4 years ago)
- Last Synced: 2024-05-29T22:31:17.411Z (8 months ago)
- Language: Ruby
- Size: 16.6 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Graphml2json
This utility takes graphml and converts it to json suitable for use in D3
## Installation
Add this line to your application's Gemfile:
gem 'graphml2json'
And then execute:
$ bundle
Or install it yourself as:
$ gem install graphml2json
## Usage
### From ruby
```
>> require 'open-uri'
>> require 'graphml2json'>> data = open('http://graphml.graphdrawing.org/primer/attributes.graphml').read
=> "\n\n\n \n yellow\n \n \n \n \n green\n \n \n \n blue\n \n \n red\n \n \n \n turquoise\n \n \n 1.0\n \n \n 1.0\n \n \n 2.0\n \n \n \n \n \n 1.1\n \n \n\n">> Graphml2Json.generate(data)
=> "{\"nodes\":[{\"name\":0,\"d0\":\"green\"},{\"name\":1},{\"name\":2,\"d0\":\"blue\"},{\"name\":3,\"d0\":\"red\"},{\"name\":4},{\"name\":5,\"d0\":\"turquoise\"}],\"edges\":[{\"source\":0,\"target\":2,\"d1\":\"1.0\"},{\"source\":0,\"target\":1,\"d1\":\"1.0\"},{\"source\":1,\"target\":3,\"d1\":\"2.0\"},{\"source\":3,\"target\":2},{\"source\":2,\"target\":4},{\"source\":3,\"target\":5},{\"source\":5,\"target\":4,\"d1\":\"1.1\"}]}"
```### From a terminal
You can also invoke the `graphml2json` utility from the command line. It takes stdin as input.
```
$ curl http://graphml.graphdrawing.org/primer/attributes.graphml | graphml2json | json_pp
{
"nodes" : [
{
"d0" : "green",
"name" : 0
},
{
"name" : 1
},
{
"name" : 2,
"d0" : "blue"
},
{
"name" : 3,
"d0" : "red"
},
{
"name" : 4
},
{
"d0" : "turquoise",
"name" : 5
}
],
"edges" : [
{
"d1" : "1.0",
"source" : 0,
"target" : 2
},
{
"target" : 1,
"d1" : "1.0",
"source" : 0
},
{
"source" : 1,
"d1" : "2.0",
"target" : 3
},
{
"target" : 2,
"source" : 3
},
{
"source" : 2,
"target" : 4
},
{
"source" : 3,
"target" : 5
},
{
"d1" : "1.1",
"source" : 5,
"target" : 4
}
]
}```
### Usage From Docker
cd docker_runner
docker build -t graphml2json .# notice no `t` in docker run command
curl http://graphml.graphdrawing.org/primer/attributes.graphml | docker run -i --rm graphml2json### For Docker Dev
docker build -t graphml_dev .
# run tests
docker run -it --rm graphml_dev## Changelog
* [changelog](https://github.com/gregors/graphml2json/blob/master/CHANGELOG.md)
## Contributing
1. Fork it
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 new Pull Request