Class: YARD::Serializers::Base Abstract
- Inherits:
- 
      Object
      
        - Object
- YARD::Serializers::Base
 
- Defined in:
- lib/yard/serializers/base.rb
Overview
Override this class to implement a custom serializer.
The abstract base serializer. Serializers allow templates to be rendered to various endpoints. For instance, a FileSystemSerializer would allow template contents to be written to the filesystem
To implement a custom serializer, override the following methods:
Optionally, a serializer can implement before and after filters:
Direct Known Subclasses
Instance Attribute Summary collapse
- 
  
    
      #options  ⇒ SymbolHash 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    All serializer options are saved so they can be passed to other serializers. 
Creating a New Serializer collapse
- 
  
    
      #initialize(opts = {})  ⇒ Base 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Creates a new serializer with options. 
Serializing an Object collapse
- 
  
    
      #exists?(object)  ⇒ Boolean 
    
    
  
  
  
  
  
  abstract
  
  
  
    Returns whether an object has been serialized. 
- 
  
    
      #serialize(object, data)  ⇒ Object 
    
    
  
  
  
  
  
  abstract
  
  
  
    Serializes an object. 
- 
  
    
      #serialized_path(object)  ⇒ String 
    
    
  
  
  
  
  
  abstract
  
  
  
    The serialized path of an object. 
Callbacks collapse
- 
  
    
      #after_serialize(data)  ⇒ void 
    
    
  
  
  
  
  
  abstract
  
  
  
    Called after serialization. 
- 
  
    
      #before_serialize  ⇒ Boolean 
    
    
  
  
  
  
  
  abstract
  
  
  
    Called before serialization. 
Constructor Details
#initialize(opts = {}) ⇒ Base
Creates a new serializer with options
| 28 29 30 | # File 'lib/yard/serializers/base.rb', line 28 def initialize(opts = {}) @options = SymbolHash.new(false).update(opts) end | 
Instance Attribute Details
#options ⇒ SymbolHash (readonly)
All serializer options are saved so they can be passed to other serializers.
| 21 22 23 | # File 'lib/yard/serializers/base.rb', line 21 def @options end | 
Instance Method Details
#after_serialize(data) ⇒ void
Should run code after serialization.
This method returns an undefined value.
Called after serialization.
| 80 | # File 'lib/yard/serializers/base.rb', line 80 def after_serialize(data); end | 
#before_serialize ⇒ Boolean
Should run code before serialization. Should return false if serialization should not occur.
Called before serialization.
| 73 | # File 'lib/yard/serializers/base.rb', line 73 def before_serialize; end | 
#exists?(object) ⇒ Boolean
This method should return whether the endpoint already exists. For instance, a file system serializer would check if the file exists on disk. You will most likely use #basepath and #serialized_path to get the endpoint’s location.
Returns whether an object has been serialized
| 62 63 64 | # File 'lib/yard/serializers/base.rb', line 62 def exists?(object) # rubocop:disable Lint/UnusedMethodArgument false end | 
#serialize(object, data) ⇒ Object
This method should implement the logic that serializes data to the respective endpoint. This method should also call the before and after callbacks #before_serialize and #after_serialize
Serializes an object.
| 42 | # File 'lib/yard/serializers/base.rb', line 42 def serialize(object, data) end | 
#serialized_path(object) ⇒ String
This method should return the path of the object on the endpoint. For instance, for a file serializer, this should return the filename that represents the object on disk.
The serialized path of an object
| 51 | # File 'lib/yard/serializers/base.rb', line 51 def serialized_path(object) end |