Sha256: fc14dfb6efb154cab7c5d8e80836c381ed13f22d78982d52b3b23ccbb6abd214

Contents?: true

Size: 1.71 KB

Versions: 6

Compression:

Stored size: 1.71 KB

Contents

BERT
====

A BERT (Binary ERlang Term) serialization library for Ruby. It can
encode Ruby objects into BERT format and decode BERT binaries into Ruby
objects.

See the BERT specification at [bert-rpc.org](http://bert-rpc.org).

Instances of the following Ruby classes will be automatically converted to the
proper simple BERT type:

* Fixnum
* Float
* Symbol
* Array
* String

Instances of the following Ruby classes will be automatically converted to the
proper complex BERT type:

* NilClass
* TrueClass
* FalseClass
* Hash
* Time
* Regexp

To designate tuples, simply prefix an Array literal with a `t` or use the
BERT::Tuple class:

    t[:foo, [1, 2, 3]]
    BERT::Tuple[:foo, [1, 2, 3]]

Both of these will be converted to (in Erlang syntax):

    {foo, [1, 2, 3]}


Installation
------------

    gem install bert -s http://gemcutter.org


Usage
-----

    require 'bert'
    
    bert = BERT.encode(t[:user, {:name => 'TPW', :nick => 'mojombo'}])
    # => "\203h\002d\000\004userh\002d\000\004dictl\000\000\000\002h\002d
          \000\004namem\000\000\000\003TPWh\002d\000\004nickm\000\000\000
          \amojomboj"
    
    BERT.decode(bert)
    # => t[:user, {:name=>"TPW", :nick=>"mojombo"}]



Note on Patches/Pull Requests
-----------------------------

* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
  future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
  (if you want to have your own version, that is fine but
   bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.


Copyright
---------

Copyright (c) 2009 Tom Preston-Werner. See LICENSE for details.

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
schmurfy-bert-1.2.3 README.md
bert-1.1.2-java README.md
schleyfox-bert-1.1.2 README.md
bert-1.1.2 README.md
bert-1.1.1 README.md
bert-1.1.0 README.md