Class: Betterdocs::Generator::Markdown

Inherits:
Object
  • Object
show all
Includes:
ConfigShortcuts, FileUtils::Verbose, Term::ANSIColor
Defined in:
lib/betterdocs/generator/markdown.rb

Instance Method Summary collapse

Methods included from ConfigShortcuts

#api_base_url, #config, #project_name, #section, #sections

Constructor Details

#initialize(only: nil) ⇒ Markdown

Returns a new instance of Markdown.



10
11
12
# File 'lib/betterdocs/generator/markdown.rb', line 10

def initialize(only: nil)
  only and @only = Regexp.new(only)
end

Instance Method Details

#configure_for_creationObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/betterdocs/generator/markdown.rb', line 31

def configure_for_creation
  STDERR.puts "Setting asset_host to #{Betterdocs::Global.asset_host.inspect}."
  Betterdocs.rails.configuration.action_controller.asset_host = Betterdocs::Global.asset_host
  options = {
    host:     Betterdocs::Global.api_host,
    protocol: Betterdocs::Global.api_protocol
  }
  STDERR.puts "Setting default_url_options to #{options.inspect}."
  Betterdocs.rails.application.routes.default_url_options = options
  self
end

#create_assetsObject



65
66
67
68
69
70
71
# File 'lib/betterdocs/generator/markdown.rb', line 65

def create_assets
  config.each_asset do |src, dst|
    STDERR.puts on_color(33, "Creating asset #{dst.inspect} from #{src.inspect}.")
    mkdir_p File.dirname(dst)
    cp src, dst
  end
end

#create_readme(dirname) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/betterdocs/generator/markdown.rb', line 56

def create_readme(dirname)
  name = 'README.md'
  cd dirname do
    STDERR.puts on_color(33, "Creating readme.")
    render_to name, readme_template, binding
  end
  self
end

#create_sections(dirname) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/betterdocs/generator/markdown.rb', line 43

def create_sections(dirname)
  cd dirname do
    for section in sections.values
      if @only
        @only =~ section.name or next
      end
      STDERR.puts on_color(33, "Creating section #{section.name.inspect}.")
      render_to "sections/#{section.name}.md", section_template, section.instance_eval('binding')
    end
  end
  self
end

#generateObject



14
15
16
17
18
19
20
# File 'lib/betterdocs/generator/markdown.rb', line 14

def generate
  if dir = config.output_directory.full?
    generate_to dir
  else
    fail "Specify an output_directory in your configuration!"
  end
end

#generate_to(dirname) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/betterdocs/generator/markdown.rb', line 22

def generate_to(dirname)
  configure_for_creation
  prepare_dir dirname
  create_sections(dirname)
  create_readme dirname
  create_assets
  self
end