Module: Riak::Client::BeefcakeProtobuffsBackend::ObjectMethods
- Included in:
- Riak::Client::BeefcakeProtobuffsBackend
- Defined in:
- lib/riak/client/beefcake/object_methods.rb
Constant Summary collapse
- ENCODING =
"Riak".respond_to?(:encoding)
Instance Method Summary collapse
-
#dump_object(robject, options = {}) ⇒ Object
Returns RpbPutReq.
-
#load_object(pbuf, robject) ⇒ Object
Returns RObject.
Instance Method Details
#dump_object(robject, options = {}) ⇒ Object
Returns RpbPutReq
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/riak/client/beefcake/object_methods.rb', line 12 def dump_object(robject, = {}) req_opts = .merge(:bucket => maybe_encode(robject.bucket.name)) if robject.bucket.respond_to?(:type) && t = robject.bucket.type req_opts[:type] = maybe_encode(t.name) end pbuf = RpbPutReq.new(req_opts) pbuf.key = maybe_encode(robject.key) if robject.key # Put w/o key supported! pbuf.vclock = maybe_encode(Base64.decode64(robject.vclock)) if robject.vclock dump_content pbuf, robject pbuf end |
#load_object(pbuf, robject) ⇒ Object
Returns RObject
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/riak/client/beefcake/object_methods.rb', line 25 def load_object(pbuf, robject) return robject if pbuf.respond_to?(:unchanged) && pbuf.unchanged # Reloading robject.vclock = Base64.encode64(pbuf.vclock).chomp if pbuf.vclock robject.key = maybe_unescape(pbuf.key) if pbuf.respond_to?(:key) && pbuf.key # Put w/o key robject.siblings = (pbuf.content || []).map do |c| RContent.new(robject) do |sibling| load_content(c, sibling) end end robject.conflict? ? robject.attempt_conflict_resolution : robject end |