Class: CouchbaseOrm::JsonTranscoder

Inherits:
Couchbase::JsonTranscoder
  • Object
show all
Defined in:
lib/couchbase-orm/json_transcoder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ignored_properties: [], json_validation_config: {}, **options, &block) ⇒ JsonTranscoder

Returns a new instance of JsonTranscoder.



10
11
12
13
14
# File 'lib/couchbase-orm/json_transcoder.rb', line 10

def initialize(ignored_properties: [], json_validation_config: {}, **options, &block)
  @ignored_properties = ignored_properties
  @json_validation_config = json_validation_config
  super(**options, &block)
end

Instance Attribute Details

#ignored_propertiesObject (readonly)

Returns the value of attribute ignored_properties.



8
9
10
# File 'lib/couchbase-orm/json_transcoder.rb', line 8

def ignored_properties
  @ignored_properties
end

#json_validation_configObject (readonly)

Returns the value of attribute json_validation_config.



8
9
10
# File 'lib/couchbase-orm/json_transcoder.rb', line 8

def json_validation_config
  @json_validation_config
end

Instance Method Details

#decode(blob, _flags) ⇒ Object



16
17
18
19
# File 'lib/couchbase-orm/json_transcoder.rb', line 16

def decode(blob, _flags)
  original = super
  original&.except(*ignored_properties)
end

#encode(document) ⇒ Object



21
22
23
24
25
# File 'lib/couchbase-orm/json_transcoder.rb', line 21

def encode(document)
  original = super
  CouchbaseOrm::JsonSchema::Validator.new(json_validation_config).validate_entity(document, original[0]) if document.present? && !original.empty? && json_validation_config[:enabled]
  original
end