Class: OpenEHR::Serializer::RMJSONSerializer
- Inherits:
-
Object
- Object
- OpenEHR::Serializer::RMJSONSerializer
- Defined in:
- lib/openehr/serializer/rm_json_serializer.rb
Overview
Canonical JSON for an RM instance graph: a generic reflection walker (not a hand-written serializer per RM class), tagging each object with a "_type" discriminator (via OpenEHR::RM.type_name_of) and recursing into every non-nil instance variable except @parent (PATHABLE's back-reference, which would otherwise make every subtree cyclic). A defensive visited-object guard covers any other unexpected back-reference.
Constant Summary collapse
- EXCLUDED_IVARS =
[:@parent].freeze
Instance Method Summary collapse
-
#initialize(rm_instance) ⇒ RMJSONSerializer
constructor
A new instance of RMJSONSerializer.
- #serialize ⇒ Object
Constructor Details
#initialize(rm_instance) ⇒ RMJSONSerializer
Returns a new instance of RMJSONSerializer.
15 16 17 |
# File 'lib/openehr/serializer/rm_json_serializer.rb', line 15 def initialize(rm_instance) @rm_instance = rm_instance end |
Instance Method Details
#serialize ⇒ Object
19 20 21 |
# File 'lib/openehr/serializer/rm_json_serializer.rb', line 19 def serialize JSON.generate(to_value(@rm_instance, Set.new.compare_by_identity)) end |