class Slidr::SlideFilter
Public Class Methods
new(slides)
click to toggle source
# File lib/slidr/slide_filter.rb, line 4 def initialize(slides) @slides = slides end
Public Instance Methods
filter(condition, draft=false)
click to toggle source
# 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
Private Instance Methods
remove_level(slide)
click to toggle source
# File lib/slidr/slide_filter.rb, line 28 def remove_level(slide) content = '' slide.lines.each do |line| if /^class: ((:?[a-zA-Z0-9]+),\s){0,}(:?[a-zA-Z0-9]+)$/.match?(line) line = line.sub(/:\w+/, '') end content << line end end