46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/opal/connect/plugins/server.rb', line 46
def server(method, *args)
if RUBY_ENGINE == 'opal'
klass_name = self.class.name
if Connect.server_methods[klass_name].include? method
promise = Promise.new
payload = {
method: method,
args: args,
klass: klass_name
}
HTTP.post(Connect.options[:url], payload: payload) do |response|
if response.ok?
res = JSON.from_object(`response`)
promise.resolve res[:body], response
else
promise.reject response
end
end
promise
else
raise "#{method} is not a server method"
end
else
send(method, *args)
end
end
|