Skip to content

ettomatic/ashikawa-core

Repository files navigation

Ashikawa Core

Gem Version Build Status Dependency Status Code Climate

Ashikawa Core is a Wrapper around the ArangoDB Rest API. It provides low level access and will be used in different ArangoDB ODMs and other projects related to the database. It is always working with the stable version of ArangoDB, this is currently version 1.2. If you want to access an ArangoDB instance running version 1.1.2 refer to version 0.6 of this gem (or just update ;) ).

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

  • MRI 1.8.7, 1.9.2, 1.9.3 and 2.0.0
  • Rubinius 1.8 and 1.9 mode
  • JRuby 1.8 and 1.9 mode
  • REE

We also run on JRuby and MRI Head, but they are allowed failures (Please see Travis for their build status).

Please note that the master branch is always the stable version released on Ruby Gems and documented on RDoc. If you want the most recent version, please refer to the development branch.

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

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 :)

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:

  • Lucas Dohmen (@moonglum): Developer
  • Tobias Eilert (@EinLama): Contributor
  • Markus Schirp (@mbj): Contributor