Skip to content

Instantly share code, notes, and snippets.

@amelialaundy
Created September 12, 2014 05:01
Show Gist options
  • Save amelialaundy/e26472926c83b1fd3f0f to your computer and use it in GitHub Desktop.
Save amelialaundy/e26472926c83b1fd3f0f to your computer and use it in GitHub Desktop.
amelia code example
class EventProcessor
def initialize
end
def self.process_all(json_array)
json_array.each do |action_info|
new.process(action_info)
end
end
def process(action_info)
method_name = action_info[:action].gsub('-', '_')
get_object_from_db(action_info)
send(method_name, action_info)
send_update(action_info)
end
private
def set_object_location(action_info)
@game_object.x = action_info[:x]
@game_object.y = action_info[:y]
@game_object.save
end
def remove_object(action_info)
@game_object.destroy
end
def add_points(action_info)
@game_object.points += action_info[:points]
@game_object.save
end
def get_object_from_db(action_info)
@game_object = GameObject.find(action_info[:object_id])
end
def send_update(action_info)
game = @game_object.game
Pusher["game-#{game.id}"].trigger(action_info[:action], game.to_json)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment