Class: Rabbit::HTML::Generator

Inherits:
Object
  • Object
show all
Includes:
ERB::Util, GetText
Defined in:
lib/rabbit/html/generator.rb

Constant Summary

Constants included from GetText

GetText::DOMAIN

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from GetText

included

Constructor Details

#initialize(canvas, base_name, image_type, output_html, output_index_html, rss_base_uri) ⇒ Generator

Returns a new instance of Generator.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rabbit/html/generator.rb', line 28

def initialize(canvas, base_name, image_type,
               output_html, output_index_html, rss_base_uri)
  @canvas = canvas
  @suffix = "html"
  @rss_info = []
  @rss_filename = "index.rdf"
  rss_base_uri = rss_base_uri.chomp('/') + '/' if rss_base_uri
  @rss_base_uri = rss_base_uri
  @base_name = base_name
  @base_dir = File.dirname(@base_name)
  @image_type = image_type
  @output_html = output_html
  @output_index_html = output_index_html
  @pdf_filename = nil
  @source_filename = nil
  FileUtils.mkdir_p(to_filename_encoding(@base_dir))
end

Instance Attribute Details

#pdf_filenameObject

Returns the value of attribute pdf_filename.



27
28
29
# File 'lib/rabbit/html/generator.rb', line 27

def pdf_filename
  @pdf_filename
end

#source_filenameObject

Returns the value of attribute source_filename.



27
28
29
# File 'lib/rabbit/html/generator.rb', line 27

def source_filename
  @source_filename
end

Instance Method Details

#index_href(slide_number) ⇒ Object



96
97
98
99
100
# File 'lib/rabbit/html/generator.rb', line 96

def index_href(slide_number)
  with_outputting_index(true) do
    href(slide_number)
  end
end

#index_image_title(slide_number) ⇒ Object



108
109
110
111
112
113
114
# File 'lib/rabbit/html/generator.rb', line 108

def index_image_title(slide_number)
  @canvas.with_index_mode(true) do
    with_outputting_index(true) do
      image_title(slide_number)
    end
  end
end

#number_of_places(num) ⇒ Object



74
75
76
77
78
79
80
81
82
# File 'lib/rabbit/html/generator.rb', line 74

def number_of_places(num)
  n = 1
  target = num
  while target >= 10
    target /= 10
    n += 1
  end
  n
end

#output_html?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/rabbit/html/generator.rb', line 88

def output_html?
  @output_html
end

#output_index_html?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/rabbit/html/generator.rb', line 84

def output_index_html?
  @output_index_html
end

#output_slide_html?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/rabbit/html/generator.rb', line 92

def output_slide_html?
  output_html? and !@index_mode
end

#outputting_index?Boolean

Returns:

  • (Boolean)


124
125
126
# File 'lib/rabbit/html/generator.rb', line 124

def outputting_index?
  @outputting_index
end

#saveObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/rabbit/html/generator.rb', line 46

def save
  save_environment do
    @outputting_index = false
    @canvas.each_slide_pixbuf do |slide, pixbuf, slide_number|
      message = _("Creating a image for the %dth page") % slide_number
      @canvas.logger.info(message)
      save_slide(slide, pixbuf, slide_number)
      true
    end
    if output_index_html?
      @canvas.with_index_mode(true) do
        @canvas.slides.each_with_index do |slide, slide_number|
          save_index(slide, slide_number)
        end
      end
    end
    unless save_rss
      @canvas.logger.warn(_("can't generate RSS"))
    end
  end
end

#save_pixbuf(pixbuf, optional = nil) ⇒ Object



68
69
70
71
72
# File 'lib/rabbit/html/generator.rb', line 68

def save_pixbuf(pixbuf, optional=nil)
  pixbuf.save(pixbuf_filename(@slide_number, optional),
              normalized_image_type)
  image_src(@slide_number, optional)
end

#slide_href(slide_number) ⇒ Object



102
103
104
105
106
# File 'lib/rabbit/html/generator.rb', line 102

def slide_href(slide_number)
  with_outputting_index(false) do
    href(slide_number)
  end
end

#slide_image_title(slide_number) ⇒ Object



116
117
118
119
120
121
122
# File 'lib/rabbit/html/generator.rb', line 116

def slide_image_title(slide_number)
  @canvas.with_index_mode(false) do
    with_outputting_index(false) do
      image_title(slide_number)
    end
  end
end

#with_outputting_index(index) ⇒ Object



128
129
130
131
132
133
134
# File 'lib/rabbit/html/generator.rb', line 128

def with_outputting_index(index)
  _index = @outputting_index
  @outputting_index = index
  yield
ensure
  @outputting_index = _index
end