README.md in oj-1.2.9 vs README.md in oj-1.2.10
- old
+ new
@@ -22,14 +22,22 @@
*Fast XML parser and marshaller on GitHub*: https://github.com/ohler55/ox
## <a name="release">Release Notes</a>
-### Release 1.2.9
+### Release 1.2.10
- - Changed the error message for invalid keys in compat mode to identify offending type.
+ - Added check for circular on loading of circular dumped JSON.
+ - Added support for direct serialization of BigDecimal, Rational, Date, and DateTime.
+
+ - Added json.rb to $" in mimic mode to avoid pulling in the real JSON by accident.
+
+ - Oj is now thread safe for all functions.
+
+ - The / (solidus) character is now placed in strings without being escaped.
+
## <a name="description">Description</a>
Optimized JSON (Oj), as the name implies was written to provide speed
optimized JSON handling. It was designed as a faster alternative to Yajl and
other the common Ruby JSON parsers. So far is has achieved that at about 2
@@ -53,11 +61,14 @@
method. If either exists that method is used for serializing the Object. The
to_hash() is more flexible and produces more consistent output so it has a
preference over the to_json() method. If neither the to_json() or to_hash()
methods exist then the Oj internal Object variable encoding is used.
-Oj is compatible with Ruby 1.8.7, 1.9.2, 1.9.3, JRuby, RBX, and the latest 2.0dev.
+Oj is compatible with Ruby 1.8.7, 1.9.2, 1.9.3, JRuby, RBX, and the latest
+2.0dev. Note that JRuby now disables support for extentions by default. JRuby
+can be build with extensions enabled. Check the documenation for JRuby
+installs in your environment.
Oj is also compatible with Rails. Just make sure the Oj gem is installed and
[multi_json](https://github.com/intridea/multi_json) will pick it up and use it.
## <a name="compare">Comparisons</a>
@@ -350,16 +361,19 @@
5. A `"^c"` JSON Object key indicates the value should be converted to a Ruby
class. The sequence `{"^c":"Oj::Bag"}` is read as the Oj::Bag class.
6. A `"^t"` JSON Object key indicates the value should be converted to a Ruby
-Time. The sequence `{"^t":1325775487.000000}` is read as Jan 5, 2012 at 23:58:07.
+Time. The sequence `{"^t":1325775487.000000}` is read as Jan 5, 2012 at
+23:58:07.
-87. A `"^o"` JSON Object key indicates the value should be converted to a Ruby
+7. A `"^o"` JSON Object key indicates the value should be converted to a Ruby
Object. The first entry in the JSON Object must be a class with the `"^o"`
key. After that each entry is treated as a variable of the Object where the
key is the variable name without the preceeding `@`. An example is
-`{"^o":"Oj::Bag","x":58,"y":"marbles"}`.
+`{"^o":"Oj::Bag","x":58,"y":"marbles"}`. `"^O"` is the same except that it is
+for built in or odd classes that don't obey the normal Ruby rules. Examples
+are Rational, Date, and DateTime.
8. A `"^u"` JSON Object key indicates the value should be converted to a Ruby
Struct. The first entry in the JSON Object must be a class with the `"^u"`
key. After that each entry is is given a numeric position in the struct and
that is used as the key in the JSON Object. An example is `{"^u":["Range",1,7,false]}`.