Sha256: 14bac3e9eac487d31bd8fa3c15927c32b1600135686cad86b1d17a8ed5de8306

Contents?: true

Size: 1.66 KB

Versions: 4

Compression:

Stored size: 1.66 KB

Contents

Architecture
============

#### Index
{file:README.md Readme}
{file:docs/Installation.md Installation}
{file:docs/Usage.md Usage}
{file:docs/Architecture.md Architecture}
{file:docs/AdditionalServices.md Additional Services}


Components
----------
Kangaroo mainly consists of 3 parts:

  * **Util** contains everything needed to establish and use a connection to an OpenERP server.
    Use {Kangaroo::Util::Configuration} to configure a connection to a database, and
    {Kangaroo::Util::Loader} to load the models you need.
  * **RubyAdapyer** is a mini-framework to convert OpenObject models to ruby. It's responsible 
    of creating the neccessary modules and classes to use i.e. the "product.product" model
    via Oo::Product::Product
  * **Model** is the base class for all OpenObject models, and is responsible for all runtime
    behavior.
    


Communication
-------------

### Proxies
The lowest level of communication happens over {Kangaroo::Util::Proxy} and its subclasses. They
proxy method calls to the XML-RPC services the OpenERP server provides.

### OpenObject ORM
Suppose you have a Ruby model for an OpenObject model **Oo::Res::Country** (either via directly subclassing {Kangaroo::Model::Base},
or via {Kangaroo::Util::Loader}), you can access the OpenObject ORM API directly:

    Oo::Res::Country.search(...)
    Oo::Res::Country.read(...)
    Oo::Res::Country.fields_get(...)
    Oo::Res::Country.default_get(...)
    Oo::Res::Country.unlink(...)
    
The **create** and **write** are named **create\_record** and **write\_record**

    Oo::Res::Country.create_record(...)
    Oo::Res::Country.write_record(...)
    
### ActiveRecord-ish ORM
see {file:docs/Usage.md Usage}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kangaroo-0.0.3 docs/Architecture.md
kangaroo-0.0.2 docs/Architecture.md
kangaroo-0.0.1.pre2 docs/Architecture.md
kangaroo-0.0.1.pre docs/Architecture.md