Linked
Yet another Linked List implementation for Ruby (hence the somewhat awkward name). The library is still under development. The intention is to
- nail down the functionality,
- start porting the methods over to c and finally
- try to optimize for speed, as much as possible.
The project is still in phase 1.
Installation
Add this line to your application's Gemfile:
gem 'linked'
And then execute:
$ bundle
Or install it yourself as:
$ gem install linked
Usage
A basic use case is show below. For more details, for now, see the docs.
require 'linked'
# Include the List module in a class
class ListLike
include Linked::List
end
# Create a list
list = ListLike.new
# Append values
list << :value
list << 'value'
# Or create list items manually
item = Linked::Item.new 42
list.unshift item
# Remove items with #pop and #shift
list.pop.value # => 'value'
# The list behaves much like an Array
list.count # => 2
list.map(&:value) # => [42, :value]
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake test 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]/linked.
License
The gem is available as open source under the terms of the MIT License.