summaryrefslogtreecommitdiff
path: root/docs/DesignDocument.dot
diff options
context:
space:
mode:
Diffstat (limited to 'docs/DesignDocument.dot')
-rw-r--r--docs/DesignDocument.dot140
1 files changed, 80 insertions, 60 deletions
diff --git a/docs/DesignDocument.dot b/docs/DesignDocument.dot
index 3be050b..000256d 100644
--- a/docs/DesignDocument.dot
+++ b/docs/DesignDocument.dot
@@ -1,82 +1,102 @@
digraph systemModel {
rankdir="LR";
- node[shape="record"];
+ splines="line";
- #subgraph clusterModels {
- # label="Models"
- User[label="<name> User | <attr_role> role | <attr_pw> password hash"];
- #}
+ subgraph _clusterModels {
+ label="Models"
+ node[shape="record"];
+
+ BaseModel[label="<main> ActiveRecord::Base (abstract)"]
+ User[label="<main> User | <attr_role> role | <attr_pw> password hash"];
+ }
- ApplicationController[label="ApplicationController (abstract base class)"];
- #subgraph clusterControllers {
- # label="Controllers";
- MainController[label="<name> MainController | <index> show_homepage() | <edit> edit_settings() | <update> update_settings()"];
- TournamentController[label="<name> TournamentController | <index> listTournaments | <new> newTournament | <show> showTournament | <edit> editTournament | <delete> endTournament"];
- MessageController;
- LoginController[label="<name> LoginController | <index> showForm | <login> login | <logout> logout"];
- SearchController;
- UserController;
- MatchController;
- #}
- #subgraph clusterViews {
- # label="views/";
- subgraph clusterCommonViews {
+ subgraph _clusterControllers {
+ label="Controllers";
+ node[shape="record"];
+
+ ApplicationController[label="<main> ApplicationController (abstract)"];
+
+ MainController[label="<main> MainController | <index> show_homepage() | <edit> edit_settings() | <update> update_settings()"];
+ TournamentsController[label="<main> TournamentsController | <index> index() | <new> new() | <create> create() | <show> show() | <edit> edit() | <update> update() | <end> end()"];
+ MessagesController[label="<main> MessagesController"];
+ LoginController[label="<main> LoginController | <login> login() | <logout> logout()"];
+ SearchController[label="<main> SearchController"];
+ UsersController[label="<main> UsersController"];
+ MatchesController[label="<main> MatchesController"];
+ }
+
+ subgraph _clusterViews {
+ label="views/";
+ node[shape="rectangle"]
+
+ layouts_application[label="layouts/application.html (abstract)"]
+
+ subgraph clusterViewsCommon {
label="views/common/";
common_permission_denied;
common_invalid;
}
- subgraph clusterMainViews {
+
+ subgraph clusterViewsMain {
label="views/main/";
main_homepage;
main_edit;
}
- subgraph clusterLoginViews {
- label="views/login/";
- login_form
- }
- subgraph clusterTournamentViews {
+ subgraph clusterViewsTournament {
label="views/tournament/";
- tournament_index;
- tournament_new;
- tournament_show;
- tournament_edit;
+ tournaments_index;
+ tournaments_new;
+ tournaments_show;
+ tournaments_edit;
}
- subgraph clusterMessageViews {
- label="views/message/";
- message_private;
- message_new_alert;
+ subgraph clusterViewsMessages {
+ label="views/messages/";
+ messages_private;
+ messages_new_alert;
}
- #}
+ }
- MainController -> ApplicationController[arrowhead="onormal"];
- MainController:index -> main_homepage;
- MainController:edit -> main_edit;
- MainController:edit -> common_permission_denied;
- MainController:update -> main_edit;
- MainController:update -> common_permission_denied;
+ subgraph inheritance {
+ edge[arrowhead="onormal"];
+ MainController:main -> ApplicationController;
+ ApplicationController -> MainController:main[style=invis];
+ TournamentsController:main -> ApplicationController;
+ ApplicationController -> TournamentsController:main[style=invis];
+ MessagesController:main -> ApplicationController;
+ ApplicationController -> MessagesController:main[style=invis];
+ LoginController:main -> ApplicationController;
+ ApplicationController -> LoginController:main[style=invis];
+ SearchController:main -> ApplicationController;
+ ApplicationController -> SearchController:main[style=invis];
+ UsersController:main -> ApplicationController;
+ ApplicationController -> UsersController:main[style=invis];
+ MatchesController:main -> ApplicationController;
+ ApplicationController -> MatchesController:main[style=invis];
+ }
- TournamentController -> ApplicationController[arrowhead="onormal"];
- TournamentController:index -> tournament_index;
- TournamentController:new -> tournament_new;
- TournamentController:show -> tournament_show;
- TournamentController:edit -> tournament_edit;
- TournamentController:edit -> common_permission_denied;
- TournamentController:delete -> common_permission_denied;
+ subgraph controller2view {
+ layouts_application -> LoginController:login;
+ layouts_application -> LoginController:logout;
- MessageController -> ApplicationController[arrowhead="onormal"];
- MessageController -> message_private;
- MessageController -> message_new_alert;
+ MainController:index -> main_homepage;
+ MainController:edit -> main_edit -> MainController:update;
+ MainController:edit -> common_permission_denied;
+ MainController:update -> main_edit;
+ MainController:update -> common_permission_denied;
+ TournamentsController:index -> tournaments_index;
+ TournamentsController:new -> tournaments_new -> TournamentsController:create;
+ TournamentsController:create -> tournaments_edit -> TournamentsController:end;
+ TournamentsController:show -> tournaments_show;
+ TournamentsController:edit -> tournaments_edit -> TournamentsController:update;
+ TournamentsController:update -> tournaments_edit
+ TournamentsController:edit -> common_permission_denied;
+ TournamentsController:end -> common_permission_denied;
- LoginController -> ApplicationController[arrowhead="onormal"];
- LoginController:index -> login_form;
- LoginController:login -> common_permission_denied;
- LoginController:logout -> common_invalid;
-
- SearchController -> ApplicationController[arrowhead="onormal"];
-
- UserController -> ApplicationController[arrowhead="onormal"];
-
- MatchController -> ApplicationController[arrowhead="onormal"];
+ MessagesController -> messages_private;
+ MessagesController -> messages_new_alert;
+ LoginController:login -> common_permission_denied;
+ LoginController:logout -> common_invalid;
+ }
}