lib/yard/serializers/base.rb in yard-0.9.16 vs lib/yard/serializers/base.rb in yard-0.9.17
- old
+ new
@@ -1,83 +1,83 @@
-# frozen_string_literal: true
-module YARD
- module Serializers
- # 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.
- class Base
- # All serializer options are saved so they can be passed to other serializers.
- #
- # @return [SymbolHash] the serializer options
- attr_reader :options
-
- # @group Creating a New Serializer
-
- # Creates a new serializer with options
- #
- # @param [Hash] opts the options to assign to {#options}
- def initialize(opts = {})
- @options = SymbolHash.new(false).update(opts)
- end
-
- # @group Serializing an Object
-
- # 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
- def serialize(object, data) end
-
- # 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
- def serialized_path(object) end
-
- # 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
- def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
- false
- end
-
- # @group Callbacks
-
- # 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
- def before_serialize; end
-
- # Called after serialization.
- #
- # @abstract Should run code after serialization.
- # @param [String] data the data that was serialized.
- # @return [void]
- def after_serialize(data); end
- end
- end
-end
+# frozen_string_literal: true
+module YARD
+ module Serializers
+ # 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.
+ class Base
+ # All serializer options are saved so they can be passed to other serializers.
+ #
+ # @return [SymbolHash] the serializer options
+ attr_reader :options
+
+ # @group Creating a New Serializer
+
+ # Creates a new serializer with options
+ #
+ # @param [Hash] opts the options to assign to {#options}
+ def initialize(opts = {})
+ @options = SymbolHash.new(false).update(opts)
+ end
+
+ # @group Serializing an Object
+
+ # 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
+ def serialize(object, data) end
+
+ # 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
+ def serialized_path(object) end
+
+ # 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
+ def exists?(object) # rubocop:disable Lint/UnusedMethodArgument
+ false
+ end
+
+ # @group Callbacks
+
+ # 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
+ def before_serialize; end
+
+ # Called after serialization.
+ #
+ # @abstract Should run code after serialization.
+ # @param [String] data the data that was serialized.
+ # @return [void]
+ def after_serialize(data); end
+ end
+ end
+end