summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/DesignDocument-classes.dot102
-rw-r--r--docs/DesignDocument.md7
-rw-r--r--docs/Makefile2
3 files changed, 78 insertions, 33 deletions
diff --git a/docs/DesignDocument-classes.dot b/docs/DesignDocument-classes.dot
index c91f7b1..deaee46 100644
--- a/docs/DesignDocument-classes.dot
+++ b/docs/DesignDocument-classes.dot
@@ -2,7 +2,6 @@ digraph systemModel {
rankdir="LR";
splines="line";
- /*
subgraph _clusterModels {
label="Models"
node[shape="record"];
@@ -15,7 +14,6 @@ digraph systemModel {
Team[label="<main> Team"];
User[label="<main> User | <attr_role> role | <attr_pw> password hash"];
}
- */
subgraph _clusterViews {
label="views/";
@@ -193,33 +191,75 @@ digraph systemModel {
}
*/
- subgraph controller2view {
- MainController:index -> main_homepage;
- MainController:edit -> main_edit -> MainController:update -> main_edit;
-
- #LoginController:login -> common_permission_denied;
- #LoginController:logout -> common_invalid;
-
- SearchController:show_results -> search_results;
-
- MessagesController:new_alert -> messages_new_alert -> MessagesController:post_alert;
- MessagesController:show_private -> messages_private -> MessagesController:post_private -> messages_private;
-
- TournamentsController:index -> tournaments_index;
- TournamentsController:show -> tournaments_show;
- TournamentsController:new -> tournaments_new -> TournamentsController:create -> tournaments_edit -> TournamentsController:end;
- TournamentsController:edit -> tournaments_edit -> TournamentsController:update -> tournaments_edit;
-
- MatchesController:show -> matches_show;
- MatchesController:edit -> matches_edit -> MatchesController:update -> matches_edit;
-
- TeamsController:index -> teams_index;
- TeamsController:show -> teams_show;
- TeamsController:edit -> teams_edit -> TeamsController:update -> teams_edit;
-
- UsersController:index -> users_index;
- UsersController:show -> users_show;
- UsersController:new -> users_new -> UsersController:create -> users_edit -> UsersController:delete;
- UsersController:edit -> users_edit -> UsersController:update -> users_edit;
- }
+ ###################################################################
+ # controller/view relations
+ ###################################################################
+ MainController:index -> main_homepage;
+ MainController:edit -> main_edit -> MainController:update -> main_edit;
+
+ #LoginController:login -> common_permission_denied;
+ #LoginController:logout -> common_invalid;
+
+ SearchController:show_results -> search_results;
+
+ MessagesController:new_alert -> messages_new_alert -> MessagesController:post_alert;
+ MessagesController:show_private -> messages_private -> MessagesController:post_private -> messages_private;
+
+ TournamentsController:index -> tournaments_index;
+ TournamentsController:show -> tournaments_show;
+ TournamentsController:new -> tournaments_new -> TournamentsController:create -> tournaments_edit -> TournamentsController:end;
+ TournamentsController:edit -> tournaments_edit -> TournamentsController:update -> tournaments_edit;
+
+ MatchesController:show -> matches_show;
+ MatchesController:edit -> matches_edit -> MatchesController:update -> matches_edit;
+
+ TeamsController:index -> teams_index;
+ TeamsController:show -> teams_show;
+ TeamsController:edit -> teams_edit -> TeamsController:update -> teams_edit;
+
+ UsersController:index -> users_index;
+ UsersController:show -> users_show;
+ UsersController:new -> users_new -> UsersController:create -> users_edit -> UsersController:delete;
+ UsersController:edit -> users_edit -> UsersController:update -> users_edit;
+
+ ###################################################################
+ # controller/model relations
+ ###################################################################
+ Server -> MainController:edit;
+ MainController:update -> Server;
+
+ User -> LoginController:login;
+
+ Tournament -> SearchController:show_results;
+ Match -> SearchController:show_results;
+ Team -> SearchController:show_results;
+ User -> SearchController:show_results;
+
+ Tournament -> TournamentsController:index;
+ Tournament -> TournamentsController:show;
+ Match -> TournamentsController:show;
+ Tournament -> TournamentsController:edit;
+ TournamentsController:create -> Tournament;
+ TournamentsController:update -> Tournament;
+ TournamentsController:end -> Tournament;
+
+ Match -> MatchesController:index;
+ Match -> MatchesController:show;
+ Team -> MatchesController:show;
+ User -> MatchesController:show;
+ Match -> MatchesController:edit;
+ MatchesController:update -> Match;
+
+ Team -> TeamsController:index;
+ Team -> TeamsController:show;
+ User -> TeamsController:show;
+ Team -> TeamsController:edit;
+ TeamsController:update -> Team;
+
+ User -> UsersController:index;
+ User -> UsersController:show;
+ User -> UsersController:edit;
+ UsersController:create -> User;
+ UsersController:update -> User;
+ UsersController:delete -> User;
}
diff --git a/docs/DesignDocument.md b/docs/DesignDocument.md
index 928b839..374cb21 100644
--- a/docs/DesignDocument.md
+++ b/docs/DesignDocument.md
@@ -151,7 +151,7 @@ layouts/application.html (abstract)
`UserController#new()`. If a user is logged in, it displays a
logout button that causes a POST to `LoginController#logout()`.
It may contain an alert box of recent alerts submitted by a
- tournament host. It contains a searc form that is POSTed to
+ tournament host. It contains a search form that is POSTed to
`SearchController#show_results`. If the user is authorized to
publish alerts, it also contains a button that causes the browser
to GET `MessagesController#new_alert()`.
@@ -400,6 +400,9 @@ does not show interactions with the `User` model that solely check
authorization to perform an action. It does not show controller
methods calling the error views. It shows transitions from a view to
a controller *only* when that is the *primary* purpose of the view; many
-workflows can be interupted at any time.
+workflows can be interupted at any time. Arrows betwen models and
+controllers indicate which direction data is flowing. Any data
+flowing from a model to the method of a controller is implicitly
+passed to the view that method renders.
![](DesignDocument-classes.pdf)\
diff --git a/docs/Makefile b/docs/Makefile
index b646976..18c0dc6 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -22,3 +22,5 @@ DesignDocument.pdf.args = --table-of-contents --number-sections -f markdown+defi
clean:
rm -f -- *.pdf *.html
+
+.DELETE_ON_ERROR: