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