class Playwright::Narrator

Attributes

owner_class[R]

Public Class Methods

find_or_create(owner_class) click to toggle source
# File lib/playwright/narrator.rb, line 10
def self.find_or_create(owner_class)
  # get narrator from existing class
  if owner_class.respond_to?(:narrators) && narrator = owner_class.narrators.first

    # child classes should have their own narrator
    if narrator.owner_class != owner_class
      narrator = narrator.dup
      narrator.owner_class = owner_class
    end
  else
    narrator = new(owner_class)
  end

  return narrator
end

Public Instance Methods

actors() click to toggle source
# File lib/playwright/narrator.rb, line 48
def actors
  return @loaded_actors if @loaded_actors
  @loaded_actors = @actors.each do |key, value|
    @actors[key] = value.call
  end
end
add_scenes(&block) click to toggle source
# File lib/playwright/narrator.rb, line 44
def add_scenes(&block) # :nodoc
  @scenes = SceneDSL.find(&block)
end
get_actor(name) click to toggle source
# File lib/playwright/narrator.rb, line 59
def get_actor(name)
  raise ActorNotRegistered unless has_actor?(name)
  actors[name]
end
get_scene(stage, name) click to toggle source
# File lib/playwright/narrator.rb, line 75
def get_scene(stage, name)
  raise SceneNotRegistered unless has_scene?(stage, name)
  scenes(stage)[name]
end
has_actor?(name) click to toggle source
# File lib/playwright/narrator.rb, line 55
def has_actor?(name)
  actors.has_key?(name)
end
has_scene?(stage, name) click to toggle source
# File lib/playwright/narrator.rb, line 71
def has_scene?(stage, name)
  scenes(stage).has_key?(name)
end
scenes(stage) click to toggle source
# File lib/playwright/narrator.rb, line 64
def scenes(stage)
  return @loaded_scenes if @loaded_scenes
  @loaded_scenes = @scenes.each do |key, value|
    @scenes[key] = value.init(self, stage)
  end
end