README.md in grumlin-0.18.1 vs README.md in grumlin-0.19.0
- old
+ new
@@ -186,11 +186,19 @@
`Grumlin::Repository` also provides a set of generic CRUD operations:
- `add_vertex(label, id = nil, **properties)`
- `add_edge(label, id = nil, from:, to:, **properties)`
- `drop_vertex(id)`
- `drop_edge(id = nil, from: nil, to: nil, label: nil)`
-- `upsert_vertex(label, id, create_properties: {}, update_properties: {})`
-- `upsert_edge(label, from:, to:, create_properties: {}, update_properties: {})`
+
+and a few methods that emulate upserts:
+- `upsert_vertex(label, id, create_properties: {}, update_properties: {}, on_failure: :retry, **params)`
+- `upsert_edge(label, from:, to:, create_properties: {}, update_properties: {}, on_failure: :retry, **params)`
+- `upsert_edges(edges, batch_size: 100, on_failure: :retry, **params)`
+- `upsert_vertices(edges, batch_size: 100, on_failure: :retry, **params)`
+
+All of them support 3 different modes for error handling: `:retry`, `:ignore` and `:raise`. Retry mode is implemented
+with [retryable](https://github.com/nfedyashev/retryable). **params will be merged to the default config for upserts
+and passed to `Retryable.retryable`. In case if you want to modify retryable behaviour you are to do so.
**Usage**
To execute the query defined in a query block one simply needs to call a method with the same name: