class WhirledPeas::Command::Play::ApplicationPlayer

Attributes

app_config_file[R]
config[R]
logger[R]

Public Class Methods

new(app_config_file, config, logger) click to toggle source
# File lib/whirled_peas/command/play.rb, line 14
def initialize(app_config_file, config, logger)
  @app_config_file = app_config_file
  @config = config
  @logger = logger
end

Public Instance Methods

play() click to toggle source
# File lib/whirled_peas/command/play.rb, line 20
def play
  require app_config_file

  require 'whirled_peas/animator/renderer_consumer'
  require 'whirled_peas/animator/producer'
  require 'whirled_peas/device/screen'
  require 'whirled_peas/utils/ansi'

  Utils::Ansi.with_screen do |width, height|
    consumer = Animator::RendererConsumer.new(
      WhirledPeas.config.template_factory,
      Device::Screen.new,
      width,
      height
    )
    Animator::Producer.produce(consumer) do |producer|
      config.application.start(producer)
    end
  end
rescue LoadError => e
  puts e
  puts e.backtrace.join("\n")
  exit(1)
end