websocket_bridge 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 +4 -4
- data/demo/websocket-bridge-ruby-demo.el +2 -4
- data/demo/websocket_bridge_demo.rb +10 -4
- data/lib/websocket_bridge/version.rb +1 -1
- data/lib/websocket_bridge.rb +26 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eff7b136f7f77335ce14501a56b72cc7553ccb9193c9fc25c98a23f19b790448
|
4
|
+
data.tar.gz: 470119a63a0717ac6104a23ccf3ab9052768bb3fbd96019bbb8114fcf0a29552
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35bebd7c073de2ff8ad61c762664d04c3484b2190c5e1a0c2b0f0747853ee463c165ca22d8f4cc8b8a0f6ca798b7492e2667abb59832a5f64b8335c80ce89b75
|
7
|
+
data.tar.gz: 5c64a6b92f75718717e16c370e0578a116bbf35f0afcb13fd1baad562b0ccd92587f9f6be339e9b3c6d31f777c9e8f2169560d6f518a0e55c4f823fb31a1aa1c
|
@@ -47,12 +47,10 @@
|
|
47
47
|
(ruby-demo-start)
|
48
48
|
(websocket-bridge-app-open-buffer "ruby-demo"))
|
49
49
|
|
50
|
-
(websocket-bridge-call "ruby-demo" "message" "Hello")
|
51
|
-
|
52
|
-
(websocket-bridge-call "ruby-demo" "value" "Hello")
|
53
|
-
|
54
50
|
(websocket-bridge-call "ruby-demo" "runInEmacs" "Hello")
|
55
51
|
|
52
|
+
(defun ruby-demo-print (&rest args)
|
53
|
+
(print args))
|
56
54
|
|
57
55
|
(provide 'websocket-bridge-ruby-demo)
|
58
56
|
;;; websocket-bridge-ruby-demo.el ends here
|
@@ -2,10 +2,16 @@ require 'eventmachine'
|
|
2
2
|
require_relative '../lib/websocket_bridge'
|
3
3
|
|
4
4
|
class WebsocketBridgeDemo < WebsocketBridge::Base
|
5
|
-
def on_message(
|
6
|
-
|
7
|
-
|
8
|
-
run_in_emacs('
|
5
|
+
def on_message(_data)
|
6
|
+
run_in_emacs('ruby-demo-print', 'World')
|
7
|
+
run_in_emacs('ruby-demo-print', 1)
|
8
|
+
run_in_emacs('ruby-demo-print', 2.0)
|
9
|
+
run_in_emacs('ruby-demo-print', [1, 2.0, 'word'])
|
10
|
+
data = {}
|
11
|
+
data[:name] = 'hello'
|
12
|
+
data[:value] = [1, 2, 3, '995']
|
13
|
+
run_in_emacs('ruby-demo-print', data)
|
14
|
+
run_in_emacs('ruby-demo-print', 1, 2, 3.0, 'Hlle', data)
|
9
15
|
end
|
10
16
|
end
|
11
17
|
EM.run do
|
data/lib/websocket_bridge.rb
CHANGED
@@ -50,8 +50,33 @@ module WebsocketBridge
|
|
50
50
|
@ws.send(json)
|
51
51
|
end
|
52
52
|
|
53
|
+
def value_format(value)
|
54
|
+
case value
|
55
|
+
when String
|
56
|
+
"\"#{value}\""
|
57
|
+
when Integer
|
58
|
+
value.to_s
|
59
|
+
when Float
|
60
|
+
value.to_s
|
61
|
+
when Array
|
62
|
+
args = value.map { |one| value_format(one) }.join(' ')
|
63
|
+
"(list #{args})"
|
64
|
+
when Hash
|
65
|
+
args = value.map { |key, v| ":#{key} #{value_format(v)}" }.join(' ')
|
66
|
+
"(list #{args})"
|
67
|
+
when Symbol
|
68
|
+
''
|
69
|
+
when TrueClass
|
70
|
+
't'
|
71
|
+
when FalseClass
|
72
|
+
'nil'
|
73
|
+
else
|
74
|
+
puts "The value is of an unknown type: #{value.class}."
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
53
78
|
def run_in_emacs(func, *args)
|
54
|
-
args_str = args.map { |arg|
|
79
|
+
args_str = args.map { |arg| value_format(arg) }.join(' ')
|
55
80
|
eval_in_emacs("(#{func} #{args_str})")
|
56
81
|
end
|
57
82
|
end
|