imag/libimagruby
Matthias Beyer e956c51412 Introduce FileLockEntry cache
Holy shit, this compiles!

Have a look at the documentation from src/cache.rs - there's a rather
long description why we need this.
2017-01-22 12:56:45 +01:00
..
src Introduce FileLockEntry cache 2017-01-22 12:56:45 +01:00
test Rewrite test script with awesome logging 2017-01-21 13:56:07 +01:00
Cargo.toml Add functionality to initialize a logger from ruby 2017-01-21 13:56:07 +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.