Class: Presently::SlideRenderer
- Inherits:
-
Object
- Object
- Presently::SlideRenderer
- Defined in:
- lib/presently/slide_renderer.rb
Overview
Instance Method Summary collapse
-
#initialize(css_class: "slide", templates: Templates.for) ⇒ SlideRenderer
constructor
Initialize a new slide renderer.
-
#render(builder, slide, extra_class: nil) ⇒ Object
Render a slide into the given builder.
-
#render_to_html(slide, extra_class: nil) ⇒ Object
Render a slide to an HTML string.
Constructor Details
#initialize(css_class: "slide", templates: Templates.for) ⇒ SlideRenderer
Initialize a new slide renderer.
21 22 23 24 |
# File 'lib/presently/slide_renderer.rb', line 21 def initialize(css_class: "slide", templates: Templates.for) @css_class = css_class @templates = templates end |
Instance Method Details
#render(builder, slide, extra_class: nil) ⇒ Object
Render a slide into the given builder.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/presently/slide_renderer.rb', line 40 def render(builder, , extra_class: nil) return unless template = @templates.resolve(.template) scope = TemplateScope.new() html = template.to_string(scope) classes = [@css_class, extra_class].compact.join(" ") builder.tag(:div, class: classes, data: {template: .template}) do builder.raw(html) if .script builder.tag(:script, type: "text/slide-script") do builder.raw(.script) end end end end |
#render_to_html(slide, extra_class: nil) ⇒ Object
Render a slide to an HTML string.
30 31 32 33 34 |
# File 'lib/presently/slide_renderer.rb', line 30 def render_to_html(, extra_class: nil) builder = XRB::Builder.new render(builder, , extra_class: extra_class) XRB::MarkupString.raw(builder.to_s) end |