module RDaux::Container

Public Instance Methods

ditaa_jar() click to toggle source
# File lib/rdaux/container.rb, line 52
def ditaa_jar
  File.expand_path(__FILE__ + '/../../../vendor/ditaa/ditaa0_9.jar')
end
generator() click to toggle source
# File lib/rdaux/container.rb, line 29
def generator
  @generator ||= with_logging(Web::Site::Generator.new(markdown, views_dir, public_folder, ditaa_jar, target_dir))
end
log_level() click to toggle source
# File lib/rdaux/container.rb, line 40
def log_level
  Logger.const_get(@options.fetch(:log_level, 'info').upcase)
end
logger() click to toggle source
# File lib/rdaux/container.rb, line 33
def logger
  with_config(Logger.new($stderr)) do |l|
    l.level     = log_level
    l.formatter = proc { |s, d, p, m| "%s | %-10s %s\n" % [d.strftime("%T,%L"), "[#{s}]", m] }
  end
end
logging_listener() click to toggle source
# File lib/rdaux/container.rb, line 44
def logging_listener
  @logging_listener ||= LoggingListener.new(logger)
end
markdown() click to toggle source
# File lib/rdaux/container.rb, line 56
def markdown
  Redcarpet::Markdown.new(Renderer.new({
    :filter_html => true,
    :images_dir  => public_folder,
    :ditaa_root  => 'img/ditaa'
  }), {
    :no_intra_emphasis   => true,
    :tables              => true,
    :fenced_code_blocks  => true,
    :autolink            => true,
    :space_after_headers => true,
    :superscript         => true,
    :underline           => true,
    :highlight           => true
  })
end
public_folder() click to toggle source
# File lib/rdaux/container.rb, line 48
def public_folder
  File.expand_path(__FILE__ + '/../../../public')
end
webapp() click to toggle source
# File lib/rdaux/container.rb, line 14
def webapp
  @webapp ||= with_config(Web::Application) do |app|
    app.set(:markdown,  markdown)
    app.set(:ditaa_jar, ditaa_jar)
  end
end
webserver() click to toggle source
# File lib/rdaux/container.rb, line 21
def webserver
  @webserver ||= with_logging(Web::Server.new(webapp, logger, public_folder, options))
end
website() click to toggle source
# File lib/rdaux/container.rb, line 25
def website
  @website ||= Web::Site.new(title, description, author, directory)
end

Private Instance Methods

author() click to toggle source
# File lib/rdaux/container.rb, line 87
def author
  options.fetch(:author) { ENV['USER'] }
end
description() click to toggle source
# File lib/rdaux/container.rb, line 83
def description
  options.fetch(:description) { "Documentation for <em>#{directory}</em>" }
end
target_dir() click to toggle source
# File lib/rdaux/container.rb, line 91
def target_dir
  Pathname(options.fetch(:output_path) { directory + '../site/' })
end
title() click to toggle source
# File lib/rdaux/container.rb, line 79
def title
  options.fetch(:title, "RDaux")
end
views_dir() click to toggle source
# File lib/rdaux/container.rb, line 75
def views_dir
  File.expand_path(__FILE__ + '/../web/views')
end
with_config(obj) { |o| ... } click to toggle source
# File lib/rdaux/container.rb, line 99
def with_config(obj)
  obj.tap {|o| yield(o)}
end
with_logging(obj) click to toggle source
# File lib/rdaux/container.rb, line 95
def with_logging(obj)
  with_config(obj) {|o| o.add_listener(logging_listener)}
end