Class: YARD::APIPlugin::Serializer
- Inherits:
-
Serializers::FileSystemSerializer
- Object
- Serializers::FileSystemSerializer
- YARD::APIPlugin::Serializer
- Defined in:
- lib/yard-api/serializer.rb
Constant Summary collapse
- USNSEP =
url-safe namespace separator
'__'- FSSEP =
'/'
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.topicize(str) ⇒ Object
6 7 8 |
# File 'lib/yard-api/serializer.rb', line 6 def self.topicize(str) str.lines.first.gsub(/\W+/, '_').downcase end |
Instance Method Details
#get_api_id(object) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/yard-api/serializer.rb', line 41 def get_api_id(object) if object[:api_id] object.api_id elsif tag = object.tag(:API) tag.text.lines.first.strip else object.to_s end end |
#serialize(object, data) ⇒ Object
10 11 12 13 |
# File 'lib/yard-api/serializer.rb', line 10 def serialize(object, data) path = File.join(basepath, serialized_path(object)) File.open!(path, "wb") {|f| f.write data } end |
#serialized_path(object) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/yard-api/serializer.rb', line 15 def serialized_path(object) return object if object.is_a?(String) fspath = nil if object.is_a?(YARD::CodeObjects::ExtraFileObject) fspath = 'file.' + object.name + (extension.empty? ? '' : ".#{extension}") else fspath = if object == YARD::Registry.root "top-level-namespace" else self.class.topicize(get_api_id(object)) end if object.is_a?(YARD::CodeObjects::MethodObject) fspath += '_' + object.scope.to_s[0,1] end unless extension.empty? fspath += ".#{extension}" end end fspath.gsub(/[^\w\.\-_\/]+/, '-') end |