Class: Slidr::SlideFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/slidr/slide_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(slides) ⇒ SlideFilter

Returns a new instance of SlideFilter.



4
5
6
# File 'lib/slidr/slide_filter.rb', line 4

def initialize(slides)
  @slides = slides
end

Instance Method Details

#filter(condition, draft = false) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/slidr/slide_filter.rb', line 8

def filter(condition, draft=false)
  slides = []
  @slides.each do |slide|
    if condition == :all
      slides << remove_level(slide)
    else
      p condition
      class_line = slide.lines.grep(/^class: ((:?[a-zA-Z0-9]+),\s){0,}(:?[a-zA-Z0-9]+)$/)
      p class_line
      if condition.any? { |cond| class_line.first.include?("#{cond}") if !class_line.empty? }
        slides << '---' if !slide.start_with?('---')
        slides << slide
      end
    end
  end

  slides.join("\n---")
end