graphd 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +5 -0
- data/graphd.gemspec +3 -1
- data/lib/graphd/client.rb +2 -2
- data/lib/graphd/transaction.rb +13 -3
- data/lib/graphd/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88eb11e1213f9fec8d7a0878d7843fe27c964d1bf58411723a786d05336030dd
|
4
|
+
data.tar.gz: 615be59bdd018561230ef2a94d03b1621944ff8795c35d24b22fa622104097d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f11e994643bb475fcc61edd2cac76d8e93fbe34cf654e27652e16beb9222af284ae2923d9ae35c80c7c3d1c647bedfcb30ddd00a37f6c4c771b133df45e5f1c2
|
7
|
+
data.tar.gz: eeb3ed744e29ec79eb081a8c323d90ce066fc754800f8afa894daf31397580454826a883fa74850def50df7885fa325765f9e89189e3acc1951bfa05bafc9cd5
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# Graphd
|
2
|
+
[](https://badge.fury.io/rb/graphd)
|
3
|
+
|
2
4
|
A Ruby client for [DGraph](https://github.com/dgraph-io/dgraph) that uses [gRPC](https://grpc.io/).
|
3
5
|
|
4
6
|
This client follows [pydgraph](https://github.com/dgraph-io/pydgraph) closely.
|
@@ -21,6 +23,9 @@ Or install it yourself as:
|
|
21
23
|
|
22
24
|
$ gem install graphd
|
23
25
|
|
26
|
+
## Usage
|
27
|
+
The `simple_example.rb` script in `examples` demonstrates usage and currently available features.
|
28
|
+
|
24
29
|
## Contributing
|
25
30
|
|
26
31
|
Bug reports and pull requests are welcome on GitHub at https://github.com/thegeorgeous/graphd. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/thegeorgeous/graphd/blob/master/CODE_OF_CONDUCT.md).
|
data/graphd.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
17
17
|
|
18
18
|
spec.metadata['homepage_uri'] = spec.homepage
|
19
|
-
spec.metadata['source_code_uri'] = 'https://
|
19
|
+
spec.metadata['source_code_uri'] = 'https://github.com/thegeorgeous/graphd'
|
20
20
|
spec.metadata['changelog_uri'] = 'https://github.com/thegeorgeous/graphd'
|
21
21
|
|
22
22
|
# Specify which files should be added to the gem when it is released.
|
@@ -27,4 +27,6 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.bindir = 'bin'
|
28
28
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ['lib']
|
30
|
+
|
31
|
+
spec.add_runtime_dependency 'grpc', '~> 1.34.0'
|
30
32
|
end
|
data/lib/graphd/client.rb
CHANGED
@@ -27,8 +27,8 @@ module Graphd
|
|
27
27
|
client.alter(operation)
|
28
28
|
end
|
29
29
|
|
30
|
-
def txn(read_only: false)
|
31
|
-
Transaction.new(self, read_only: read_only)
|
30
|
+
def txn(read_only: false, best_effort: false)
|
31
|
+
Transaction.new(self, read_only: read_only, best_effort: best_effort)
|
32
32
|
end
|
33
33
|
|
34
34
|
def client
|
data/lib/graphd/transaction.rb
CHANGED
@@ -4,13 +4,18 @@ require 'json'
|
|
4
4
|
|
5
5
|
module Graphd
|
6
6
|
class Transaction
|
7
|
-
def initialize(client, read_only: false)
|
7
|
+
def initialize(client, read_only: false, best_effort: false)
|
8
|
+
if !read_only && best_effort
|
9
|
+
raise TransactionError, 'Best effort transactions are only compatible with read-only transactions'
|
10
|
+
end
|
11
|
+
|
8
12
|
@client = client
|
9
13
|
@client_stub = @client.client
|
10
14
|
@transaction_context = ::Api::TxnContext.new
|
11
15
|
@finished = false
|
12
16
|
@mutated = false
|
13
17
|
@read_only = read_only
|
18
|
+
@best_effort = best_effort
|
14
19
|
end
|
15
20
|
|
16
21
|
def mutate(mutation: nil, set_obj: nil, del_obj: nil, commit_now: nil)
|
@@ -38,9 +43,14 @@ module Graphd
|
|
38
43
|
end
|
39
44
|
|
40
45
|
def create_request(query: nil, variables: nil, mutations: nil, commit_now: nil)
|
41
|
-
request = ::Api::Request.new(
|
46
|
+
request = ::Api::Request.new(
|
47
|
+
start_ts: @transaction_context.start_ts,
|
48
|
+
commit_now: commit_now,
|
49
|
+
read_only: true,
|
50
|
+
best_effort: true
|
51
|
+
)
|
42
52
|
variables&.each do |key, value|
|
43
|
-
|
53
|
+
unless key.is_a?(String) && value.is_a?(String)
|
44
54
|
raise TransactionError, 'Values and keys in variable map must be strings'
|
45
55
|
end
|
46
56
|
|
data/lib/graphd/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- George Thomas
|
@@ -9,7 +9,21 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2020-12-27 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: grpc
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.34.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.34.0
|
13
27
|
description:
|
14
28
|
email:
|
15
29
|
- iamgeorgethomas@gmail.com
|
@@ -51,7 +65,7 @@ licenses:
|
|
51
65
|
metadata:
|
52
66
|
allowed_push_host: https://rubygems.org
|
53
67
|
homepage_uri: https://github.com/thegeorgeous/graphd
|
54
|
-
source_code_uri: https://
|
68
|
+
source_code_uri: https://github.com/thegeorgeous/graphd
|
55
69
|
changelog_uri: https://github.com/thegeorgeous/graphd
|
56
70
|
post_install_message:
|
57
71
|
rdoc_options: []
|