Class: ReadmeYard::YardOptsManager

Inherits:
Object
  • Object
show all
Defined in:
lib/readme_yard/yard_opts_manager.rb

Constant Summary collapse

YARDOPTS_FILE =
".yardopts"

Class Method Summary collapse

Class Method Details

.build_yardopts_text_addition(yardopts_text) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/readme_yard/yard_opts_manager.rb', line 18

def build_yardopts_text_addition(yardopts_text)
  return if yardopts_text.match?(/\s*--plugin\s+readme\W/)

  readme_plugin_opts = default_readme_plugin_opts(yardopts_text)
  case yardopts_text
  when /\s*--markup\s+markdown/, /\s*-m\s+markdown/
    readme_plugin_opts
  when /\s*--markup\s/, /\s*-m\s/
    warn_about_supported_markdown
    readme_plugin_opts
  else
    readme_plugin_opts << "--markup markdown\n--markup-provider redcarpet\n"
  end
end

.create_yardopts_fileObject



40
41
42
# File 'lib/readme_yard/yard_opts_manager.rb', line 40

def create_yardopts_file
  File.write(YARDOPTS_FILE, "--plugin readme\n--markup markdown\n")
end

.default_readme_plugin_opts(yardopts_text) ⇒ Object



33
34
35
36
37
38
# File 'lib/readme_yard/yard_opts_manager.rb', line 33

def default_readme_plugin_opts(yardopts_text)
  readme_opts = +""
  last_line = yardopts_text.lines.last
  readme_opts << "\n" if last_line && !last_line.include?("\n")
  readme_opts << "--plugin readme\n"
end

.update_yardopts_fileObject



12
13
14
15
16
# File 'lib/readme_yard/yard_opts_manager.rb', line 12

def update_yardopts_file
  text = File.read(YARDOPTS_FILE)
  text_addition = build_yardopts_text_addition(text)
  File.open(YARDOPTS_FILE, "a") { |f| f.write(text_addition) } if text_addition
end

.upsert_yardoptsObject



8
9
10
# File 'lib/readme_yard/yard_opts_manager.rb', line 8

def upsert_yardopts
  File.exist?(YARDOPTS_FILE) ? update_yardopts_file : create_yardopts_file
end

.warn_about_supported_markdownObject



44
45
46
47
# File 'lib/readme_yard/yard_opts_manager.rb', line 44

def warn_about_supported_markdown
  Logger.warn "*Readme Yard* works best with markdown. " \
              "Consider adding `--markup markdown` to your `.yardopts` file."
end