slide_hero 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +46 -1
- data/lib/slide_hero/plugins.rb +20 -0
- data/lib/slide_hero/presentation.rb +33 -5
- data/lib/slide_hero/slide.rb +9 -3
- data/lib/slide_hero/version.rb +1 -1
- data/lib/slide_hero/views/layout.html.erb +2 -9
- data/lib/slide_hero.rb +1 -0
- data/test/minitest_helper.rb +1 -0
- data/test/slide_hero/grouped_slides_spec.rb +2 -2
- data/test/slide_hero/plugins_spec.rb +15 -0
- data/test/slide_hero/presentation_spec.rb +38 -1
- data/test/slide_hero/slide_spec.rb +29 -10
- data/test/slide_hero_spec.rb +1 -0
- metadata +28 -25
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d6944cd321adb4a9061916b686951183ea789005
         | 
| 4 | 
            +
              data.tar.gz: f1e0c3edc888475de5b28c7424fe0f70185d4bfd
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 43223d3b4efebd824053b358e1ecaabb691b332bfd69fe57d7d87298e8b289aa89f131a7d14e9f2afff851fe5b76ad16423adde2dd23b5fa92b3fe5ccabc4275
         | 
| 7 | 
            +
              data.tar.gz: 07c0c381219efd26ea52b29524e3ef1c666ac5c463a389c7ba42d1e0e8403aa51d1f3efef297f317a1d826b1ded61f3eae853c8be53ea81ea7a972c5910430cd
         | 
    
        data/README.md
    CHANGED
    
    | @@ -52,7 +52,6 @@ The DSL for SlideHero was created to add expressibility to creating slides. | |
| 52 52 |  | 
| 53 53 | 
             
            ```ruby
         | 
| 54 54 | 
             
            presentation "My Presentation" do
         | 
| 55 | 
            -
             
         | 
| 56 55 | 
             
            end
         | 
| 57 56 | 
             
            ```
         | 
| 58 57 |  | 
| @@ -87,6 +86,19 @@ presentation "My Presentation" do | |
| 87 86 | 
             
              end
         | 
| 88 87 | 
             
            end
         | 
| 89 88 | 
             
            ```
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            `#slide` can have a background color applied. This will only add the color to
         | 
| 91 | 
            +
            this one slide. Any css color will work.
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            ```ruby
         | 
| 94 | 
            +
            presentation "My Presentation" do
         | 
| 95 | 
            +
              slide "A slide", background_color: 'blue' do
         | 
| 96 | 
            +
                #…
         | 
| 97 | 
            +
              end
         | 
| 98 | 
            +
            end
         | 
| 99 | 
            +
            ```
         | 
| 100 | 
            +
             | 
| 101 | 
            +
             | 
| 90 102 | 
             
            **defaults**
         | 
| 91 103 |  | 
| 92 104 | 
             
            ```ruby
         | 
| @@ -104,6 +116,36 @@ end | |
| 104 116 | 
             
            ```
         | 
| 105 117 |  | 
| 106 118 | 
             
            You can set slide defaults for `headline_size` or `transition` by using `#defaults`. A slide default applies to all slides unless an individual slide overrides it.
         | 
| 119 | 
            +
            The theme is set to Default.  to change this, use the `set_theme` method in the
         | 
| 120 | 
            +
            presentation block.
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            ``` ruby
         | 
| 123 | 
            +
            presentation "My Presentation" do
         | 
| 124 | 
            +
              set_theme 'solarized'
         | 
| 125 | 
            +
            end
         | 
| 126 | 
            +
            ```
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            Valid theme options are: default, sky, beige, simple, serif, night, moon, solarized
         | 
| 129 | 
            +
             | 
| 130 | 
            +
            **plugins**
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            You can activate revealjs plugins by passing a symbol array to the
         | 
| 133 | 
            +
            `set_plugins` method. 
         | 
| 134 | 
            +
             | 
| 135 | 
            +
            ``` ruby
         | 
| 136 | 
            +
            presentation "My Presentation" do
         | 
| 137 | 
            +
              set_plugins :class_list, :remote, :leap
         | 
| 138 | 
            +
            end
         | 
| 139 | 
            +
            ```
         | 
| 140 | 
            +
             | 
| 141 | 
            +
            Currently supported plugins are `:class_list`, `:markdown`, `:highlight`, `:zoom`,
         | 
