Class | YARD::Serializers::Base
In: | lib/yard/serializers/base.rb
Parent: | Object

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:

- {serialize}
- {serialized_path}

Optionally, a serializer can implement before and after filters:

- {before_serialize}
- {after_serialize}

@abstract Override this class to implement a custom serializer.

### Methods

after_serialize before_serialize exists? new serialize serialized_path

### Attributes

options | [R] | All serializer options are saved so they can be passed to other serializers. @return [SymbolHash] the serializer options

### Public Class methods

new(opts = {})

Creates a new serializer with options

@param [Hash] opts the options to assign to {options}

### Public Instance methods

after_serialize(data)

Called after serialization.

@abstract Should run code after serialization. @param [String] data the data that was serialized. @return [void]

before_serialize()

Called before serialization.

@abstract Should run code before serialization. Should return false

      if serialization should not occur.

@return [Boolean] whether or not serialization should occur

exists?(object)

Returns whether an object has been serialized

@abstract 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.

@param [CodeObjects::Base] object the object to check existence of @return [Boolean] whether the endpoint exists. @since 0.6.0

serialize(object, data)

Serializes an object.

@abstract 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}

@param [CodeObjects::Base, String] object the object to serialize the

      data for. The object can also be a string (for non-object serialization)

@param [String] data the contents that should be serialized

serialized_path(object)

The serialized path of an object

@abstract 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.

@param [CodeObjects::Base] object the object to return a path for @return [String] the serialized path of an object

[Validate]