class Textbringer::Presentation::SlideList
Public Class Methods
new(buffer)
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 25 def initialize(buffer) @buffer = buffer doc = CommonMarker.render_doc(buffer.to_s) @list = [] slide = nil i = 1 @buffer.save_excursion do doc.each do |node| if node.type == :header @buffer.goto_line(node.sourcepos[:start_line]) slide.end_pos = @buffer.point - 1 if slide title = node.to_plaintext.strip slide = Slide.new(buffer, i, title) slide.start_pos = @buffer.point @list.push(slide) i += 1 end end slide.end_pos = @buffer.point_max if slide end @index = @list.index { |slide| slide.start_pos <= @buffer.point && @buffer.point <= slide.end_pos } || 0 end
Public Instance Methods
backward_slide()
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 75 def backward_slide if @index > 0 @index -= 1 end end
current()
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 54 def current @list[@index] end
current_page()
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 58 def current_page @index + 1 end
forward_slide()
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 69 def forward_slide if @index < @list.size - 1 @index += 1 end end
goto_page(no)
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 62 def goto_page(no) if no < 1 || no > @list.size raise ArgumentError, "Invalid page number: #{no}" end @index = no - 1 end
size()
click to toggle source
# File lib/textbringer/presentation/slide_list.rb, line 50 def size @list.size end