README.md in tjson-0.0.0 vs README.md in tjson-0.1.0
- old
+ new
@@ -1,11 +1,20 @@
-# TJSON for Ruby
+# TJSON for Ruby [![Gem Version][gem-image]][gem-link] [![Build Status][build-image]][build-link] [![Code Climate][codeclimate-image]][codeclimate-link] [![MIT licensed][license-image]][license-link]
A Ruby implementation of TJSON: Tagged JSON with Rich Types.
https://www.tjson.org
+[gem-image]: https://badge.fury.io/rb/tjson.svg
+[gem-link]: https://rubygems.org/gems/tjson
+[build-image]: https://secure.travis-ci.org/tjson/tjson-ruby.svg?branch=master
+[build-link]: https://travis-ci.org/tjson/tjson-ruby
+[codeclimate-image]: https://codeclimate.com/github/tjson/tjson-ruby.svg?branch=master
+[codeclimate-link]: https://codeclimate.com/github/tjson/tjson-ruby
+[license-image]: https://img.shields.io/badge/license-MIT-blue.svg
+[license-link]: https://github.com/tjson/tjson-ruby/blob/master/LICENSE.txt
+
## Installation
Add this line to your application's Gemfile:
```ruby
@@ -20,10 +29,55 @@
$ gem install tjson
## Usage
-Coming soon!
+### Parsing
+
+To parse a TJSON document, use the `TJSON.parse` method:
+
+```ruby
+>> TJSON.parse('{"s:foo":"s:bar"}')
+=> {"foo"=>"bar"}
+```
+
+The following describes how TJSON types map onto Ruby types during parsing:
+
+ * **UTF-8 Strings**: parsed as Ruby `String` with `Encoding::UTF_8`
+ * **Binary Data**: parsed as Ruby `String` with `Encoding::ASCII_8BIT` (a.k.a. `Encoding::BINARY`)
+ * **Integers**: parsed as Ruby `Integer` (Fixnum or Bignum)
+ * **Floats** (i.e. JSON number literals): parsed as Ruby `Float`
+ * **Timestamps**: parsed as Ruby `Time`
+ * **Arrays**: parsed as `TJSON::Array` (a subclass of `::Array`)
+ * **Objects**: parsed as `TJSON::Object` (a subclass of `::Hash`)
+
+### Generating
+
+To generate TJSON from Ruby objects, use the `TJSON.generate` method:
+
+```ruby
+>> puts TJSON.generate({"foo" => "bar" })
+{"s:foo":"s:bar"}
+```
+
+The `TJSON.generate` method will call `#to_tjson` on any objects which are not
+one of Ruby's core types. You can implement this method on classes you wish to
+serialize as TJSON, although it MUST output tagged strings for encoding TJSON
+types such as UTF-8 strings or binary data.
+
+### TJSON::Binary
+
+The `TJSON::Binary` module contains a set of helper methods for serializing
+binary data in various different encodings:
+
+```ruby
+>> TJSON::Binary.base16("Hello, world!")
+=> "b16:48656c6c6f2c20776f726c6421"
+>> TJSON::Binary.base32("Hello, world!")
+=> "b32:jbswy3dpfqqho33snrscc"
+>> TJSON::Binary.base64("Hello, world!")
+=> "b64:SGVsbG8sIHdvcmxkIQ"
+```
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/tjson/tjson-ruby