Class: TerminalSlides::SlideReader

Inherits:
Object
  • Object
show all
Defined in:
lib/terminal_slides/slide_reader.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(printer, slides) ⇒ SlideReader

Returns a new instance of SlideReader.



3
4
5
6
# File 'lib/terminal_slides/slide_reader.rb', line 3

def initialize(printer, slides)
  @printer = printer
  @slides = slides
end

Instance Attribute Details

#printerObject (readonly)

Returns the value of attribute printer.



35
36
37
# File 'lib/terminal_slides/slide_reader.rb', line 35

def printer
  @printer
end

#slidesObject (readonly)

Returns the value of attribute slides.



35
36
37
# File 'lib/terminal_slides/slide_reader.rb', line 35

def slides
  @slides
end

Instance Method Details

#apply_tokens(tokens) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/terminal_slides/slide_reader.rb', line 27

def apply_tokens(tokens)
  tokens.each do |key, value|
    if printer.respond_to?("set_#{key}")
      printer.send("set_#{key}", value)
    end
  end
end

#parse(line) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/terminal_slides/slide_reader.rb', line 15

def parse(line)
  raw_tokens = line.scan(/{{.*}}/).flatten
  tokens = raw_tokens.map { |str_token| tokenize(str_token) }
  apply_tokens(tokens)

  raw_tokens.each { |raw_token| line.gsub!(raw_token, "") }
end

#read(page) ⇒ Object



8
9
10
11
12
13
# File 'lib/terminal_slides/slide_reader.rb', line 8

def read(page)
  content(page).each do |line|
    parse(line)
    yield(line)
  end
end

#tokenize(str_token) ⇒ Object



23
24
25
# File 'lib/terminal_slides/slide_reader.rb', line 23

def tokenize(str_token)
  key, value = str_token.gsub(/{{|}}/, "").sub(" ", "").split(":")
end