class PlaylyfeClient::V2::TeamEvent::Base

Attributes

actor_alias[R]
actor_id[R]
changes[R]
from_player_alias[R]
from_player_id[R]
invitee_alias[R]
invitee_id[R]
inviter_alias[R]
inviter_id[R]
new_owner_alias[R]
new_owner_id[R]
player_alias[R]
player_id[R]
roles[R]
target_player_alias[R]
target_player_id[R]
team_id[R]
team_name[R]

Public Class Methods

build(ev_hash, game, player=nil) click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 150
def self.build(ev_hash, game, player=nil)      
  case ev_hash["event"] 
    when "create"
      klass= TeamCreatedEvent
    when "delete"
      klass= TeamDeletedEvent
    when "join"  
      klass= JoinedEvent
    when "join:request"  
      klass= RequestToJoinEvent
    when "leave"
      klass= LeavedEvent
    when "role:change","role:assign"
      klass= RolesChangedEvent
    when "role:request"
      klass= RequestForChangeOfRolesEvent 
    when "join:request:accept"
      klass= JoinAcceptedEvent
    when "role:request:accept"
      klass= ChangeOfRolesAcceptedEvent
    when "join:request:reject"
      klass= JoinRejectedEvent
    when "invite"
      klass= InviteSendEvent
    when "invite:accept"
      klass= InviteAcceptedEvent
    when "invite:reject"
      klass= InviteRejectedEvent
    when "kick"
      klass= KickedOutEvent
    when "transfer"
      klass= TeamOwnershipTransferredEvent
    else  
      return nil  
  end  

  return klass.new(ev_hash, game, player)
end
new(ev_hash,game,team_or_player=nil) click to toggle source
Calls superclass method PlaylyfeClient::V2::Event::new
# File lib/playlyfe_client/v2/event/team_event.rb, line 41
def initialize(ev_hash,game,team_or_player=nil)
  super(ev_hash,game)
  
  set_from_player(team_or_player)
  set_target_player(team_or_player)
  set_team(team_or_player)
  set_roles
  set_changes

end

Public Instance Methods

actor()
Alias for: from_player
from_player() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 10
def from_player
  @from_player ||= (from_player_id.nil? ? nil : game.players.find(from_player_id) )
end
Also aliased as: actor
invitee()
Alias for: target_player
inviter()
Alias for: target_player
new_owner()
Alias for: target_player
player()
Alias for: target_player
target_player() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 17
def target_player 
  @tagert_player||= (target_player_id.nil? ? nil : game.players.find(target_player_id) )
end
Also aliased as: inviter, invitee, new_owner, player
team() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 35
def team
  @team ||=(team_id.nil? ? nil : game.teams.find(team_id))
end
two_player_event?() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 189
def two_player_event?
  [JoinAcceptedEvent,ChangeOfRolesAcceptedEvent,InviteSendEvent,InviteAcceptedEvent,InviteRejectedEvent, KickedOutEvent,RolesChangedEvent,TeamOwnershipTransferredEvent].include?(self.class)
end

Private Instance Methods

set_changes() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 105
def set_changes
  @changes=[]
  roles=[]
  return @changes if @ev_hash["changes"].nil?

  @ev_hash["changes"].keys.each do |role|
    chng={delta: [ @ev_hash["changes"][role]["old"], @ev_hash["changes"][role]["new"], role ]}
    @changes <<  chng
    roles << role if @ev_hash["changes"][role]["new"] == true
  end  
  @roles = (@roles+roles).uniq
  @changes
end
set_from_player(team_or_player) click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 52
def set_from_player(team_or_player)
  if @ev_hash["actor"].nil?
    if team_or_player.kind_of?(PlaylyfeClient::Player)
      @from_player_id=team_or_player.id
      @from_player_alias=team_or_player.alias
    else
      @from_player_id=nil
      @from_player_alias=""
      #raise "cannot create actor/from_player from hash #{@ev_hash} and player #{team_or_player}"
    end
  else    
    @from_player_id=@ev_hash["actor"]["id"]
    @from_player_alias=@ev_hash["actor"]["alias"]
  end  
end
set_roles() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 120
def set_roles
  @roles=[]
  return @roles if @ev_hash["roles"].nil?

  for k in @ev_hash["roles"].keys
    @roles <<  k if @ev_hash["roles"][k] 
  end  
  @roles
end
set_target_player(team_or_player) click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 73
def set_target_player(team_or_player)
  return if target_key.nil?
  
  if @ev_hash[target_key].nil?
    if two_player_event?
      if team_or_player.kind_of?(PlaylyfeClient::Player) 
        @target_player_id=team_or_player.id
        @target_player_alias=team_or_player.alias
      else
        raise "cannot create #{target_key} from hash #{@ev_hash} and player #{team_or_player}"  
      end
    end  
  else    
    @target_player_id=@ev_hash[target_key]["id"]
    @target_player_alias=@ev_hash[target_key]["alias"]
  end  
end
set_team(team_or_player) click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 91
def set_team(team_or_player)
  if @ev_hash["team"].nil?
    if team_or_player.kind_of?(PlaylyfeClient::Team)
      @team_id=team_or_player.id
      @team_name=team_or_player.name
    else
      raise "cannot create team from hash #{@ev_hash} and team #{team_or_player}"  
    end
  else    
    @team_id=@ev_hash["team"]["id"]
    @team_name=@ev_hash["team"]["name"]
  end  
end
target_key() click to toggle source
# File lib/playlyfe_client/v2/event/team_event.rb, line 69
def target_key
  nil
end