Class: YARD::Serializers::FileSystemSerializer
- Inherits:
-
Base
- Object
- Base
- YARD::Serializers::FileSystemSerializer
- Defined in:
- lib/yard/serializers/file_system_serializer.rb
Overview
Implements a serializer that reads from and writes to the filesystem.
Direct Known Subclasses
Instance Attribute Summary (collapse)
-
- (String) basepath
The base path to write data to.
-
- (String) extension
The extension of the filename (defaults to html).
-
- (SymbolHash) options
inherited
from Base
readonly
All serializer options are saved so they can be passed to other serializers.
Instance Method Summary (collapse)
-
- (Boolean) exists?(object)
Checks the disk for an object and returns whether it was serialized.
-
- (FileSystemSerializer) initialize(opts = {})
constructor
Creates a new FileSystemSerializer with options.
-
- (String) serialize(object, data)
Serializes object with data to its serialized path (prefixed by the #basepath).
-
- (String) serialized_path(object)
Implements the serialized path of a code object.
Constructor Details
- (FileSystemSerializer) initialize(opts = {})
Creates a new FileSystemSerializer with options
27 28 29 30 31 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 27 def initialize(opts = {}) super @basepath = ([:basepath] || 'doc').to_s @extension = (.has_key?(:extension) ? [:extension] : 'html').to_s end |
Instance Attribute Details
- (String) basepath
The base path to write data to.
7 8 9 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 7 def basepath @basepath end |
- (String) extension
The extension of the filename (defaults to html)
16 17 18 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 16 def extension @extension end |
- (SymbolHash) options (readonly) Originally defined in class Base
All serializer options are saved so they can be passed to other serializers.
Instance Method Details
- (Boolean) exists?(object)
Checks the disk for an object and returns whether it was serialized.
69 70 71 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 69 def exists?(object) File.exist?(File.join(basepath, serialized_path(object))) end |
- (String) serialize(object, data)
Serializes object with data to its serialized path (prefixed by the #basepath).
36 37 38 39 40 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 36 def serialize(object, data) path = File.join(basepath, serialized_path(object)) log.debug "Serializing to #{path}" File.open!(path, "wb") {|f| f.write data } end |
- (String) serialized_path(object)
Implements the serialized path of a code object.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 48 def serialized_path(object) return object if object.is_a?(String) if object.is_a?(CodeObjects::ExtraFileObject) fspath = ['file.' + object.name + (extension.empty? ? '' : ".#{extension}")] else objname = object != YARD::Registry.root ? object.name.to_s : "top-level-namespace" objname += '_' + object.scope.to_s[0,1] if object.is_a?(CodeObjects::MethodObject) fspath = [objname + (extension.empty? ? '' : ".#{extension}")] if object.namespace && object.namespace.path != "" fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP)) end end File.join(encode_path_components(*fspath)) end |