class Ripcord::JsonRPC::Response
Attributes
error[R]
id[R]
result[R]
Public Class Methods
from_data(json_data)
click to toggle source
# File lib/ripcord/json_rpc/response.rb, line 23 def from_data(json_data) raise Ripcord::Error::InvalidResponse, json_data unless valid_data?(json_data) new(json_data[:result], json_data[:error], json_data[:id]) end
new(result, error, id)
click to toggle source
# File lib/ripcord/json_rpc/response.rb, line 11 def initialize(result, error, id) @result = result @id = id @error = Ripcord::JsonRPC::Error.new(error[:code], error[:message], error[:data]) if error end
valid_data?(json_data)
click to toggle source
# File lib/ripcord/json_rpc/response.rb, line 29 def valid_data?(json_data) return false unless json_data.is_a?(Hash) return false if json_data[:jsonrpc] != Ripcord::JSON_RPC_VERSION return false unless json_data.key?(:id) return false unless json_data.key?(:error) ^ json_data.key?(:result) if json_data.key?(:error) return false unless json_data[:error].is_a?(Hash) return false unless json_data[:error].key?(:code) return false unless json_data[:error][:code].is_a?(Integer) return false unless json_data[:error].key?(:message) return false unless json_data[:error][:message].is_a?(String) end true rescue StandardError false end
Public Instance Methods
successful?()
click to toggle source
# File lib/ripcord/json_rpc/response.rb, line 18 def successful? error.nil? && !result.nil? end