Update README

This commit is contained in:
Matthias Beyer 2017-01-25 17:21:50 +01:00
parent 1e3193ebb2
commit a439004a46

View file

@ -56,8 +56,6 @@ But I hope we get it in travis soonish.
This crate will contain both the Rust bindings for imag using `ruru` and a bunch This crate will contain both the Rust bindings for imag using `ruru` and a bunch
of wrapper code for the actual `imag` gem. of wrapper code for the actual `imag` gem.
We are not there yet, though.
### Why another layer of indirection? ### Why another layer of indirection?
As "ruru" does not yet support modules (which is sad btw) we would end up with As "ruru" does not yet support modules (which is sad btw) we would end up with
@ -67,40 +65,21 @@ E.G.: `imag_runtime_setup()` instead of `Imag::Runtime::setup()`
I want to add a Ruby gem to wrap these things. 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 So basically a piece of Ruby which uses the Rust code to build
`imag` as a gem which then exports a fine module system. `imag` as a gem which then exports a fine module system.
### Ideas for module system: ### The module system:
```text ```text
Imag (Module) Imag (Module)
Runtime (Class)
Store (Class)
Entry (Class)
EntryHeader (Class)
EntryContent (Class (inherits from String)) EntryContent (Class (inherits from String))
EntryHeader (Class)
FileLockEntryHandle (Class)
StoreHandle (Class)
StoreId (Class) StoreId (Class)
``` ```
I would name the types the same as in the Rust codebase, to avoid confusion. `libimagentrytag` and the other `libimagentry*` libraries will be pulled into
Only exception would be the `Entry` class, which would be a `FileLockEntry` this library to support more advanced operations with the `FileLockEntryHandle`
underneath. type.
If we adapt `libimagentrytag` and the other `libimagentry*`
libraries, we would extend this type.
## More plans
I want to pull these libraries into the Ruby bindings:
* libimagentryedit
* libimagentryfilter
* libimagentrylink
* libimagentrylist
* libimagentrymarkdown
* libimagentrytag
* libimagentryview
Which all provide functions on top of `libimagstore::store::{FileLock,}Entry`,
so we will implement them on `Imag::Entry`.