Class: 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
-
#basepath ⇒ String
The base path to write data to.
-
#extension ⇒ String
The extension of the filename (defaults to
html
).
Instance Method Summary collapse
-
#exists?(object) ⇒ Boolean
Checks the disk for an object and returns whether it was serialized.
-
#initialize(opts = {}) ⇒ FileSystemSerializer
constructor
Creates a new FileSystemSerializer with options.
-
#serialize(object, data) ⇒ String
Serializes object with data to its serialized path (prefixed by the
#basepath
). -
#serialized_path(object) ⇒ String
Implements the serialized path of a code object.
Constructor Details
#initialize(opts = {}) ⇒ FileSystemSerializer
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
#basepath ⇒ String
The base path to write data to.
7 8 9 |
# File 'lib/yard/serializers/file_system_serializer.rb', line 7 def basepath @basepath end |
#extension ⇒ String
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 |
Instance Method Details
#exists?(object) ⇒ Boolean
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 |
#serialize(object, data) ⇒ String
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 |
#serialized_path(object) ⇒ String
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 |