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