Class: TermSlides::Slides
- Inherits:
-
Object
- Object
- TermSlides::Slides
- Defined in:
- lib/term-slides.rb
Instance Method Summary collapse
-
#initialize(args, &block) ⇒ Slides
constructor
A new instance of Slides.
- #read_char ⇒ Object
- #run ⇒ Object
- #slide(name, &block) ⇒ Object
Constructor Details
#initialize(args, &block) ⇒ Slides
Returns a new instance of Slides.
223 224 225 226 227 228 229 230 231 232 |
# File 'lib/term-slides.rb', line 223 def initialize args, &block @args = args if @args.size > 0 and @args[0] == "hovercraft" @renderer = HovercraftRenderer.new else @renderer = TTYRenderer.new end = [] instance_eval &block end |
Instance Method Details
#read_char ⇒ Object
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 |
# File 'lib/term-slides.rb', line 233 def read_char STDIN.echo = false STDIN.raw! input = STDIN.getc.chr if input == "\e" then input << STDIN.read_nonblock(3) rescue nil input << STDIN.read_nonblock(2) rescue nil end ensure STDIN.echo = true STDIN.cooked! return input end |
#run ⇒ Object
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 |
# File 'lib/term-slides.rb', line 248 def run i = 0 if @args.size > 0 if @args[0] == "hovercraft" .each do || .render end else print `clear` [@args[0].to_i].render end return end while true print `clear` puts "#{i + 1}/#{@slides.size}" [i].render s = read_char if s == "q" break elsif ["p", "\e[D", "\e[A", "h", "k"].include?(s) i -= 1 if i > 0 elsif ["n", "\e[C", "\e[B", "l", "j"].include?(s) i += 1 if i < (.size - 1) end end end |
#slide(name, &block) ⇒ Object
220 221 222 |
# File 'lib/term-slides.rb', line 220 def name, &block << Slide.new(@renderer, name, &block) end |