Class: Trackler::DocFile

Inherits:
Object
  • Object
show all
Defined in:
lib/trackler/doc_file.rb

Direct Known Subclasses

MarkdownFile, NullDocFile, OrgmodeFile

Constant Summary collapse

DEFAULT_IMAGE_PATH =
"/docs/img"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(basename:, docs_dir:) ⇒ DocFile

Returns a new instance of DocFile.



15
16
17
18
# File 'lib/trackler/doc_file.rb', line 15

def initialize(basename:, docs_dir:)
  @basename = basename
  @dir = docs_dir
end

Instance Attribute Details

#basenameObject (readonly)

Returns the value of attribute basename.



14
15
16
# File 'lib/trackler/doc_file.rb', line 14

def basename
  @basename
end

#dirObject (readonly)

Returns the value of attribute dir.



14
15
16
# File 'lib/trackler/doc_file.rb', line 14

def dir
  @dir
end

Class Method Details

.find(basename:, track_dir:) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/trackler/doc_file.rb', line 5

def self.find(basename:, track_dir:)
  dir = File.join(track_dir, "docs")

  [
    MarkdownFile.new(basename: basename, docs_dir: dir),
    OrgmodeFile.new(basename: basename, docs_dir: dir),
  ].detect(&:exist?) || NullDocFile.new(basename: basename, docs_dir: dir)
end

Instance Method Details

#exist?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/trackler/doc_file.rb', line 32

def exist?
  File.exist?(path)
end

#extensionObject



28
29
30
# File 'lib/trackler/doc_file.rb', line 28

def extension
  "md"
end

#nameObject



24
25
26
# File 'lib/trackler/doc_file.rb', line 24

def name
  "%s.%s" % [basename, extension]
end

#render(image_path: DEFAULT_IMAGE_PATH) ⇒ Object



20
21
22
# File 'lib/trackler/doc_file.rb', line 20

def render(image_path: DEFAULT_IMAGE_PATH)
  body.gsub(img_src, img_dst(image_path))
end