class Malachite::Client

Public Class Methods

method_missing(name, args) click to toggle source
# File lib/malachite/client.rb, line 14
def self.method_missing(name, args)
  new(name, args).call
end
new(name, args) click to toggle source
# File lib/malachite/client.rb, line 5
def initialize(name, args)
  @name = name
  @args = args
end

Public Instance Methods

call() click to toggle source
# File lib/malachite/client.rb, line 10
def call
  response_from_json(json_function_result)
end

Private Instance Methods

args_to_json() click to toggle source
# File lib/malachite/client.rb, line 24
def args_to_json
  Malachite.dump_json(@args)
rescue JSON::GeneratorError
  raise Malachite::ArgumentError, "Arguments should be serializable. Try arrays or objects: #{@args.inspect}"
end
json_function_result() click to toggle source
# File lib/malachite/client.rb, line 20
def json_function_result
  Malachite::Function.new(@name, args_to_json).call
end
response_from_json(response) click to toggle source
# File lib/malachite/client.rb, line 30
def response_from_json(response)
  Malachite.load_json(response)
rescue JSON::ParserError
  raise Malachite::ResponseError, "Go program did not provide a serializable response: #{response.inspect}"
end