class Slidr::Commands::SlideCommand

Public Class Methods

new(pattern, slides, filters={}) click to toggle source
# File lib/slidr/commands/slide_command.rb, line 6
def initialize(pattern, slides, filters={})
  @pattern = pattern
  @slides = slides
  @publish = filters[:publish]
  @draft = filters[:draft]
end

Public Instance Methods

go(content) click to toggle source
# File lib/slidr/commands/slide_command.rb, line 13
def go(content)

  slides = []
  if @publish == :all
    slides = @slides
  else
    @slides.each do |slide|
      class_attrib = slide.lines.grep(/^class: [a-zA-Z0-9 ,:-]+$/)
      if @publish.any? { |cond| class_attrib.empty? ? false : class_attrib.first.include?(":#{ cond }") }
        slides << slide
      end
    end
  end

  slides = slides.map { |slide| slide.sub(/^---$/, '').strip }.join("\n---\n")
  content.sub(@pattern, slides)
end