Module: ScribeDown::Renderer

Defined in:
lib/generate/helpers.rb,
lib/generate/renderer.rb

Constant Summary collapse

@@settings =
nil
@@sections =
nil
@@templates =
nil

Class Method Summary collapse

Class Method Details

.add(file_name, options = {}) ⇒ Object



38
39
40
41
# File 'lib/generate/renderer.rb', line 38

def self.add(file_name, options={})
  options[:binding] = binding
  Res.read_file(file_name, options)
end

.contentObject



19
20
21
22
23
24
25
# File 'lib/generate/renderer.rb', line 19

def self.content
  rendered_sections = Array.new
  @@sections.each do |section|
    rendered_sections.push render_section(section)
  end
  rendered_sections.join "\n\n"
end

.head_tagsObject



11
12
13
14
15
16
17
# File 'lib/generate/renderer.rb', line 11

def self.head_tags
  rendered = Array.new
  @@settings[:styles].each do |style|
    rendered.push(stylesheet_tag style)
  end
  rendered.join "\n\n"
end

.image_tag(url, options = {}) ⇒ Object



14
15
16
17
# File 'lib/generate/helpers.rb', line 14

def self.image_tag(url, options={})
  extras = options.map {|k,v| "#{k}=\"#{v}\"" }.join ' '
  "<img src=\"#{url}\" #{extras}/>"
end


5
6
7
8
# File 'lib/generate/helpers.rb', line 5

def self.link_to(text, url, options={})
  extras = options.map {|k,v| "#{k}=\"#{v}\"" }.join ' '
  "<a href=\"#{url}\" #{extras}>#{text}</a>"
end

.render_section(section) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/generate/renderer.rb', line 27

def self.render_section(section)
  if @@templates.has_key? section.container
    template = @@templates[section.container]
  else
    template = Res.read_file(section.container, format: :plain)
    @@templates[section.container] = template
  end
  content = Res.read_file(section.path, format: section.format.to_sym, binding: binding)
  Res.erb_contents(template, binding)
end

.stylesheet_tag(file_name) ⇒ Object



10
11
12
# File 'lib/generate/helpers.rb', line 10

def self.stylesheet_tag(file_name)
  "<style>\n" + Res.read_file(file_name) + "\n</style>"
end

.to_html(sections, settings) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/generate/renderer.rb', line 43

def self.to_html(sections, settings)
  @@settings = settings
  @@sections = sections
  @@templates = Hash.new
  title ||= settings[:title]
  return Res.read_file(settings[:base], binding: binding)
end

.to_pdf(html_content) ⇒ Object



51
52
53
# File 'lib/generate/renderer.rb', line 51

def self.to_pdf(html_content)
  PDFKit.new(html_content).to_pdf
end