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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '082e898d0812b7ac1f21b526b93d9b5159e22c28911b0a6ba6ee0274779c5a6e'
4
- data.tar.gz: c6c42fcb190d7795b4ab523d6a7e8d025783b01fa51823ed4eb124d2d4652d43
3
+ metadata.gz: eff7b136f7f77335ce14501a56b72cc7553ccb9193c9fc25c98a23f19b790448
4
+ data.tar.gz: 470119a63a0717ac6104a23ccf3ab9052768bb3fbd96019bbb8114fcf0a29552
5
5
  SHA512:
6
- metadata.gz: e272b300f8ef2a5540baaebe9bd592ab4bbfcb4c66d79d5f367ce8ddff92be760e8b8e742d0e7a50fa2fbe88776d9f70d4830595d58a213e93d8b032b8569c44
7
- data.tar.gz: ce71fb5c73c338afd1af6dd1945aab3cbe4b138321736e9e06aaa61a5f3eacd99fa5e21fa9f75359c6f999225bdab60f6fd793661c2fb8026ff5b53a63995261
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(data)
6
- puts data
7
- eval_in_emacs('(message "Hello")')
8
- run_in_emacs('message', 'World')
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WebsocketBridge
4
- VERSION = "0.1.0"
4
+ VERSION = '0.1.1'
5
5
  end
@@ -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| "\"#{arg}\"" }.join(' ')
79
+ args_str = args.map { |arg| value_format(arg) }.join(' ')
55
80
  eval_in_emacs("(#{func} #{args_str})")
56
81
  end
57
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: websocket_bridge
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
  - Qiqi Jin