swarmclient 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 896a19138be9eaac88bc4817295d0549b019ae8f
4
- data.tar.gz: 8472d806fba9fcf2e4bb94a118de8bdb838409ad
2
+ SHA256:
3
+ metadata.gz: 7e95eff9380f3baca4790e174a8da717d24f6e0ac0f00527cb6553b9aab6f202
4
+ data.tar.gz: 37cb9aa517d9c20d797f80b0fefd27a50faac32cdf2ce2efa65c3c4450ab30b1
5
5
  SHA512:
6
- metadata.gz: 2b591c078a7fe50a131766e16b9c59740a48d8c8a26b80dd5e9c71da70a4af8fe12020bec1094fcff5f4363533a88549e2758d13459dc5aa3362f375d4e725af
7
- data.tar.gz: 3a3d221ea3eb8f15cab47c0025d0595a3c1832bec4dd09d670e5babc848698e9536eee02da2523ce0cd0bedc6723ec305753ce170ecc9dcaca1c82c060295e72
6
+ metadata.gz: 7ce1f8bd41ebd42a81ca039bdd7e812c2bb8f6a9671cd3bd31854d488e51940036f98ce0d1d43fdf5f4e3b6254a580ae22fd18825b9913171121b0ff17c73cb5
7
+ data.tar.gz: 3e6d750e25d49cce360bfed471e237753a029f0c706fb23056857b26de680c0dcc79bd061191e1c2eed10cf0194840196b3995bb190743ecf45982614fd945fb
data/README.md CHANGED
@@ -17,8 +17,9 @@ And then execute:
17
17
  Or build and install from src:
18
18
 
19
19
  $ git clone https://github.com/wlwanpan/swarmclient-rb.git
20
+ $ cd swarmclient-rb && bundle install
20
21
  $ gem build swarmclient.gemspec
21
- $ gem install swarmclient-0.1.0.gem
22
+ $ gem install swarmclient-{GEM_VERSION}.gem
22
23
 
23
24
  ## Communication API (Swarmclient::Communication)
24
25
 
@@ -26,7 +27,7 @@ Require and Initialize
26
27
  ```
27
28
  require 'swarmclient'
28
29
 
29
- bluzelle = Swarmclient::Communication.new endpoint: "ws://127.0.0.1", port: 50001, uuid: "80174b53-2dda-49f1-9d6a-6a780d4"
30
+ bluzelle = Swarmclient::Communication.new endpoint: "127.0.0.1", port: 50001, uuid: "80174b53-2dda-49f1-9d6a-6a780d4"
30
31
  ```
31
32
 
32
33
  Note: The uuid is the uniq id of a referenced db hosted in the swarm.
@@ -35,17 +36,25 @@ Refer to https://bluzelle.github.io/api/ for more info.
35
36
 
36
37
  Create New Entry (key-value)
37
38
  ```
38
- bluzelle.create key: 'myKey', value: 'Your Value'
39
+ bluzelle.create 'myKey', 'Your Value'
39
40
  ```
40
41
 
41
42
  Read Key
42
43
  ```
43
- res = bluzelle.read 'myKey'
44
- puts res
44
+ bluzelle.read 'myKey'
45
45
  ```
46
46
  - Result
47
47
  ```
48
- => {:data=>{:value=>"Your Value"}, :"request-id"=>0.5304515448110283}
48
+ {:value => "Your Value"}
49
+ ```
50
+
51
+ Read Multiple Keys
52
+ ```
53
+ bluzelle.read ['myKey', 'myKey2']
54
+ ```
55
+ - Result
56
+ ```
57
+ [{:myKey => "Your Value"}, {:myKey2 => nil}]
49
58
  ```
50
59
 
51
60
  Update Key value
@@ -60,12 +69,11 @@ bluzelle.remove 'myKey'
60
69
 
61
70
  Check if key exist
62
71
  ```
63
- res = bluzelle.has 'myKey'
64
- puts res
72
+ bluzelle.has 'myKey'
65
73
  ```
66
74
  - Result
67
75
  ```
68
- => {:data=>{:"key-exists"=>true}, :"request-id"=>0.7938161241077408}
76
+ => {:"key-exists" => true}
69
77
  ```
70
78
 
71
79
  Read all keys stored
@@ -74,7 +82,7 @@ bluzelle.keys
74
82
  ```
75
83
  - Result
76
84
  ```
