class Degica::Context

Public Class Methods

new(actor) click to toggle source
# File lib/degica/context.rb, line 3
def initialize(actor)
  @actor = actor
  @focus = actor.focus || NilActionable.new
end

Public Instance Methods

actions() click to toggle source
# File lib/degica/context.rb, line 8
def actions
  (@actor.actions + @focus.actions).uniq(&:name)
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/degica/context.rb, line 12
def method_missing(method, *args)
  if match = @focus.actions.find { |action| action.name == method }
    @focus.do(match.name, *args)
  elsif match = @actor.actions.find { |action| action.name == method }
    @actor.do(match.name, *args)
  else
    super
  end
end