Class: Middleman::Presentation::SlideList

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/middleman-presentation-core/slide_list.rb

Overview

List of slides

Instance Method Summary collapse

Constructor Details

#initialize(names, slide_builder:, **args, &block) ⇒ SlideList

Returns a new instance of SlideList.



14
15
16
17
18
19
20
21
# File 'lib/middleman-presentation-core/slide_list.rb', line 14

def initialize(names, slide_builder:, **args, &block)
  @slides = Array(names).map { |n| slide_builder.new(n, **args) }
  @transformers = []

  block.call(self) if block_given?

  @slides = transformers.reduce(@slides) { |a, e| e.transform(a) }
end

Instance Method Details

#allObject



27
28
29
# File 'lib/middleman-presentation-core/slide_list.rb', line 27

def all
  slides.dup
end

#each(&block) ⇒ Object



31
32
33
# File 'lib/middleman-presentation-core/slide_list.rb', line 31

def each(&block)
  slides.each(&block)
end

#each_existing(&block) ⇒ Object



39
40
41
# File 'lib/middleman-presentation-core/slide_list.rb', line 39

def each_existing(&block)
  all.keep_if { |s| s.respond_to?(:exist?) && s.exist? }.each(&block)
end

#each_new(&block) ⇒ Object



35
36
37
# File 'lib/middleman-presentation-core/slide_list.rb', line 35

def each_new(&block)
  all.keep_if { |s| s.respond_to?(:exist?) && !s.exist? }.each(&block)
end

#existing_slidesObject



43
44
45
# File 'lib/middleman-presentation-core/slide_list.rb', line 43

def existing_slides
  all.keep_if { |s| s.respond_to?(:exist?) && s.exist? }
end

#to_aObject



47
48
49
# File 'lib/middleman-presentation-core/slide_list.rb', line 47

def to_a
  all
end

#transform_with(transformer) ⇒ Object



23
24
25
# File 'lib/middleman-presentation-core/slide_list.rb', line 23

def transform_with(transformer)
  transformers << transformer
end