4.29.0.txt

Path: doc/release_notes/4.29.0.txt
Last Update: Sat Jun 02 02:04:22 +0000 2018

New Features

  • A uuid plugin has now been added. This plugin will automatically create a uuid for newly created model objects.
      Model.plugin :uuid
      Model.create.uuid => # some UUID
    
  • Model#json_serializer_opts has been added to the json_serializer plugin, allowing you to override the JSON serialization options on a per instance basis without passing the options directly to Model#to_json. This is useful if you are including the model instance inside another datastructure that will be serialized to JSON.
      obj.json_serializer_opts(:root => true)
      [obj].to_json
      # => '[{"obj":{"id":1,"name":"Foo"}}]'
    

Other Improvements

  • The Database#transaction :retry_on option now works when using savepoints.
  • Calling Database#table_exists? inside a transaction will now use a savepoint if the database supports it, so that if the table doesn‘t exist, it will not affect the state of the transaction.
  • Blobs can now be used as bound variables in the oracle adapter.
  • The sqlanywhere adapter now works with database sharding.
  • The Dataset#full_text_search :rank option has been fixed to order by rank descending instead of ascending.
  • External adapters that do not support INSERT with DEFAULT VALUES can now override Dataset#insert_empty_columns_values to set the columns and values to use for an empty INSERT.
  • External adapters can now implement Dataset#date_add_sql_append to integrate with the date_arithmetic extension.

[Validate]