77
- => {:data=>{:keys=>["myKey"]}, :"request-id"=>0.7472509525271954}
85
+ => {:keys => ["myKey"]}
78
86
  ```
79
87
 
80
88
  ## Pubsub (Swarmclient::Pubsub)
@@ -1,9 +1,8 @@
1
- require 'faye/websocket'
2
- require 'eventmachine'
3
1
  require 'websocket-client-simple'
2
+ require 'eventmachine'
4
3
  require 'json'
5
4
 
6
- DEFAULT_IP = '127.0.0.1'
5
+ DEFAULT_IP = 'ws://127.0.0.1'
7
6
  DEFAULT_PORT = 8080
8
7
 
9
8
  module Swarmclient
@@ -28,8 +27,12 @@ module Swarmclient
28
27
  send cmd: 'read', data: { key: key }
29
28
  end
30
29
 
30
+ def read_multiple keys
31
+ send_multiple cmd: 'read', keys: keys
32
+ end
33
+
31
34
  def update key, value
32
- send cmd: 'update', data: { key: key }
35
+ send cmd: 'update', data: { key: key, value: value }
33
36
  end
34
37
 
35
38
  def remove key
@@ -46,6 +49,13 @@ module Swarmclient
46
49
 
47
50
  private
48
51
 
52
+ def send_multiple cmd:, keys:
53
+ keys.map do |key|
54
+ res = send cmd: cmd, data: { key: key }
55
+ Hash[key, res ? res[:value] : nil]
56
+ end
57
+ end
58
+
49
59
  def send cmd:, data:
50
60
 
51
61
  endpoint, req = [
@@ -73,7 +83,7 @@ module Swarmclient
73
83
 
74
84
  when nil
75
85
 
76
- return res
86
+ return res[:data]
77
87
 
78
88
  else
79
89
 
@@ -89,28 +99,32 @@ module Swarmclient
89
99
 
90
100
  res, err = [nil, nil]
91
101
 
92
- EventMachine.run do
102
+ begin
103
+ EventMachine.run do
93
104
 
94
- ws = WebSocket::Client::Simple.connect endpoint
105
+ ws = WebSocket::Client::Simple.connect endpoint
95
106
 
96
- ws.on :message do |msg|
97
- res = msg.data
98
- EventMachine::stop_event_loop
99
- end
107
+ ws.on :message do |msg|
108
+ res = msg.data
109
+ EventMachine::stop_event_loop
110
+ end
100
111
 
101
- ws.on :open do
102
- ws.send req.to_json
103
- end
112
+ ws.on :open do
113
+ ws.send req.to_json
114
+ end
104
115
 
105
- ws.on :close do |e|
106
- EventMachine::stop_event_loop
107
- end
116
+ ws.on :close do |e|
117
+ EventMachine::stop_event_loop
118
+ end
108
119
 
109
- ws.on :error do |e|
110
- err = e
111
- EventMachine::stop_event_loop
112
- end
120
+ ws.on :error do |e|
121
+ err = e
122
+ EventMachine::stop_event_loop
123
+ end
113
124
 
125
+ end
126
+ rescue => e
127
+ err = e
114
128
  end
115
129
 
116
130
  [err, res]
@@ -1,3 +1,3 @@
1
1
  module Swarmclient
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/swarmclient.gemspec CHANGED
@@ -24,8 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.16"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  spec.add_development_dependency "rspec", "~> 3.0"
27
- spec.add_development_dependency "faye-websocket", "~> 0.10"
28
27
  spec.add_development_dependency "eventmachine", "~> 1.2"
29
- spec.add_development_dependency "json", "~> 2.1"
30
28
  spec.add_development_dependency "websocket-client-simple", "~> 0.3"
29
+ spec.add_development_dependency "json", "~> 2.1"
31
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swarmclient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Warren
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-30 00:00:00.000000000 Z
11
+ date: 2018-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: faye-websocket
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.10'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.10'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: eventmachine
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,33 +67,33 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '1.2'
83
69
  - !ruby/object:Gem::Dependency
84
- name: json
70
+ name: websocket-client-simple
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '2.1'
75
+ version: '0.3'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '2.1'
82
+ version: '0.3'
97
83
  - !ruby/object:Gem::Dependency
98
- name: websocket-client-simple
84
+ name: json
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0.3'
89
+ version: '2.1'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0.3'
96
+ version: '2.1'
111
97
  description:
112
98
  email:
113
99
  - wlwanpan@uwaterloo.ca
@@ -150,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
136
  version: '0'
151
137
  requirements: []
152
138
  rubyforge_project:
153
- rubygems_version: 2.6.14
139
+ rubygems_version: 2.7.6
154
140
  signing_key:
155
141
  specification_version: 4
156
142
  summary: A gem for the bluzele SwarmDB