Skip to content

truenito/grapho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grapho

Grapho is an extensible nano framework based on Turbine that allows the user to create directed graphs to do awesome stuff like represent circuits, family trees and pretty much everything that can be modeled using a graph.

It has reached a state of simplicity and is open for you to tinker with it. In it's current implementation Grapho models a circuit where the edges have a direction. I've been thinking about packing it as a gem, adding more functionalities and constraints but honestly, I think it's a lot more fun if it's kept bare bones, accesible and hacky.


Grapho consists of three main classes, Graph, Node and Edge.

Creating a Graph:

a = Graph.new

Adding components:

a.add(Node.new(:component_1))
a.add(Node.new(:component_2))

Connecting components:

a.node(:component_1).connect_to(a.node(:component_2),"Serie")

Deleting Components:

a.delete(a.node(:component_1))

Console Serialization:

a.console_serialization

Inspecting (Works for all classes, returns totals overviews):

a.inspect

Printing components (For this example: ":component_1" will be printed):

# printing out_edges of ":component_1"
puts a.node(:component_1).instance_variable_get(:@out_edges).inspect

# printing in_edges of ":component_1"
puts a.node(:component_1).instance_variable_get(:@in_edges).inspect

To see it working just download the thing and run the test.rb from the command line ("ruby test.rb"). [Gabriel González Mañaná]: http://estilopanda.com [@gabrieldgm]: http://twitter.com/gabrieldgm

About

Small graph project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages