class RubySlides::Presentation
Attributes
slides[R]
Public Class Methods
new()
click to toggle source
# File lib/ruby_slides/presentation.rb, line 11 def initialize @slides = [] end
Public Instance Methods
chart_slide(title, series = [{}])
click to toggle source
# File lib/ruby_slides/presentation.rb, line 53 def chart_slide(title, series = [{}]) @slides << RubySlides::Slide::Chart.new(presentation: self, title: title, series: series) end
charts()
click to toggle source
# File lib/ruby_slides/presentation.rb, line 99 def charts slides.map {|slide| slide.class == RubySlides::Slide::Chart }.count end
file_types()
click to toggle source
# File lib/ruby_slides/presentation.rb, line 93 def file_types slides.map {|slide| slide.file_type if slide.respond_to? :file_type }.compact.uniq end
introduction_slide(title, subtitle)
click to toggle source
# File lib/ruby_slides/presentation.rb, line 15 def introduction_slide(title, subtitle) @slides << RubySlides::Slide::Introduction.new(title: title, subtitle: subtitle) end
pictorial_slide(title, image_path, coords = {})
click to toggle source
# File lib/ruby_slides/presentation.rb, line 26 def pictorial_slide(title, image_path, coords = {}) @slides << RubySlides::Slide::Pictorial.new(presentation: self, title: title, image_path: image_path, coords: coords) end
picture_description_slide(title, image_path, content = [])
click to toggle source
# File lib/ruby_slides/presentation.rb, line 40 def picture_description_slide(title, image_path, content = []) @slides << RubySlides::Slide::DescriptionPic.new(presentation: self, title: title, image_path: image_path, content: content) end
save(path)
click to toggle source
# File lib/ruby_slides/presentation.rb, line 59 def save(path) Dir.mktmpdir do |dir| extract_path = "#{dir}/extract_#{Time.now.strftime("%Y-%m-%d-%H%M%S")}" # Copy template to temp path FileUtils.copy_entry(TEMPLATE_PATH, extract_path) # Remove keep files Dir.glob("#{extract_path}/**/.keep").each do |keep_file| FileUtils.rm_rf(keep_file) end # Render/save generic stuff render_view('content_type.xml.erb', "#{extract_path}/[Content_Types].xml") render_view('presentation.xml.rel.erb', "#{extract_path}/ppt/_rels/presentation.xml.rels") render_view('presentation.xml.erb', "#{extract_path}/ppt/presentation.xml") render_view('app.xml.erb', "#{extract_path}/docProps/app.xml") # Save slides slides.each_with_index do |slide, index| slide.save(extract_path, index + 1) end # Create .pptx file File.delete(path) if File.exist?(path) RubySlides.compress_pptx(extract_path, path) end path end
table_slide(title, content = [])
click to toggle source
# File lib/ruby_slides/presentation.rb, line 47 def table_slide(title, content = []) @slides << RubySlides::Slide::Table.new(presentation: self, title: title, content: content) end
text_picture_slide(title, image_path, content = [])
click to toggle source
# File lib/ruby_slides/presentation.rb, line 33 def text_picture_slide(title, image_path, content = []) @slides << RubySlides::Slide::TextPicSplit.new(presentation: self, title: title, image_path: image_path, content: content) end
textual_slide(title, content = [])
click to toggle source
# File lib/ruby_slides/presentation.rb, line 20 def textual_slide(title, content = []) @slides << RubySlides::Slide::Textual.new(presentation: self, title: title, content: content) end