Sha256: 6345d0f1e5f3907a4836780ac4315a62919f9c4191f1684109473736e4e70163
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
# Author:: Couchbase <info@couchbase.com> # Copyright:: 2013 Couchbase, Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # require 'multi_json' module Couchbase module Transcoder class Base < Java::NetSpyMemcachedTranscoders::SerializingTranscoder end class Document < Base def decode(d) decoded = super data = if decoded.respond_to?(:to_str) decoded else decoded.getData.to_s end MultiJson.load(data) rescue MultiJson::LoadError ::Marshal.load(data) rescue TypeError data end def encode(o) super MultiJson.dump(o) rescue ArgumentError => e ex = Couchbase::Error::ValueFormat.new ex.inner_exception = e fail ex end end class Marshal < Base def decode(d) ::Marshal.load super.getData.to_s end def encode(o) super ::Marshal.dump(o) end end class Plain < Base def decode(d) super end def encode(o) super(o.to_str) rescue NoMethodError raise Couchbase::Error::ValueFormat end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
couchbase-jruby-client-0.1.7-java | lib/couchbase/transcoder.rb |
couchbase-jruby-client-0.1.6-java | lib/couchbase/transcoder.rb |