class React::IsomorphicHelpers::IsomorphicProcCall

Public Class Methods

new(name, block, *args) click to toggle source
# File lib/reactive-ruby/isomorphic_helpers.rb, line 125
def initialize(name, block, *args)
  @name = name
  block.call(self, *args)
  @result ||= send_to_server(*args) if IsomorphicHelpers.on_opal_server?
end

Public Instance Methods

result() click to toggle source
# File lib/reactive-ruby/isomorphic_helpers.rb, line 121
def result
  @result.first if @result
end
send_to_server(*args) click to toggle source
# File lib/reactive-ruby/isomorphic_helpers.rb, line 135
def send_to_server(*args)
  if IsomorphicHelpers.on_opal_server?
    args_as_json = args.to_json
    @result = [JSON.parse(`window.ServerSideIsomorphicMethods[#{@name}](#{args_as_json})`)]
  end
end
when_on_client(&block) click to toggle source
# File lib/reactive-ruby/isomorphic_helpers.rb, line 131
def when_on_client(&block)
  @result = [block.call] if IsomorphicHelpers.on_opal_client?
end
when_on_server(&block) click to toggle source
# File lib/reactive-ruby/isomorphic_helpers.rb, line 142
def when_on_server(&block)
  @result = [block.call.to_json] unless IsomorphicHelpers.on_opal_client? || IsomorphicHelpers.on_opal_server?
end