| 142 | 
            +
            `:notes`, `:remote`, and `:leap`.
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            `:class_list`, `:hightlight`, and `:notes` are used if `set_plugins` is
         | 
| 145 | 
            +
            not called.
         | 
| 146 | 
            +
             | 
| 147 | 
            +
            See Reveal.js [documentation](https://github.com/hakimel/reveal.js/#dependencies) for more info on these plugins.
         | 
| 148 | 
            +
             | 
| 107 149 |  | 
| 108 150 | 
             
            **points**
         | 
| 109 151 |  | 
| @@ -146,6 +188,9 @@ presentation "My Presentation" do | |
| 146 188 | 
             
                list(:ordered) do
         | 
| 147 189 | 
             
                  point "I should go first"
         | 
| 148 190 | 
             
                  point "I'm ok going second"
         | 
| 191 | 
            +
                  list do
         | 
| 192 | 
            +
                    point "I'm in a nested list"
         | 
| 193 | 
            +
                  end
         | 
| 149 194 | 
             
                end
         | 
| 150 195 | 
             
              end
         | 
| 151 196 | 
             
            end
         | 
| @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            module SlideHero
         | 
| 2 | 
            +
              module Plugins
         | 
| 3 | 
            +
                def self.reveal
         | 
| 4 | 
            +
                  {
         | 
| 5 | 
            +
                    class_list:  "{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }",
         | 
| 6 | 
            +
                    markdown:  "{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
         | 
| 7 | 
            +
                              { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }",
         | 
| 8 | 
            +
                    highlight:  "{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }",
         | 
| 9 | 
            +
                    zoom:  "{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } }",
         | 
| 10 | 
            +
                    notes:  "{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }",
         | 
| 11 | 
            +
                    remote:  "{ src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }",
         | 
| 12 | 
            +
                    leap: "{ src: 'plugin/leap/leap.js', async: true }"
         | 
| 13 | 
            +
                  }
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def self.reveal_list
         | 
| 17 | 
            +
                  reveal.keys
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
              end
         | 
| 20 | 
            +
            end
         | 
| @@ -2,31 +2,59 @@ module SlideHero | |
| 2 2 | 
             
              require 'erb'
         | 
| 3 3 | 
             
              require 'tilt'
         | 
| 4 4 | 
             
              class Presentation
         | 
| 5 | 
            -
                attr_reader :title
         | 
| 5 | 
            +
                attr_reader :title, :slide_defaults
         | 
| 6 6 | 
             
                def initialize(title, &block)
         | 
| 7 7 | 
             
                  @title = title
         | 
| 8 8 | 
             
                  @slide_defaults = {}
         | 
| 9 9 | 
             
                  instance_eval(&block)
         | 
| 10 10 | 
             
                end
         | 
| 11 11 |  | 
| 12 | 
            +
                def set_plugins(*plugin_list)
         | 
| 13 | 
            +
                  if plugin_list.empty?
         | 
| 14 | 
            +
                    defaults = %i{class_list highlight notes}
         | 
| 15 | 
            +
                    plugin_list = defaults
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  plugin_list.each do |plugin|
         | 
| 19 | 
            +
                    if Plugins.reveal_list.include? plugin
         | 
| 20 | 
            +
                      plugins <<  "#{Plugins.reveal[plugin]},"
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  plugins.chop
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                def plugins
         | 
| 28 | 
            +
                  @plugins ||= ""
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 12 31 | 
             
                def compile
         | 
| 32 | 
            +
                  set_plugins if plugins.empty?
         | 
| 13 33 | 
             
                  Tilt::ERBTemplate.new(File.join(SlideHero.template_path, 
         | 
| 14 34 | 
             
                                                  'lib/slide_hero/views/layout.html.erb')).
         | 
| 15 35 | 
             
                                                  render(self) do 
         | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 36 | 
            +
                                                    collected_slides
         | 
| 37 | 
            +
                                                  end
         | 
| 18 38 | 
             
                end
         | 
| 19 39 |  | 
| 20 40 | 
             
                def defaults(args)
         | 
| 21 41 | 
             
                  @slide_defaults = args
         | 
| 22 42 | 
             
                end
         | 
| 23 43 |  | 
| 44 | 
            +
                def theme
         | 
| 45 | 
            +
                  @theme ||= 'default'
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def set_theme(theme)
         | 
| 49 | 
            +
                  @theme = theme
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 24 52 | 
             
                def slide(title, **kwargs, &slide_block)
         | 
| 25 | 
            -
                  slides << Slide.new(title,  | 
| 53 | 
            +
                  slides << Slide.new(title, slide_defaults.merge(**kwargs), &slide_block).compile
         | 
| 26 54 | 
             
                end
         | 
| 27 55 |  | 
| 28 56 | 
             
                def grouped_slides(&block)
         | 
| 29 | 
            -
                  slides << GroupedSlides.new( | 
| 57 | 
            +
                  slides << GroupedSlides.new(slide_defaults, &block).compile
         | 
| 30 58 | 
             
                end
         | 
| 31 59 |  | 
| 32 60 | 
             
                def collected_slides
         | 
    
        data/lib/slide_hero/slide.rb
    CHANGED
    
    | @@ -1,10 +1,12 @@ | |
| 1 1 | 
             
            module SlideHero
         | 
| 2 2 | 
             
              class Slide
         | 
| 3 | 
            -
                attr_reader :headline, :headline_size, :transition
         | 
| 4 | 
            -
                def initialize(headline, headline_size: : | 
| 3 | 
            +
                attr_reader :headline, :headline_size, :transition, :background_color
         | 
| 4 | 
            +
                def initialize(headline=nil, headline_size: :medium, transition: :default, background_color: nil, &point_block)
         | 
| 5 5 | 
             
                  @headline = headline
         | 
| 6 6 | 
             
                  @headline_size = headline_size
         | 
| 7 7 | 
             
                  @transition = transition
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  @background_color = background_color
         | 
| 8 10 | 
             
                  instance_eval(&point_block) if block_given?
         | 
| 9 11 | 
             
                end
         | 
| 10 12 |  | 
| @@ -52,7 +54,11 @@ module SlideHero | |
| 52 54 | 
             
                end
         | 
| 53 55 |  | 
| 54 56 | 
             
                def data_attributes
         | 
| 55 | 
            -
                  "data-transition=\"#{transition}\""
         | 
| 57 | 
            +
                  "data-transition=\"#{transition}\"".tap do |attr|
         | 
| 58 | 
            +
                    if background_color
         | 
| 59 | 
            +
                      attr << " data-background=\"#{background_color}\""
         | 
| 60 | 
            +
                    end
         | 
| 61 | 
            +
                  end
         | 
| 56 62 | 
             
                end
         | 
| 57 63 | 
             
              end
         | 
| 58 64 | 
             
            end
         | 
    
        data/lib/slide_hero/version.rb
    CHANGED
    
    
| @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
                <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
         | 
| 8 8 | 
             
                <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
         | 
| 9 9 | 
             
                <link rel="stylesheet" href="css/reveal.min.css">
         | 
| 10 | 
            -
                <link rel="stylesheet" href="css/theme | 
| 10 | 
            +
                <link rel="stylesheet" href="css/theme/<%= theme %>.css" id="theme">
         | 
| 11 11 | 
             
                <link rel="stylesheet" href="lib/css/zenburn.css">
         | 
| 12 12 | 
             
                <script>
         | 
| 13 13 | 
             
                  document.write( '<link rel="stylesheet" href="css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
         | 
| @@ -45,14 +45,7 @@ | |
| 45 45 |  | 
| 46 46 | 
             
                    // Optional libraries used to extend on reveal.js
         | 
| 47 47 | 
             
                    dependencies: [
         | 
| 48 | 
            -
                     | 
| 49 | 
            -
                    { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
         | 
| 50 | 
            -
                    { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
         | 
| 51 | 
            -
                    { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
         | 
| 52 | 
            -
                    { src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
         | 
| 53 | 
            -
                    { src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
         | 
| 54 | 
            -
                    { src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } },
         | 
| 55 | 
            -
                    { src: 'plugin/leap/leap.js', async: true }
         | 
| 48 | 
            +
                    <%= plugins %>
         | 
| 56 49 | 
             
                    ]
         | 
| 57 50 | 
             
                  });
         | 
| 58 51 |  | 
    
        data/lib/slide_hero.rb
    CHANGED
    
    
    
        data/test/minitest_helper.rb
    CHANGED
    
    
| @@ -15,11 +15,11 @@ module SlideHero | |
| 15 15 |  | 
| 16 16 | 
             
                    assert_dom_match grouped_slides.compile, "<section>" +
         | 
| 17 17 | 
             
                      "<section data-transition=\"default\">" +
         | 
| 18 | 
            -
                      "< | 
| 18 | 
            +
                      "<h2>banana</h2>" +
         | 
| 19 19 | 
             
                      "<p>High in potassium</p>" +
         | 
| 20 20 | 
             
                      "</section>" +
         | 
| 21 21 | 
             
                      "<section data-transition=\"default\">" +
         | 
| 22 | 
            -
                      "< | 
| 22 | 
            +
                      "<h2>apple</h2>" +
         | 
| 23 23 | 
             
                      "<p>Good if you hate doctors</p>" +
         | 
| 24 24 | 
             
                      "</section>" +
         | 
| 25 25 | 
             
                      "</section>" 
         | 
| @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            require 'minitest_helper'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module SlideHero
         | 
| 4 | 
            +
              describe Plugins do
         | 
| 5 | 
            +
                it "contains configuration values for reveal plugins" do
         | 
| 6 | 
            +
                    Plugins.reveal[:class_list].must_equal  "{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }"
         | 
| 7 | 
            +
                    Plugins.reveal[:markdown].squeeze(' ').delete!("\n").must_equal  "{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }"
         | 
| 8 | 
            +
                    Plugins.reveal[:highlight].must_equal  "{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }"
         | 
| 9 | 
            +
                    Plugins.reveal[:zoom].must_equal  "{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } }"
         | 
| 10 | 
            +
                    Plugins.reveal[:notes].must_equal  "{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }"
         | 
| 11 | 
            +
                    Plugins.reveal[:remote].must_equal  "{ src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }"
         | 
| 12 | 
            +
                    Plugins.reveal[:leap].must_equal "{ src: 'plugin/leap/leap.js', async: true }"
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
            end
         | 
| @@ -72,7 +72,44 @@ module SlideHero | |
| 72 72 | 
             
                    end
         | 
| 73 73 | 
             
                  end
         | 
| 74 74 |  | 
| 75 | 
            -
                  assert_dom_includes("<section data-transition=\"default\">< | 
| 75 | 
            +
                  assert_dom_includes("<section data-transition=\"default\"><h2>Nesting!</h2><p>Woot!</p></section>", pres.compile)
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                it "can have a theme set" do
         | 
| 79 | 
            +
                  pres = Presentation.new("New stuff") do
         | 
| 80 | 
            +
                    set_theme 'sky'
         | 
| 81 | 
            +
                  end
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  assert pres.compile.include? "<link rel=\"stylesheet\" href=\"css/theme/sky.css\" id=\"theme\">"
         | 
| 84 | 
            +
                end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                it "sets the default theme to 'default'" do
         | 
| 87 | 
            +
                  pres = Presentation.new("New stuff") {}
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                  assert pres.compile.include? "<link rel=\"stylesheet\" href=\"css/theme/default.css\" id=\"theme\">"
         | 
| 90 | 
            +
                end
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                it "allows plugins to be set" do
         | 
| 93 | 
            +
                  pres = Presentation.new("New stuff") do
         | 
| 94 | 
            +
                    set_plugins :markdown, :highlight
         | 
| 95 | 
            +
                  end
         | 
| 96 | 
            +
             | 
| 97 | 
            +
                  assert pres.compile.include?("{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
         | 
| 98 | 
            +
                              { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }"), pres.compile
         | 
| 99 | 
            +
                end
         | 
| 100 | 
            +
             | 
| 101 | 
            +
                it "sets default plugins if not provided" do
         | 
| 102 | 
            +
                  pres = Presentation.new("New stuff") {}
         | 
| 103 | 
            +
                  assert pres.compile.include?("{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }"), pres.compile
         | 
| 104 | 
            +
                end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                it "ignores invalid plugins" do
         | 
| 107 | 
            +
                  pres = Presentation.new("New stuff") do
         | 
| 108 | 
            +
                    set_plugins :markdown, :totally_fake, :highlight
         | 
| 109 | 
            +
                  end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                  assert pres.compile.include?("{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
         | 
| 112 | 
            +
                              { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }"), pres.compile
         | 
| 76 113 | 
             
                end
         | 
| 77 114 | 
             
              end
         | 
| 78 115 | 
             
            end
         | 
| @@ -8,6 +8,11 @@ module SlideHero | |
| 8 8 | 
             
                    slide.headline.must_equal "Badgers learn knitting"
         | 
| 9 9 | 
             
                  end
         | 
| 10 10 |  | 
| 11 | 
            +
                  it "can be initialized with no title" do
         | 
| 12 | 
            +
                    slide = Slide.new
         | 
| 13 | 
            +
                    slide.headline.must_equal nil
         | 
| 14 | 
            +
                  end
         | 
| 15 | 
            +
             | 
| 11 16 | 
             
                  it "can take an optional side directive" do
         | 
| 12 17 | 
             
                    slide = Slide.new("Badgers learn knitting", headline_size: :large)
         | 
| 13 18 | 
             
                    slide.headline_size.must_equal :large
         | 
| @@ -15,13 +20,18 @@ module SlideHero | |
| 15 20 | 
             
                    slide = Slide.new("Snacks lead to revolution in food care", headline_size: :medium)
         | 
| 16 21 | 
             
                    slide.headline_size.must_equal :medium
         | 
| 17 22 | 
             
                  end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                  it "can take a background color" do
         | 
| 25 | 
            +
                    slide = Slide.new("Badgers learn knitting", background_color: 'blue')
         | 
| 26 | 
            +
                    slide.background_color.must_equal 'blue'
         | 
| 27 | 
            +
                  end
         | 
| 18 28 | 
             
                end
         | 
| 19 29 |  | 
| 20 30 | 
             
                describe "compilation" do
         | 
| 21 31 | 
             
                  it "outputs object to html" do
         | 
| 22 32 | 
             
                    slide = Slide.new("To Markup!")
         | 
| 23 33 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 24 | 
            -
                      "< | 
| 34 | 
            +
                      "<h2>To Markup!</h2> " +
         | 
| 25 35 | 
             
                      "</section>"
         | 
| 26 36 | 
             
                  end
         | 
| 27 37 |  | 
| @@ -36,7 +46,16 @@ module SlideHero | |
| 36 46 | 
             
                    slide = Slide.new("transitions", transition: :zoom) do
         | 
| 37 47 | 
             
                    end
         | 
| 38 48 | 
             
                    assert_dom_match slide.compile, '<section data-transition="zoom">' +
         | 
| 39 | 
            -
                      '< | 
| 49 | 
            +
                      '<h2>transitions</h2>' +
         | 
| 50 | 
            +
                      '</section>'
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  it "takes a background_color" do
         | 
| 54 | 
            +
                    slide = Slide.new("background_color", background_color: 'blue') do
         | 
| 55 | 
            +
                    end
         | 
| 56 | 
            +
                    assert_dom_match slide.compile, '<section data-transition="default" ' +
         | 
| 57 | 
            +
                     'data-background="blue">' +
         | 
| 58 | 
            +
                      '<h2>background_color</h2>' +
         | 
| 40 59 | 
             
                      '</section>'
         | 
| 41 60 | 
             
                  end
         | 
| 42 61 | 
             
                end
         | 
| @@ -48,7 +67,7 @@ module SlideHero | |
| 48 67 | 
             
                    end
         | 
| 49 68 |  | 
| 50 69 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 51 | 
            -
                      "< | 
| 70 | 
            +
                      "<h2>Embedding</h2>" +
         | 
| 52 71 | 
             
                      "<p>I'm embedded!</p>" +
         | 
| 53 72 | 
             
                      "</section>"
         | 
| 54 73 | 
             
                  end
         | 
| @@ -59,7 +78,7 @@ module SlideHero | |
| 59 78 | 
             
                    end
         | 
| 60 79 |  | 
| 61 80 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 62 | 
            -
                      "< | 
| 81 | 
            +
                      "<h2>Embedding</h2>" + 
         | 
| 63 82 | 
             
                      "<p><small>I'm embedded!</small></p>" +
         | 
| 64 83 | 
             
                      "</section>"
         | 
| 65 84 | 
             
                  end
         | 
| @@ -71,7 +90,7 @@ module SlideHero | |
| 71 90 | 
             
                    end
         | 
| 72 91 |  | 
| 73 92 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 74 | 
            -
                      "< | 
| 93 | 
            +
                      "<h2>Embedding</h2>" + 
         | 
| 75 94 | 
             
                      "<p>I'm embedded!</p>" +
         | 
| 76 95 | 
             
                      "<p>Me too!</p>" +
         | 
| 77 96 | 
             
                      "</section>"
         | 
| @@ -83,7 +102,7 @@ module SlideHero | |
| 83 102 | 
             
                    end
         | 
| 84 103 |  | 
| 85 104 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">"+
         | 
| 86 | 
            -
                      "< | 
| 105 | 
            +
                      "<h2>Animation</h2>" + 
         | 
| 87 106 | 
             
                      "<p class=\"fragment \">I'm animated!</p>" +
         | 
| 88 107 | 
             
                      "</section>"
         | 
| 89 108 |  | 
| @@ -99,7 +118,7 @@ module SlideHero | |
| 99 118 | 
             
                      end
         | 
| 100 119 | 
             
                    end
         | 
| 101 120 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 102 | 
            -
                      "< | 
| 121 | 
            +
                      "<h2>Lists</h2>" +
         | 
| 103 122 | 
             
                      "<ul>" +
         | 
| 104 123 | 
             
                      "<li>Bullet Points</li>" +
         | 
| 105 124 | 
             
                      "<li>Another Point</li>" +
         | 
| @@ -115,7 +134,7 @@ module SlideHero | |
| 115 134 | 
             
                      end
         | 
| 116 135 | 
             
                    end
         | 
| 117 136 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 118 | 
            -
                      "< | 
| 137 | 
            +
                      "<h2>Lists</h2>" +
         | 
| 119 138 | 
             
                      "<ol>" +
         | 
| 120 139 | 
             
                      "<li>Ordered!</li>" +
         | 
| 121 140 | 
             
                      "<li>Also ordered!</li>" +
         | 
| @@ -132,7 +151,7 @@ module SlideHero | |
| 132 151 | 
             
                    end
         | 
| 133 152 |  | 
| 134 153 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 135 | 
            -
                      "< | 
| 154 | 
            +
                      "<h2>Code</h2>" +
         | 
| 136 155 | 
             
                      "<pre><code data-trim class=\"ruby\">
         | 
| 137 156 | 
             
              class Working
         | 
| 138 157 | 
             
              def some_method
         | 
| @@ -150,7 +169,7 @@ end | |
| 150 169 | 
             
                      note "Don't forget to bring a towel"
         | 
| 151 170 | 
             
                    end
         | 
| 152 171 | 
             
                    assert_dom_match slide.compile, "<section data-transition=\"default\">" +
         | 
| 153 | 
            -
                      "< | 
| 172 | 
            +
                      "<h2>Note</h2>" +
         | 
| 154 173 | 
             
                      "<aside class=\"notes\">Don't forget to bring a towel</aside>" +
         | 
| 155 174 | 
             
                      "</section>"
         | 
| 156 175 | 
             
                  end
         | 
    
        data/test/slide_hero_spec.rb
    CHANGED
    
    | @@ -10,6 +10,7 @@ require_relative 'slide_hero/dsl_spec' | |
| 10 10 | 
             
            require_relative 'slide_hero/note_spec'
         | 
| 11 11 | 
             
            require_relative 'slide_hero/image_spec'
         | 
| 12 12 | 
             
            require_relative 'slide_hero/media_spec'
         | 
| 13 | 
            +
            require_relative 'slide_hero/plugins_spec'
         | 
| 13 14 |  | 
| 14 15 | 
             
            describe ::SlideHero do
         | 
| 15 16 | 
             
              it "has a version" do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,125 +1,125 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: slide_hero
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Steven Nunez
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-04-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: tilt
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - ~>
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '1.4'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - ~>
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '1.4'
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: thor
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ~>
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: '0.18'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ~>
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: '0.18'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: rack
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ~>
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: '1.5'
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ~>
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: '1.5'
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: bundler
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - ~>
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '1.3'
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - ~>
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '1.3'
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: rake
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - -  | 
| 73 | 
            +
                - - ~>
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 75 | 
             
                    version: '10.1'
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - -  | 
| 80 | 
            +
                - - ~>
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '10.1'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: minitest
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 | 
            -
                - -  | 
| 87 | 
            +
                - - ~>
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 89 | 
             
                    version: '5.2'
         | 
| 90 90 | 
             
              type: :development
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 | 
            -
                - -  | 
| 94 | 
            +
                - - ~>
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '5.2'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: guard
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - -  | 
| 101 | 
            +
                - - ~>
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 103 | 
             
                    version: '2.4'
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - -  | 
| 108 | 
            +
                - - ~>
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 110 | 
             
                    version: '2.4'
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: guard-minitest
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - -  | 
| 115 | 
            +
                - - ~>
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 117 | 
             
                    version: '2.2'
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - -  | 
| 122 | 
            +
                - - ~>
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                    version: '2.2'
         | 
| 125 125 | 
             
            description: Used for creating slide decks backed by reveal.js
         | 
| @@ -130,10 +130,10 @@ executables: | |
| 130 130 | 
             
            extensions: []
         | 
| 131 131 | 
             
            extra_rdoc_files: []
         | 
| 132 132 | 
             
            files:
         | 
| 133 | 
            -
            -  | 
| 134 | 
            -
            -  | 
| 135 | 
            -
            -  | 
| 136 | 
            -
            -  | 
| 133 | 
            +
            - .gitignore
         | 
| 134 | 
            +
            - .ruby-gemset
         | 
| 135 | 
            +
            - .ruby-version
         | 
| 136 | 
            +
            - .travis.yml
         | 
| 137 137 | 
             
            - Gemfile
         | 
| 138 138 | 
             
            - Guardfile
         | 
| 139 139 | 
             
            - LICENSE.txt
         | 
| @@ -150,6 +150,7 @@ files: | |
| 150 150 | 
             
            - lib/slide_hero/list_point.rb
         | 
| 151 151 | 
             
            - lib/slide_hero/media.rb
         | 
| 152 152 | 
             
            - lib/slide_hero/note.rb
         | 
| 153 | 
            +
            - lib/slide_hero/plugins.rb
         | 
| 153 154 | 
             
            - lib/slide_hero/point.rb
         | 
| 154 155 | 
             
            - lib/slide_hero/presentation.rb
         | 
| 155 156 | 
             
            - lib/slide_hero/slide.rb
         | 
| @@ -175,6 +176,7 @@ files: | |
| 175 176 | 
             
            - test/slide_hero/list_spec.rb
         | 
| 176 177 | 
             
            - test/slide_hero/media_spec.rb
         | 
| 177 178 | 
             
            - test/slide_hero/note_spec.rb
         | 
| 179 | 
            +
            - test/slide_hero/plugins_spec.rb
         | 
| 178 180 | 
             
            - test/slide_hero/point_spec.rb
         | 
| 179 181 | 
             
            - test/slide_hero/presentation_spec.rb
         | 
| 180 182 | 
             
            - test/slide_hero/slide_spec.rb
         | 
| @@ -270,17 +272,17 @@ require_paths: | |
| 270 272 | 
             
            - lib
         | 
| 271 273 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 272 274 | 
             
              requirements:
         | 
| 273 | 
            -
              - -  | 
| 275 | 
            +
              - - '>='
         | 
| 274 276 | 
             
                - !ruby/object:Gem::Version
         | 
| 275 277 | 
             
                  version: '0'
         | 
| 276 278 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 277 279 | 
             
              requirements:
         | 
| 278 | 
            -
              - -  | 
| 280 | 
            +
              - - '>='
         | 
| 279 281 | 
             
                - !ruby/object:Gem::Version
         | 
| 280 282 | 
             
                  version: '0'
         | 
| 281 283 | 
             
            requirements: []
         | 
| 282 284 | 
             
            rubyforge_project: 
         | 
| 283 | 
            -
            rubygems_version: 2. | 
| 285 | 
            +
            rubygems_version: 2.0.14
         | 
| 284 286 | 
             
            signing_key: 
         | 
| 285 287 | 
             
            specification_version: 4
         | 
| 286 288 | 
             
            summary: Used for creating slide decks backed by reveal.js
         | 
| @@ -295,6 +297,7 @@ test_files: | |
| 295 297 | 
             
            - test/slide_hero/list_spec.rb
         | 
| 296 298 | 
             
            - test/slide_hero/media_spec.rb
         | 
| 297 299 | 
             
            - test/slide_hero/note_spec.rb
         | 
| 300 | 
            +
            - test/slide_hero/plugins_spec.rb
         | 
| 298 301 | 
             
            - test/slide_hero/point_spec.rb
         | 
| 299 302 | 
             
            - test/slide_hero/presentation_spec.rb
         | 
| 300 303 | 
             
            - test/slide_hero/slide_spec.rb
         |