Skip to content

Commit 14850ec

Browse files
authored
Merge pull request #8 from prometh07/v2.0
Minor tweaks
2 parents 0a75702 + 2f89b09 commit 14850ec

File tree

3 files changed

+41
-17
lines changed

3 files changed

+41
-17
lines changed

README.md

+25-17
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,49 @@
11
# deepstream-ruby
22
deepstream.io ruby client
33

4-
54
### Install
65

76
```
87
gem install deepstream
98
```
109

11-
1210
### Usage
1311
```ruby
14-
ds = Deepstream::Client.new('localhost')
12+
ds = Deepstream::Client.new('localhost',
13+
autologin: false,
14+
verbose: true,
15+
credentials: { username: 'John', password: 'Doe' })
16+
# or
17+
ds = Deepstream::Client.new('ws://localhost:6020')
18+
# or
19+
ds = Deepstream::Client.new('ws://localhost:6020/deepstream')
20+
21+
# log in to the server
22+
ds.login
23+
# you can use new credentials too
24+
ds.login(username: 'John', password: 'betterDoe')
25+
26+
# check if the websocket connection is opened
27+
ds.connected?
28+
29+
# check if the client is logged in
30+
ds.logged_in?
1531

1632
# Emit events
1733
ds.emit 'my_event'
1834
# or
1935
ds.emit 'my_event', foo: 'bar', bar: 'foo'
20-
# or
21-
ds.emit 'my_event', {foo: 'bar', bar: 'foo'}, timeout: 3
22-
# or
23-
ds.emit 'my_event', nil, timeout: 3
24-
2536

2637
# Subscribe to events
27-
ds.on('some_event') do |msg|
38+
ds.on('some_event') do |event_name, msg|
2839
puts msg
2940
end
3041

31-
3242
# Get a record
3343
foo = ds.get('foo')
44+
bar = ds.get('bar', list: 'bar_list') # get a record within a namespace (this one automatically adds it to a list)
3445

35-
# Get a record with a namespace (automaticly add to a list)
36-
foo = ds.get_record('foo', list: 'bar') # record can also be accessed by ds.get('bar/foo')
37-
38-
# Update record
39-
foo.bar = 'bar'
40-
# or
46+
# Update a record
4147
foo.set('bar', 'bar')
4248

4349
# Set the whole record
@@ -46,13 +52,15 @@ foo.set(foo: 'foo', bar: 1)
4652
# Get a list
4753
foo = ds.get_list('bar')
4854

49-
# Add to list
55+
# Add to the list
5056
foo.add('foo')
5157

5258
# Remove from list
5359
foo.remove('foo')
5460

5561
# Show record names on the list
62+
foo.data
63+
# or
5664
foo.keys
5765

5866
# Access records on the list

lib/deepstream/event_handler.rb

+12
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ def on(event, &block)
1717
@ack_timeout_registry.add(event, "No ACK message received in time for #{event}")
1818
end
1919
@callbacks[event] = block
20+
rescue => e
21+
@client.on_exception(e)
2022
end
2123
alias subscribe on
2224

@@ -25,12 +27,16 @@ def listen(pattern, &block)
2527
@listeners[pattern] = block
2628
@client.send_message(TOPIC::EVENT, ACTION::LISTEN, pattern)
2729
@ack_timeout_registry.add(pattern, "No ACK message received in time for #{pattern}")
30+
rescue => e
31+
@client.on_exception(e)
2832
end
2933

3034
def unlisten(pattern)
3135
pattern = pattern.is_a?(Regexp) ? pattern.source : pattern
3236
@listeners.delete(pattern)
3337
@client.send_message(TOPIC::EVENT, ACTION::UNLISTEN, pattern)
38+
rescue => e
39+
@client.on_exception(e)
3440
end
3541

3642
def on_message(message)
@@ -45,16 +51,22 @@ def on_message(message)
4551

4652
def emit(event, data = nil)
4753
@client.send_message(TOPIC::EVENT, ACTION::EVENT, event, Helpers.to_deepstream_type(data))
54+
rescue => e
55+
@client.on_exception(e)
4856
end
4957

5058
def unsubscribe(event)
5159
@callbacks.delete(event)
5260
@client.send_message(TOPIC::EVENT, ACTION::UNSUBSCRIBE, event)
61+
rescue => e
62+
@client.on_exception(e)
5363
end
5464

5565
def resubscribe
5666
@callbacks.keys.each { |event| @client.send_message(TOPIC::EVENT, ACTION::SUBSCRIBE, event) }
5767
@listeners.keys.each { |pattern| @client.send_message(TOPIC::EVENT, ACTION::LISTEN, pattern) }
68+
rescue => e
69+
@client.on_exception(e)
5870
end
5971

6072
private

lib/deepstream/list.rb

+4
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ def remove(record_name)
2424
set(@data) if @data.delete(record_name)
2525
end
2626

27+
def keys
28+
@data
29+
end
30+
2731
def all
2832
@data.map { |record_name| @client.get(record_name) }
2933
end

0 commit comments

Comments
 (0)