Ancestry allows the records of a ActiveRecord model to be organized in a tree structure, using the materialized path pattern. It exposes the standard relations (ancestors, parent, root, children, siblings, descendants) and allows them to be fetched in a single query. Additional features include named scopes, integrity checking, integrity restoration, arrangement of (sub)tree into hashes and different strategies for dealing with orphaned records.
RubyTree is a Ruby implementation of the generic tree data structure. It provides simple APIs to store named nodes, and to access, modify, and traverse the tree. The data model is node-centric, where nodes in the tree are the primary structural elements. It supports all common tree-traversal methods (pre-order, post-order, and breadth first). RubyTree mixes in the Enumerable and Comparable modules and behaves like a standard Ruby collection (iteration, comparison, etc.). RubyTree also includes a binary tree implementation, which provides in-order node traversal besides the other methods. RubyTree can import from and export to JSON, and supports Ruby’s object marshaling.
A tree structure for Mongoid documents using the materialized path pattern
Print directory or structured data in a tree like format.
Organise Mongoid model into a tree structure
This gem facilitates modeling a test suite that is written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by providing an abstraction layer on top of the Abstract Syntax Tree that the 'cucumber-gherkin' gem generates when parsing features, as well as providing models for feature files and directories in order to be able to have a fully traversable model tree of a test suite's structure. These models can then be analyzed or manipulated more easily than the underlying AST layer.
Organize ActiveRecord model into a tree structure using PostgreSQL LTree
Provides a generic tree data structure with ability to store keyed node elements in the tree. The implementation mixes in the Enumerable module.
DataMapper plugin allowing the creation of tree structures from data models
Calculates the differences between two tree-like structures. Similar to Rubys built-in TSort module.
Sort Tree or List Structures by Drag n Drop
CompTree is a parallel computation tree structure based upon concepts from pure functional programming.
Alf brings the relational algebra both in Shell and in Ruby. In Shell, because manipulating any relation-like data source should be as straightforward as a one-liner. In Ruby, because I've never understood why programming languages provide data structures like arrays, hashes, sets, trees and graphs but not _relations_... Let's stop the segregation ;-)
A Ruby implementation of the Centered Interval Tree data structure. See also: http://en.wikipedia.org/wiki/Interval_tree
A tree structure for Mongoid documents using the materialized path pattern
Tree data structure for storing segments. It allows querying which of the stored segments contain a given point.
This extension copies the site structure to tree.yml and provides helpers for printing parts of the tree in your middleman templates.
Sycamore is an unordered tree data structure.
A Ruby implementation of the Augmented Interval Tree data structure. See also: http://en.wikipedia.org/wiki/Interval_tree
Organise Ancestry model into a drag and drop tree structure
Line-tree parses indented lines of text and returns an array representing a tree structure.
RSence is a different and unique development model and software frameworks designed first-hand for real-time web applications. RSence consists of separate, but tigtly integrated data- and user interface frameworks. RSence could be classified as a thin server - thick client system. Applications and submobules are installed as indepenent plugin bundles into the plugins folder of a RSence environment, which in itself is a self-contained bundle. A big part of RSence itself is implemented as shared plugin bundles. The user interface framework of RSence is implemented in high-level user interface widget classes. The widget classes share a common foundation API and access the browser's native API's using an abstracted event- and element layer, which provides exceptional cross-browser compatibility. The data framework of RSence is a event-driven system, which synchronized shared values between the client and server. It's like a realtime bidirectional form-submission engine that handles data changes intelligently. On the client, changed values trigger events on user interface widgets. On the server, changed values trigger events on value responder methods of server plugin modules. It doesn't matter if the change originates on client or server, it's all synchronized and propagated automatically. The server framework is implemented as a high-level, modular data-event-driven system, which handles delegation of tasks impossible to implement using a client-only approach. Client sessions are selectively connected to other client sessions and legacy back-ends via the server by using the data framework. The client is written in Javascript and the server is written in Ruby. The client also supports CoffeeScript for custom logic. In many cases, no custom client logic is needed; the user interfaces can be defined in tree-like data models. By default, the models are parsed from YAML files, and other structured data formats are possible, including XML, JSON, databases or any custom logic capable of producing similar objects. The server can connect to custom environments and legacy backends accessible on the server, including software written in other languages.
A simple tree structure for working with FilePath objects in ruby. I simply took the simple_tree module from https://github.com/ealdent/simple-tree and hacked it into Pathname (http://www.ruby-doc.org/stdlib-2.0/libdoc/pathname/rdoc/Pathname.html) from the std-lib. This means you get all the awesome features of working with Pathname, as well as making it easy to examine a filepath's ancestors and descendants.
This module implements ordered n-ary branching tree structures. It includes support for breadth- and depth- first iteration, and serialization to and from a bracketed tree string.
RSence is a different and unique development model and software frameworks designed first-hand for real-time web applications. RSence consists of separate, but tigtly integrated data- and user interface frameworks. RSence could be classified as a thin server - thick client system. Applications and submobules are installed as indepenent plugin bundles into the plugins folder of a RSence environment, which in itself is a self-contained bundle. A big part of RSence itself is implemented as shared plugin bundles. The user interface framework of RSence is implemented in high-level user interface widget classes. The widget classes share a common foundation API and access the browser's native API's using an abstracted event- and element layer, which provides exceptional cross-browser compatibility. The data framework of RSence is a event-driven system, which synchronized shared values between the client and server. It's like a realtime bidirectional form-submission engine that handles data changes intelligently. On the client, changed values trigger events on user interface widgets. On the server, changed values trigger events on value responder methods of server plugin modules. It doesn't matter if the change originates on client or server, it's all synchronized and propagated automatically. The server framework is implemented as a high-level, modular data-event-driven system, which handles delegation of tasks impossible to implement using a client-only approach. Client sessions are selectively connected to other client sessions and legacy back-ends via the server by using the data framework. The client is written in Javascript and the server is written in Ruby. The client also supports CoffeeScript for custom logic. In many cases, no custom client logic is needed; the user interfaces can be defined in tree-like data models. By default, the models are parsed from YAML files, and other structured data formats are possible, including XML, JSON, databases or any custom logic capable of producing similar objects. The server can connect to custom environments and legacy backends accessible on the server, including software written in other languages.
(This gem was named as treevisitor) tree.rb is a 'clone' of tree unix command. The gem implements a library to mange tree structures. The gem contains also a library to build tree with a dsl (domain specific language), and an implementation of visitor design pattern. An example of DSL to build tree: <pre> tree = TreeNode.create do node "root" do leaf "l1" node "sub" do leaf "l3" end node "wo leaves" end </pre>
This is a Ruby library for building trees representing HTML structure.
Arboreal is yet another extension to ActiveRecord to support tree-shaped data structures. Internally, Arboreal maintains a computed "ancestry_string" column, which caches the path from the root of a tree to each node, allowing efficient retrieval of both ancestors and descendants. Arboreal surfaces relationships within the tree like "children", "ancestors", "descendants", and "siblings" as scopes, so that additional filtering/pagination can be performed.
Tree structure visualization function library
Data structures (lists, stacks, trees, heaps, graphs..) in pure Ruby.
RubyMacros is a lisp-like macro pre-processor for Ruby. More than just a purely textual substitution scheme, RubyMacros can manipulate and morph Ruby parse trees (in the form of RedParse Nodes) at parse time in just about any way you see fit. Macros are programmed in ruby itself. And since parse trees are represented in RedParse format, they're easier to use (programatically) and more object- oriented than other available ruby parsetree formats. (RedParse Node format is actually designed to be straightforward to use and to represent the structure of ruby source code very closely.)
A parser to generate a tree structure from a logical query string using treetop.
A simple library to create and manage basic tree-esque structures.
A basic tree structure.
Sort Tree or List Structures by Drag n Drop
Kaitai Struct is a declarative language used for describe various binary data structures, laid out in files or in memory: i.e. binary file formats, network stream packet formats, etc. The main idea is that a particular format is described in Kaitai Struct language (.ksy file) and then can be compiled with ksc into source files in one of the supported programming languages. These modules will include a generated code for a parser that can read described data structure from a file / stream and give access to it in a nice, easy-to-comprehend API. This package is a visualizer tool for .ksy files. Given a particular binary file and .ksy file(s) that describe its format, it can visualize internal data structures in a tree form and a multi-level highlight hex viewer.
Htree provides a tree data structure which represent HTML and XML data
Tree_hierarchy allows to form a tree structure based on parent-child relationship with simple and fast computation for large records. Additional feature of updating the parent record with the sum of its child value
ruby-radix is an implementation of a radix tree data structure for the storage and retrieval of IPv4 and IPv6 network prefixes.
scorm2004-manifest is a Ruby gem that provides a manifest file parser for SCORM 2004 4th edition. It parses and validates the manifest file according to SCORM 2004 4th Edition Content Aggregation Model (CAM) Version 1.1. After parsing and validating, it builds an object tree that captures XML's hierarchical structure.
Organise ActiveRecord model into a tree structure
A GeoTree is a variant of a k-d tree, and stores data points that have a latitude and longitude, a unique integer identifier, and an optional 'weight' (e.g., the size of a city). GeoTrees are disk-based data structures and can store a very large number of points efficiently. If desired, for smaller data sets, memory-only trees can be constructed instead. The gem includes MultiTree, a GeoTree variant that supports queries at multiple levels of detail. For example, when focusing on a small region it can return points that would be omitted when querying a much larger region.
A Ruby port of the Android implementation of Java's java.util.TreeMap class. This is an AVL tree based implementation of Java's java.util.TreeMap structure. It implements Java's java.util.NavigableMap interface. The reference implementation is at https://android.googlesource.com/platform/libcore.git/+/android-6.0.1_r32/luni/src/main/java/java/util/TreeMap.java
A Ruby port of the Android implementation of Java's java.util.TreeMap class. This is an AVL tree based implementation of Java's java.util.TreeMap structure. It implements Java's java.util.NavigableMap interface. The reference implementation is at https://android.googlesource.com/platform/libcore.git/+/android-6.0.1_r32/luni/src/main/java/java/util/TreeMap.java
This library uses the output of the ps command to creaste process tree data structure for the current host.
Generates XSLT to produce a Polyrex document from a tree-like XML structure.
Ancestry allows the records of a ActiveRecord model to be organised in a tree structure, using a single, intuitively formatted database column. It exposes all the standard tree structure relations (ancestors, parent, root, children, siblings, descendants) and all of them can be fetched in a single sql query. Additional features are named_scopes, integrity checking, integrity restoration, arrangement of (sub)tree into hashes and different strategies for dealing with orphaned records.
This is a wrapper library for managing ActiveAdmin's menu structure in a simple yaml format, and automatically setting the priority and parent.
Allows ActiveRecord Models to be easily structured as a tree
generate plain css tree structure