zadt
Zagorski ADT is a collection of data types that are not included in the standard Ruby library.
Installation
Add this line to your application's Gemfile:
gem 'zadt'
And then execute:
$ bundle
Or install it yourself as:
$ gem install zadt
Usage
Zadt::ADT::help will return a list of objects in the collection, as well as a brief description of each type.
I also made a "help" function for each Data Type. Type Zadt::StackQueue.help get a list of functions for the StackQueue, and so on.
And don't forget to require 'zadt' at the top!
MinMaxStackQueue
A MinMaxStackQueue is an Queue object that allows the minimum and maximum values to be found in constant time. It's built by making a Queue out of a Stack, which has that same min/max ability.
Since it is made out of Queues and Stacks, those data types are also available. I also provided StackQueue (functionally the same as a Queue), and a MinMaxStack, which is a Stack version of MinMaxStackQueue.
Graph
A Graph is a data type that consists of Vertices, which are connected by Edges. In addition, a FaceGraph is a Graph which also consists of Faces: the space defined inside a set of cyclic edges.
I'm still working on the exact functionality of FaceGraph, since I mainly built it to use for a different project, but it should still prove useful for certain situations. If you have any suggestions of useful bits to add, feel free to contact me below!
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/zadt. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Contact
This gem was written in its entirety by Benjamin Zagorski, who can be contacted at [email protected]. Feel free to contact me with any questions or comments, as I'm very open to suggestions.