class GCR::Request
Attributes
body[R]
class_name[R]
route[R]
Public Class Methods
from_hash(hash_req)
click to toggle source
# File lib/gcr/request.rb, line 10 def self.from_hash(hash_req) new( "route" => hash_req["route"], "class_name" => hash_req["class_name"], "body" => hash_req["body"], ) end
from_proto(route, proto_req, *_)
click to toggle source
# File lib/gcr/request.rb, line 2 def self.from_proto(route, proto_req, *_) new( "route" => route, "class_name" => proto_req.class.name, "body" => proto_req.to_json(emit_defaults: true), ) end
new(opts)
click to toggle source
# File lib/gcr/request.rb, line 20 def initialize(opts) @route = opts["route"] @class_name = opts["class_name"] @body = opts["body"] end
Public Instance Methods
==(other)
click to toggle source
# File lib/gcr/request.rb, line 38 def ==(other) return false unless route == other.route return false unless class_name == other.class_name parsed_body.keys.all? do |k| next true if GCR.ignored_fields.include?(k) parsed_body[k] == other.parsed_body[k] end end
parsed_body()
click to toggle source
# File lib/gcr/request.rb, line 26 def parsed_body @parsed_body ||= JSON.parse(body) end
to_json(*_)
click to toggle source
# File lib/gcr/request.rb, line 30 def to_json(*_) JSON.dump("route" => route, "class_name" => class_name, "body" => body) end
to_proto()
click to toggle source
# File lib/gcr/request.rb, line 34 def to_proto [route, Object.const_get(class_name).decode_json(body)] end