lib/slide_hero/presentation.rb in slide_hero-0.0.4 vs lib/slide_hero/presentation.rb in slide_hero-0.0.5

- old
+ new

@@ -1,33 +1,61 @@ module SlideHero require 'erb' require 'tilt' class Presentation - attr_reader :title + attr_reader :title, :slide_defaults def initialize(title, &block) @title = title @slide_defaults = {} instance_eval(&block) end + def set_plugins(*plugin_list) + if plugin_list.empty? + defaults = %i{class_list highlight notes} + plugin_list = defaults + end + + plugin_list.each do |plugin| + if Plugins.reveal_list.include? plugin + plugins << "#{Plugins.reveal[plugin]}," + end + end + + plugins.chop + end + + def plugins + @plugins ||= "" + end + def compile + set_plugins if plugins.empty? Tilt::ERBTemplate.new(File.join(SlideHero.template_path, 'lib/slide_hero/views/layout.html.erb')). render(self) do - collected_slides - end + collected_slides + end end def defaults(args) @slide_defaults = args end + def theme + @theme ||= 'default' + end + + def set_theme(theme) + @theme = theme + end + def slide(title, **kwargs, &slide_block) - slides << Slide.new(title, @slide_defaults.merge(**kwargs), &slide_block).compile + slides << Slide.new(title, slide_defaults.merge(**kwargs), &slide_block).compile end def grouped_slides(&block) - slides << GroupedSlides.new(@slide_defaults, &block).compile + slides << GroupedSlides.new(slide_defaults, &block).compile end def collected_slides slides.join end