Cellect

A scalable subject selector for Panoptes

Build Status Test Coverage Code Climate Gem Version

Available as

Cellect::Server

An actor based system that provides an API around subject selection actions. Server nodes are discovered via ZooKeeper.

Cellect::Server::Adapters

An adapter provides an API for defining the data to be used with the system.

We're overriding the default adapter with a customization in cellect_panoptes.

Cellect::Client

Provides a mix of asynchronous and synchronous operations for server awareness and API communication.

Building

  1. Install Boost V1.55+: OS X: brew update && brew install boost, Ubuntu: sudo apt-get update && sudo apt-get install libboost-all-dev
  2. Install gem dependencies: bundle (See Note)

Note

To install rice your Ruby must be compiled with shared libraries enabled, from the rice docs:

  • rvm: rvm reinstall [version] -- --enable-shared
  • rbenv: CONFIGURE_OPTS="--enable-shared" rbenv install [version]

Testing

  • You'll need a local Zookeeper server to run the specs (they will auto start / stop the server for you).
    • brew install zookeeper
    • Note: this may require a Java Runtime (JRE) install, brew cask install java

Run the specs with rake

Start server:

rackup # uses config.ru file

Versions

See .travis.yml for supported ruby versions