imag/libimagruby
2017-01-22 12:56:46 +01:00
..
src Impl Store::update() interface function 2017-01-22 12:56:46 +01:00
test Rewrite test script with awesome logging 2017-01-21 13:56:07 +01:00
Cargo.toml Change FileLockEntryHandle to operate on cached store objects 2017-01-22 12:56:46 +01:00
Makefile Move: imag-ruby -> libimagruby 2017-01-21 13:56:05 +01:00
README.md Move: imag-ruby -> libimagruby 2017-01-21 13:56:05 +01:00

imag-ruby

A Ruby gem for scripting imag modules.

This crate contains both the Rust bindings for imag using ruru and a bunch of wrapper code for the actual imag gem.

Why another layer of indirection?

As "ruru" does not yet support modules, which is sad btw, we would end up with functions for all the things.

E.G.: imag_runtime_setup() instead of IMAG::Runtime::setup()

I want to add a Ruby gem to wrap these things. So basically a piece of ruby which uses imag.rb (the Rust gem) to build imag as a gem which then exports a fine module system.

Ideas for module system:

IMAG (Module)
  Runtime (Module)
    Runtime (Class)
  Store (Module)
    Store (Class)
    Entry (Class)
    StoreId (Class)
  Util (Module, Ruby-only I guess)

I would name the types the same as in the Rust codebase, to avoid confusion. Only exception would be the Entry class, which would be a FileLockEntry underneath and if we adapt libimagentrytag and the other libimagentry* libraries, we would extend this type.