Ashikawa Core

Project Ashikawa::Core
Homepage http://triagens.github.io/ashikawa-core/
Documentation RubyDoc
CI Build Status
Code Metrics Code Climate Code Climate Coverage
Inline docs Inline docs
Gem Version Gem Version
Dependencies Dependency Status

Ashikawa Core is a Wrapper around the ArangoDB Rest API. It provides low level access and is intended to be used in ArangoDB ODMs and other projects related to the database. It is always working with the stable version of ArangoDB, this is currently version 2.4.

All tests run on Travis CI for the following versions of Ruby:

  • MRI 1.9.3, 2.1.5 and 2.2.0
  • JRuby 1.7.12

How to install it?

gem install ashikawa-core

or, when using bundler:

gem "ashikawa-core"

How to Setup a Connection?

We want to provide you with as much flexibility as possible. So you can choose which adapter to use for HTTP (choose from the adapters available for Faraday) and what you want to use for logging (basically anything that has an info method that takes a String). It defaults to Net::HTTP and no logging:

database = Ashikawa::Core::Database.new do |config|
  config.url = "http://localhost:8529"
end

If you want to access the my_db database of your ArangoDB instance (and not the _system database) and connect as a certain user, do the following:

database = Ashikawa::Core::Database.new do |config|
  config.url = "http://localhost:8529"
  configl.database_name = 'my_db'
  config.username = "lebowski"
  config.password = "i<3bowling"
end

But you could for example use Typhoeus for HTTP and yell for logging:

require "typhoeus"
require "yell"

logger = Yell.new(STDOUT)

database = Ashikawa::Core::Database.new do |config|
  config.url = "http://localhost:8529"
  config.adapter = :typhoeus
  config.logger = logger
end

For a detailed description on how to use Ashikawa::Core please refer to the documentation. An example:

database["my_collection"] # => Returns the collection my_collection – creates it, if it doesn't exist
database["my_collection"].name = "new_name"
database["new_name"].delete

Issues or Questions

If you find a bug in this gem, please report it on our tracker. If you have a question, just contact us via the mailing list – we are happy to help you :smile:

Contributing

If you want to contribute to the project, see CONTRIBUTING.md for details. It contains information on our process and how to set up everything. The following people have contributed to this project: