Add controller and model diagrams via railroady

This commit is contained in:
Thor77 2018-11-12 13:01:48 +01:00
parent c9421e6d42
commit 6908472def
6 changed files with 1152 additions and 0 deletions

View File

@ -42,6 +42,7 @@ group :development do
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'railroady'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem

View File

@ -90,6 +90,7 @@ GEM
rack (2.0.5)
rack-test (1.1.0)
rack (>= 1.0, < 3)
railroady (1.5.3)
rails (5.2.1)
actioncable (= 5.2.1)
actionmailer (= 5.2.1)
@ -155,6 +156,7 @@ DEPENDENCIES
devise_token_auth
listen (>= 3.0.5, < 3.2)
puma (~> 3.11)
railroady
rails (~> 5.2.1)
spring
spring-watcher-listen (~> 2.0.0)

223
doc/controllers_brief.svg Normal file
View File

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: controllers_diagram Pages: 1 -->
<svg width="1916pt" height="1215pt"
viewBox="0.00 0.00 1915.79 1215.42" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1211.4215)">
<title>controllers_diagram</title>
<polygon fill="transparent" stroke="transparent" points="-4,4 -4,-1211.4215 1911.7926,-1211.4215 1911.7926,4 -4,4"/>
<!-- _diagram_info -->
<g id="node1" class="node">
<title>_diagram_info</title>
<text text-anchor="start" x="1000" y="-931.6" font-family="Times,serif" font-size="13.00" fill="#000000">Controllers diagram</text>
<text text-anchor="start" x="1000" y="-917.6" font-family="Times,serif" font-size="13.00" fill="#000000">Date: Nov 12 2018 &#45; 13:00</text>
<text text-anchor="start" x="1000" y="-903.6" font-family="Times,serif" font-size="13.00" fill="#000000">Migration version: 0</text>
<text text-anchor="start" x="1000" y="-889.6" font-family="Times,serif" font-size="13.00" fill="#000000">Generated by RailRoady 1.5.3</text>
<text text-anchor="start" x="1000" y="-875.6" font-family="Times,serif" font-size="13.00" fill="#000000">http://railroady.prestonlee.com</text>
</g>
<!-- ApplicationController -->
<g id="node2" class="node">
<title>ApplicationController</title>
<ellipse fill="none" stroke="#000000" cx="88.3922" cy="-701.8065" rx="88.2844" ry="18"/>
<text text-anchor="middle" x="88.3922" y="-698.1065" font-family="Times,serif" font-size="14.00" fill="#000000">ApplicationController</text>
</g>
<!-- DeviseController -->
<g id="node8" class="node">
<title>DeviseController</title>
<ellipse fill="none" stroke="#000000" cx="619.5265" cy="-653.4303" rx="70.6878" ry="18"/>
<text text-anchor="middle" x="619.5265" y="-649.7303" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseController</text>
</g>
<!-- ApplicationController&#45;&gt;DeviseController -->
<g id="edge1" class="edge">
<title>ApplicationController&#45;&gt;DeviseController</title>
<path fill="none" stroke="#000000" d="M169.3489,-694.4329C274.1836,-684.8844 454.9841,-668.4169 552.5097,-659.5342"/>
</g>
<!-- ActiveStorage::DiskController -->
<g id="node3" class="node">
<title>ActiveStorage::DiskController</title>
<ellipse fill="none" stroke="#000000" cx="922.3397" cy="-576" rx="116.1796" ry="18"/>
<text text-anchor="middle" x="922.3397" y="-572.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::DiskController</text>
</g>
<!-- ActiveStorage::RepresentationsController -->
<g id="node4" class="node">
<title>ActiveStorage::RepresentationsController</title>
<ellipse fill="none" stroke="#000000" cx="1023.9862" cy="-762" rx="155.9723" ry="18"/>
<text text-anchor="middle" x="1023.9862" y="-758.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::RepresentationsController</text>
</g>
<!-- ActiveStorage::BaseController -->
<g id="node5" class="node">
<title>ActiveStorage::BaseController</title>
<ellipse fill="none" stroke="#000000" cx="860.9896" cy="-328" rx="116.9792" ry="18"/>
<text text-anchor="middle" x="860.9896" y="-324.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::BaseController</text>
</g>
<!-- ActiveStorage::DirectUploadsController -->
<g id="node6" class="node">
<title>ActiveStorage::DirectUploadsController</title>
<ellipse fill="none" stroke="#000000" cx="956.7866" cy="-452" rx="150.5735" ry="18"/>
<text text-anchor="middle" x="956.7866" y="-448.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::DirectUploadsController</text>
</g>
<!-- ActiveStorage::BlobsController -->
<g id="node7" class="node">
<title>ActiveStorage::BlobsController</title>
<ellipse fill="none" stroke="#000000" cx="926.2393" cy="-204" rx="120.4791" ry="18"/>
<text text-anchor="middle" x="926.2393" y="-200.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::BlobsController</text>
</g>
<!-- Devise::UnlocksController -->
<g id="node9" class="node">
<title>Devise::UnlocksController</title>
<ellipse fill="none" stroke="#000000" cx="331.3377" cy="-140.9122" rx="104.7816" ry="18"/>
<text text-anchor="middle" x="331.3377" y="-137.2122" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::UnlocksController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::UnlocksController -->
<g id="edge2" class="edge">
<title>DeviseController&#45;&gt;Devise::UnlocksController</title>
<path fill="none" stroke="#000000" d="M609.4386,-635.49C564.9068,-556.2941 386.1602,-238.4091 341.493,-158.9725"/>
</g>
<!-- Devise::RegistrationsController -->
<g id="node10" class="node">
<title>Devise::RegistrationsController</title>
<ellipse fill="none" stroke="#000000" cx="439.5497" cy="-1189.4215" rx="122.3786" ry="18"/>
<text text-anchor="middle" x="439.5497" y="-1185.7215" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::RegistrationsController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::RegistrationsController -->
<g id="edge3" class="edge">
<title>DeviseController&#45;&gt;Devise::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M613.4352,-671.5708C585.8958,-753.5862 473.1757,-1089.2794 445.6394,-1171.2855"/>
</g>
<!-- Devise::ConfirmationsController -->
<g id="node11" class="node">
<title>Devise::ConfirmationsController</title>
<ellipse fill="none" stroke="#000000" cx="720.8524" cy="-1164.8114" rx="126.1777" ry="18"/>
<text text-anchor="middle" x="720.8524" y="-1161.1114" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::ConfirmationsController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::ConfirmationsController -->
<g id="edge4" class="edge">
<title>DeviseController&#45;&gt;Devise::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M623.1327,-671.6306C638.8737,-751.0737 701.4766,-1067.0241 717.2366,-1146.5628"/>
</g>
<!-- Devise::OmniauthCallbacksController -->
<g id="node12" class="node">
<title>Devise::OmniauthCallbacksController</title>
<ellipse fill="none" stroke="#000000" cx="202.7653" cy="-993.7808" rx="145.6742" ry="18"/>
<text text-anchor="middle" x="202.7653" y="-990.0808" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::OmniauthCallbacksController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::OmniauthCallbacksController -->
<g id="edge5" class="edge">
<title>DeviseController&#45;&gt;Devise::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M598.2862,-670.7762C527.0431,-728.9574 296.9997,-916.8238 224.7143,-975.856"/>
</g>
<!-- Devise::PasswordsController -->
<g id="node13" class="node">
<title>Devise::PasswordsController</title>
<ellipse fill="none" stroke="#000000" cx="142.9066" cy="-394.6565" rx="112.3801" ry="18"/>
<text text-anchor="middle" x="142.9066" y="-390.9565" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::PasswordsController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::PasswordsController -->
<g id="edge6" class="edge">
<title>DeviseController&#45;&gt;Devise::PasswordsController</title>
<path fill="none" stroke="#000000" d="M589.3502,-637.0465C504.1216,-590.7729 262.1245,-459.3841 174.8135,-411.9799"/>
</g>
<!-- Devise::SessionsController -->
<g id="node14" class="node">
<title>Devise::SessionsController</title>
<ellipse fill="none" stroke="#000000" cx="607.142" cy="-159.7027" rx="105.8812" ry="18"/>
<text text-anchor="middle" x="607.142" y="-156.0027" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::SessionsController</text>
</g>
<!-- DeviseController&#45;&gt;Devise::SessionsController -->
<g id="edge7" class="edge">
<title>DeviseController&#45;&gt;Devise::SessionsController</title>
<path fill="none" stroke="#000000" d="M619.071,-635.2727C617.1269,-557.767 609.5345,-255.0834 607.5951,-177.7641"/>
</g>
<!-- DeviseTokenAuth::ApplicationController -->
<g id="node18" class="node">
<title>DeviseTokenAuth::ApplicationController</title>
<ellipse fill="none" stroke="#000000" cx="1235.8747" cy="-574.4514" rx="155.1726" ry="18"/>
<text text-anchor="middle" x="1235.8747" y="-570.7514" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::ApplicationController</text>
</g>
<!-- DeviseController&#45;&gt;DeviseTokenAuth::ApplicationController -->
<g id="edge11" class="edge">
<title>DeviseController&#45;&gt;DeviseTokenAuth::ApplicationController</title>
<path fill="none" stroke="#000000" d="M682.8773,-645.3125C788.858,-631.7321 1003.0985,-604.2793 1131.5819,-587.8155"/>
</g>
<!-- DeviseTokenAuth::UnlocksController -->
<g id="node15" class="node">
<title>DeviseTokenAuth::UnlocksController</title>
<ellipse fill="none" stroke="#000000" cx="1127.8511" cy="-77.476" rx="142.9746" ry="18"/>
<text text-anchor="middle" x="1127.8511" y="-73.776" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::UnlocksController</text>
</g>
<!-- DeviseTokenAuth::RegistrationsController -->
<g id="node16" class="node">
<title>DeviseTokenAuth::RegistrationsController</title>
<ellipse fill="none" stroke="#000000" cx="1638.9429" cy="-213.619" rx="160.5715" ry="18"/>
<text text-anchor="middle" x="1638.9429" y="-209.919" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::RegistrationsController</text>
</g>
<!-- DeviseTokenAuth::ConfirmationsController -->
<g id="node17" class="node">
<title>DeviseTokenAuth::ConfirmationsController</title>
<ellipse fill="none" stroke="#000000" cx="1399.6209" cy="-18" rx="165.1707" ry="18"/>
<text text-anchor="middle" x="1399.6209" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::ConfirmationsController</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::UnlocksController -->
<g id="edge8" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::UnlocksController</title>
<path fill="none" stroke="#000000" d="M1231.902,-556.1744C1214.9444,-478.1588 1148.7197,-173.4842 1131.8028,-95.6563"/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::RegistrationsController -->
<g id="edge9" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M1255.8629,-556.5576C1324.4858,-495.1255 1550.0276,-293.2172 1618.834,-231.6207"/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::ConfirmationsController -->
<g id="edge10" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M1241.2298,-556.2536C1266.033,-471.9659 1369.5902,-120.0521 1394.3068,-36.0589"/>
</g>
<!-- DeviseTokenAuth::OmniauthCallbacksController -->
<g id="node19" class="node">
<title>DeviseTokenAuth::OmniauthCallbacksController</title>
<ellipse fill="none" stroke="#000000" cx="1722.2108" cy="-807.7058" rx="184.6673" ry="18"/>
<text text-anchor="middle" x="1722.2108" y="-804.0058" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::OmniauthCallbacksController</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::OmniauthCallbacksController -->
<g id="edge12" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M1272.429,-591.9834C1362.558,-635.2106 1594.6597,-746.5303 1685.2324,-789.9704"/>
</g>
<!-- DeviseTokenAuth::TokenValidationsController -->
<g id="node20" class="node">
<title>DeviseTokenAuth::TokenValidationsController</title>
<ellipse fill="none" stroke="#000000" cx="1553.1359" cy="-1051.6681" rx="174.6691" ry="18"/>
<text text-anchor="middle" x="1553.1359" y="-1047.9681" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::TokenValidationsController</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::TokenValidationsController -->
<g id="edge13" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::TokenValidationsController</title>
<path fill="none" stroke="#000000" d="M1247.9243,-592.5761C1298.1792,-668.1683 1490.7967,-957.899 1541.0743,-1033.5253"/>
</g>
<!-- DeviseTokenAuth::PasswordsController -->
<g id="node21" class="node">
<title>DeviseTokenAuth::PasswordsController</title>
<ellipse fill="none" stroke="#000000" cx="1247.3304" cy="-1095.6725" rx="150.5735" ry="18"/>
<text text-anchor="middle" x="1247.3304" y="-1091.9725" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::PasswordsController</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::PasswordsController -->
<g id="edge14" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::PasswordsController</title>
<path fill="none" stroke="#000000" d="M1236.2757,-592.6963C1238.0479,-673.3271 1245.1671,-997.2435 1246.9327,-1077.5757"/>
</g>
<!-- DeviseTokenAuth::SessionsController -->
<g id="node22" class="node">
<title>DeviseTokenAuth::SessionsController</title>
<ellipse fill="none" stroke="#000000" cx="1763.5054" cy="-498.1813" rx="144.0747" ry="18"/>
<text text-anchor="middle" x="1763.5054" y="-494.4813" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::SessionsController</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::SessionsController -->
<g id="edge15" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::SessionsController</title>
<path fill="none" stroke="#000000" d="M1333.2652,-560.3734C1428.9967,-546.5352 1574.1448,-525.5537 1668.9026,-511.8563"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,475 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: controllers_diagram Pages: 1 -->
<svg width="2180pt" height="1698pt"
viewBox="0.00 0.00 2179.53 1698.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1694)">
<title>controllers_diagram</title>
<polygon fill="transparent" stroke="transparent" points="-4,4 -4,-1694 2175.5316,-1694 2175.5316,4 -4,4"/>
<!-- _diagram_info -->
<g id="node1" class="node">
<title>_diagram_info</title>
<text text-anchor="start" x="1756" y="-1507.6" font-family="Times,serif" font-size="13.00" fill="#000000">Controllers diagram</text>
<text text-anchor="start" x="1756" y="-1493.6" font-family="Times,serif" font-size="13.00" fill="#000000">Date: Nov 12 2018 &#45; 13:00</text>
<text text-anchor="start" x="1756" y="-1479.6" font-family="Times,serif" font-size="13.00" fill="#000000">Migration version: 0</text>
<text text-anchor="start" x="1756" y="-1465.6" font-family="Times,serif" font-size="13.00" fill="#000000">Generated by RailRoady 1.5.3</text>
<text text-anchor="start" x="1756" y="-1451.6" font-family="Times,serif" font-size="13.00" fill="#000000">http://railroady.prestonlee.com</text>
</g>
<!-- ApplicationController -->
<g id="node2" class="node">
<title>ApplicationController</title>
<path fill="none" stroke="#000000" d="M12,-802.0432C12,-802.0432 182,-802.0432 182,-802.0432 188,-802.0432 194,-808.0432 194,-814.0432 194,-814.0432 194,-884.0432 194,-884.0432 194,-890.0432 188,-896.0432 182,-896.0432 182,-896.0432 12,-896.0432 12,-896.0432 6,-896.0432 0,-890.0432 0,-884.0432 0,-884.0432 0,-814.0432 0,-814.0432 0,-808.0432 6,-802.0432 12,-802.0432"/>
<text text-anchor="middle" x="97" y="-880.8432" font-family="Times,serif" font-size="14.00" fill="#000000">ApplicationController</text>
<polyline fill="none" stroke="#000000" points="0,-873.0432 194,-873.0432 "/>
<polyline fill="none" stroke="#000000" points="0,-849.0432 194,-849.0432 "/>
<text text-anchor="start" x="8" y="-833.8432" font-family="Times,serif" font-size="14.00" fill="#000000">configure_permitted_parameters</text>
<polyline fill="none" stroke="#000000" points="0,-826.0432 194,-826.0432 "/>
</g>
<!-- DeviseController -->
<g id="node8" class="node">
<title>DeviseController</title>
<path fill="none" stroke="#000000" d="M636.0842,-595.8377C636.0842,-595.8377 803.0842,-595.8377 803.0842,-595.8377 809.0842,-595.8377 815.0842,-601.8377 815.0842,-607.8377 815.0842,-607.8377 815.0842,-976.8377 815.0842,-976.8377 815.0842,-982.8377 809.0842,-988.8377 803.0842,-988.8377 803.0842,-988.8377 636.0842,-988.8377 636.0842,-988.8377 630.0842,-988.8377 624.0842,-982.8377 624.0842,-976.8377 624.0842,-976.8377 624.0842,-607.8377 624.0842,-607.8377 624.0842,-601.8377 630.0842,-595.8377 636.0842,-595.8377"/>
<text text-anchor="middle" x="719.5842" y="-973.6377" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseController</text>
<polyline fill="none" stroke="#000000" points="624.0842,-965.8377 815.0842,-965.8377 "/>
<text text-anchor="start" x="632.0842" y="-950.6377" font-family="Times,serif" font-size="14.00" fill="#000000">_prefixes</text>
<polyline fill="none" stroke="#000000" points="624.0842,-942.8377 815.0842,-942.8377 "/>
<text text-anchor="start" x="632.0842" y="-927.6377" font-family="Times,serif" font-size="14.00" fill="#000000">assert_is_devise_resource!</text>
<text text-anchor="start" x="632.0842" y="-912.6377" font-family="Times,serif" font-size="14.00" fill="#000000">clean_up_passwords</text>
<text text-anchor="start" x="632.0842" y="-897.6377" font-family="Times,serif" font-size="14.00" fill="#000000">devise_i18n_options</text>
<text text-anchor="start" x="632.0842" y="-882.6377" font-family="Times,serif" font-size="14.00" fill="#000000">devise_mapping</text>
<text text-anchor="start" x="632.0842" y="-867.6377" font-family="Times,serif" font-size="14.00" fill="#000000">find_message</text>
<text text-anchor="start" x="632.0842" y="-852.6377" font-family="Times,serif" font-size="14.00" fill="#000000">navigational_formats</text>
<text text-anchor="start" x="632.0842" y="-837.6377" font-family="Times,serif" font-size="14.00" fill="#000000">require_no_authentication</text>
<text text-anchor="start" x="632.0842" y="-822.6377" font-family="Times,serif" font-size="14.00" fill="#000000">resource</text>
<text text-anchor="start" x="632.0842" y="-807.6377" font-family="Times,serif" font-size="14.00" fill="#000000">resource=</text>
<text text-anchor="start" x="632.0842" y="-792.6377" font-family="Times,serif" font-size="14.00" fill="#000000">resource_class</text>
<text text-anchor="start" x="632.0842" y="-777.6377" font-family="Times,serif" font-size="14.00" fill="#000000">resource_name</text>
<text text-anchor="start" x="632.0842" y="-762.6377" font-family="Times,serif" font-size="14.00" fill="#000000">resource_params</text>
<text text-anchor="start" x="632.0842" y="-747.6377" font-family="Times,serif" font-size="14.00" fill="#000000">respond_with_navigational</text>
<text text-anchor="start" x="632.0842" y="-732.6377" font-family="Times,serif" font-size="14.00" fill="#000000">scope_name</text>
<text text-anchor="start" x="632.0842" y="-717.6377" font-family="Times,serif" font-size="14.00" fill="#000000">set_flash_message</text>
<text text-anchor="start" x="632.0842" y="-702.6377" font-family="Times,serif" font-size="14.00" fill="#000000">set_flash_message!</text>
<text text-anchor="start" x="632.0842" y="-687.6377" font-family="Times,serif" font-size="14.00" fill="#000000">set_minimum_password_length</text>
<text text-anchor="start" x="632.0842" y="-672.6377" font-family="Times,serif" font-size="14.00" fill="#000000">signed_in_resource</text>
<text text-anchor="start" x="632.0842" y="-657.6377" font-family="Times,serif" font-size="14.00" fill="#000000">successfully_sent?</text>
<text text-anchor="start" x="632.0842" y="-642.6377" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<text text-anchor="start" x="632.0842" y="-627.6377" font-family="Times,serif" font-size="14.00" fill="#000000">unknown_action!</text>
<polyline fill="none" stroke="#000000" points="624.0842,-619.8377 815.0842,-619.8377 "/>
</g>
<!-- ApplicationController&#45;&gt;DeviseController -->
<g id="edge1" class="edge">
<title>ApplicationController&#45;&gt;DeviseController</title>
<path fill="none" stroke="#000000" d="M194.2788,-840.183C311.5833,-829.4988 507.4727,-811.657 624.0098,-801.0427"/>
</g>
<!-- ActiveStorage::DiskController -->
<g id="node3" class="node">
<title>ActiveStorage::DiskController</title>
<path fill="none" stroke="#000000" d="M1076,-912.5C1076,-912.5 1231,-912.5 1231,-912.5 1237,-912.5 1243,-918.5 1243,-924.5 1243,-924.5 1243,-1068.5 1243,-1068.5 1243,-1074.5 1237,-1080.5 1231,-1080.5 1231,-1080.5 1076,-1080.5 1076,-1080.5 1070,-1080.5 1064,-1074.5 1064,-1068.5 1064,-1068.5 1064,-924.5 1064,-924.5 1064,-918.5 1070,-912.5 1076,-912.5"/>
<text text-anchor="middle" x="1153.5" y="-1065.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::DiskController</text>
<polyline fill="none" stroke="#000000" points="1064,-1057.5 1243,-1057.5 "/>
<text text-anchor="start" x="1072" y="-1042.3" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<text text-anchor="start" x="1072" y="-1027.3" font-family="Times,serif" font-size="14.00" fill="#000000">update</text>
<polyline fill="none" stroke="#000000" points="1064,-1019.5 1243,-1019.5 "/>
<polyline fill="none" stroke="#000000" points="1064,-995.5 1243,-995.5 "/>
<text text-anchor="start" x="1072" y="-980.3" font-family="Times,serif" font-size="14.00" fill="#000000">_layout</text>
<text text-anchor="start" x="1072" y="-965.3" font-family="Times,serif" font-size="14.00" fill="#000000">acceptable_content?</text>
<text text-anchor="start" x="1072" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">decode_verified_key</text>
<text text-anchor="start" x="1072" y="-935.3" font-family="Times,serif" font-size="14.00" fill="#000000">decode_verified_token</text>
<text text-anchor="start" x="1072" y="-920.3" font-family="Times,serif" font-size="14.00" fill="#000000">disk_service</text>
</g>
<!-- ActiveStorage::RepresentationsController -->
<g id="node4" class="node">
<title>ActiveStorage::RepresentationsController</title>
<path fill="none" stroke="#000000" d="M924,-608.5C924,-608.5 1140,-608.5 1140,-608.5 1146,-608.5 1152,-614.5 1152,-620.5 1152,-620.5 1152,-689.5 1152,-689.5 1152,-695.5 1146,-701.5 1140,-701.5 1140,-701.5 924,-701.5 924,-701.5 918,-701.5 912,-695.5 912,-689.5 912,-689.5 912,-620.5 912,-620.5 912,-614.5 918,-608.5 924,-608.5"/>
<text text-anchor="middle" x="1032" y="-686.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::RepresentationsController</text>
<polyline fill="none" stroke="#000000" points="912,-678.5 1152,-678.5 "/>
<text text-anchor="start" x="920" y="-663.3" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="912,-655.5 1152,-655.5 "/>
<polyline fill="none" stroke="#000000" points="912,-631.5 1152,-631.5 "/>
<text text-anchor="start" x="920" y="-616.3" font-family="Times,serif" font-size="14.00" fill="#000000">_layout</text>
</g>
<!-- ActiveStorage::BaseController -->
<g id="node5" class="node">
<title>ActiveStorage::BaseController</title>
<path fill="none" stroke="#000000" d="M924,-152.5C924,-152.5 1080,-152.5 1080,-152.5 1086,-152.5 1092,-158.5 1092,-164.5 1092,-164.5 1092,-234.5 1092,-234.5 1092,-240.5 1086,-246.5 1080,-246.5 1080,-246.5 924,-246.5 924,-246.5 918,-246.5 912,-240.5 912,-234.5 912,-234.5 912,-164.5 912,-164.5 912,-158.5 918,-152.5 924,-152.5"/>
<text text-anchor="middle" x="1002" y="-231.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::BaseController</text>
<polyline fill="none" stroke="#000000" points="912,-223.5 1092,-223.5 "/>
<polyline fill="none" stroke="#000000" points="912,-199.5 1092,-199.5 "/>
<polyline fill="none" stroke="#000000" points="912,-175.5 1092,-175.5 "/>
<text text-anchor="start" x="920" y="-160.3" font-family="Times,serif" font-size="14.00" fill="#000000">_layout</text>
</g>
<!-- ActiveStorage::DirectUploadsController -->
<g id="node6" class="node">
<title>ActiveStorage::DirectUploadsController</title>
<path fill="none" stroke="#000000" d="M1076,-380.5C1076,-380.5 1284,-380.5 1284,-380.5 1290,-380.5 1296,-386.5 1296,-392.5 1296,-392.5 1296,-491.5 1296,-491.5 1296,-497.5 1290,-503.5 1284,-503.5 1284,-503.5 1076,-503.5 1076,-503.5 1070,-503.5 1064,-497.5 1064,-491.5 1064,-491.5 1064,-392.5 1064,-392.5 1064,-386.5 1070,-380.5 1076,-380.5"/>
<text text-anchor="middle" x="1180" y="-488.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::DirectUploadsController</text>
<polyline fill="none" stroke="#000000" points="1064,-480.5 1296,-480.5 "/>
<text text-anchor="start" x="1072" y="-465.3" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<polyline fill="none" stroke="#000000" points="1064,-457.5 1296,-457.5 "/>
<polyline fill="none" stroke="#000000" points="1064,-433.5 1296,-433.5 "/>
<text text-anchor="start" x="1072" y="-418.3" font-family="Times,serif" font-size="14.00" fill="#000000">_layout</text>
<text text-anchor="start" x="1072" y="-403.3" font-family="Times,serif" font-size="14.00" fill="#000000">blob_args</text>
<text text-anchor="start" x="1072" y="-388.3" font-family="Times,serif" font-size="14.00" fill="#000000">direct_upload_json</text>
</g>
<!-- ActiveStorage::BlobsController -->
<g id="node7" class="node">
<title>ActiveStorage::BlobsController</title>
<path fill="none" stroke="#000000" d="M1456,-1596.5C1456,-1596.5 1617,-1596.5 1617,-1596.5 1623,-1596.5 1629,-1602.5 1629,-1608.5 1629,-1608.5 1629,-1677.5 1629,-1677.5 1629,-1683.5 1623,-1689.5 1617,-1689.5 1617,-1689.5 1456,-1689.5 1456,-1689.5 1450,-1689.5 1444,-1683.5 1444,-1677.5 1444,-1677.5 1444,-1608.5 1444,-1608.5 1444,-1602.5 1450,-1596.5 1456,-1596.5"/>
<text text-anchor="middle" x="1536.5" y="-1674.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::BlobsController</text>
<polyline fill="none" stroke="#000000" points="1444,-1666.5 1629,-1666.5 "/>
<text text-anchor="start" x="1452" y="-1651.3" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="1444,-1643.5 1629,-1643.5 "/>
<polyline fill="none" stroke="#000000" points="1444,-1619.5 1629,-1619.5 "/>
<text text-anchor="start" x="1452" y="-1604.3" font-family="Times,serif" font-size="14.00" fill="#000000">_layout</text>
</g>
<!-- Devise::UnlocksController -->
<g id="node9" class="node">
<title>Devise::UnlocksController</title>
<path fill="none" stroke="#000000" d="M266.2756,-115.075C266.2756,-115.075 497.2756,-115.075 497.2756,-115.075 503.2756,-115.075 509.2756,-121.075 509.2756,-127.075 509.2756,-127.075 509.2756,-256.075 509.2756,-256.075 509.2756,-262.075 503.2756,-268.075 497.2756,-268.075 497.2756,-268.075 266.2756,-268.075 266.2756,-268.075 260.2756,-268.075 254.2756,-262.075 254.2756,-256.075 254.2756,-256.075 254.2756,-127.075 254.2756,-127.075 254.2756,-121.075 260.2756,-115.075 266.2756,-115.075"/>
<text text-anchor="middle" x="381.7756" y="-252.875" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::UnlocksController</text>
<polyline fill="none" stroke="#000000" points="254.2756,-245.075 509.2756,-245.075 "/>
<text text-anchor="start" x="262.2756" y="-229.875" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="262.2756" y="-214.875" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<text text-anchor="start" x="262.2756" y="-199.875" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="254.2756,-192.075 509.2756,-192.075 "/>
<text text-anchor="start" x="262.2756" y="-176.875" font-family="Times,serif" font-size="14.00" fill="#000000">after_sending_unlock_instructions_path_for</text>
<text text-anchor="start" x="262.2756" y="-161.875" font-family="Times,serif" font-size="14.00" fill="#000000">after_unlock_path_for</text>
<text text-anchor="start" x="262.2756" y="-146.875" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<polyline fill="none" stroke="#000000" points="254.2756,-139.075 509.2756,-139.075 "/>
</g>
<!-- DeviseController&#45;&gt;Devise::UnlocksController -->
<g id="edge2" class="edge">
<title>DeviseController&#45;&gt;Devise::UnlocksController</title>
<path fill="none" stroke="#000000" d="M623.9109,-622.1913C558.4605,-505.7936 474.8171,-357.0411 424.9267,-268.3155"/>
</g>
<!-- Devise::RegistrationsController -->
<g id="node10" class="node">
<title>Devise::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M425.6193,-1261.6151C425.6193,-1261.6151 591.6193,-1261.6151 591.6193,-1261.6151 597.6193,-1261.6151 603.6193,-1267.6151 603.6193,-1273.6151 603.6193,-1273.6151 603.6193,-1567.6151 603.6193,-1567.6151 603.6193,-1573.6151 597.6193,-1579.6151 591.6193,-1579.6151 591.6193,-1579.6151 425.6193,-1579.6151 425.6193,-1579.6151 419.6193,-1579.6151 413.6193,-1573.6151 413.6193,-1567.6151 413.6193,-1567.6151 413.6193,-1273.6151 413.6193,-1273.6151 413.6193,-1267.6151 419.6193,-1261.6151 425.6193,-1261.6151"/>
<text text-anchor="middle" x="508.6193" y="-1564.4151" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::RegistrationsController</text>
<polyline fill="none" stroke="#000000" points="413.6193,-1556.6151 603.6193,-1556.6151 "/>
<text text-anchor="start" x="421.6193" y="-1541.4151" font-family="Times,serif" font-size="14.00" fill="#000000">cancel</text>
<text text-anchor="start" x="421.6193" y="-1526.4151" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="421.6193" y="-1511.4151" font-family="Times,serif" font-size="14.00" fill="#000000">destroy</text>
<text text-anchor="start" x="421.6193" y="-1496.4151" font-family="Times,serif" font-size="14.00" fill="#000000">edit</text>
<text text-anchor="start" x="421.6193" y="-1481.4151" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<text text-anchor="start" x="421.6193" y="-1466.4151" font-family="Times,serif" font-size="14.00" fill="#000000">update</text>
<polyline fill="none" stroke="#000000" points="413.6193,-1458.6151 603.6193,-1458.6151 "/>
<text text-anchor="start" x="421.6193" y="-1443.4151" font-family="Times,serif" font-size="14.00" fill="#000000">account_update_params</text>
<text text-anchor="start" x="421.6193" y="-1428.4151" font-family="Times,serif" font-size="14.00" fill="#000000">after_inactive_sign_up_path_for</text>
<text text-anchor="start" x="421.6193" y="-1413.4151" font-family="Times,serif" font-size="14.00" fill="#000000">after_sign_up_path_for</text>
<text text-anchor="start" x="421.6193" y="-1398.4151" font-family="Times,serif" font-size="14.00" fill="#000000">after_update_path_for</text>
<text text-anchor="start" x="421.6193" y="-1383.4151" font-family="Times,serif" font-size="14.00" fill="#000000">authenticate_scope!</text>
<text text-anchor="start" x="421.6193" y="-1368.4151" font-family="Times,serif" font-size="14.00" fill="#000000">build_resource</text>
<text text-anchor="start" x="421.6193" y="-1353.4151" font-family="Times,serif" font-size="14.00" fill="#000000">sign_up</text>
<text text-anchor="start" x="421.6193" y="-1338.4151" font-family="Times,serif" font-size="14.00" fill="#000000">sign_up_params</text>
<text text-anchor="start" x="421.6193" y="-1323.4151" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<text text-anchor="start" x="421.6193" y="-1308.4151" font-family="Times,serif" font-size="14.00" fill="#000000">update_needs_confirmation?</text>
<text text-anchor="start" x="421.6193" y="-1293.4151" font-family="Times,serif" font-size="14.00" fill="#000000">update_resource</text>
<polyline fill="none" stroke="#000000" points="413.6193,-1285.6151 603.6193,-1285.6151 "/>
</g>
<!-- DeviseController&#45;&gt;Devise::RegistrationsController -->
<g id="edge3" class="edge">
<title>DeviseController&#45;&gt;Devise::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M653.5569,-988.9744C624.0953,-1076.7143 589.8359,-1178.7427 562.0243,-1261.5689"/>
</g>
<!-- Devise::ConfirmationsController -->
<g id="node11" class="node">
<title>Devise::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M700.8563,-1315.2676C700.8563,-1315.2676 975.8563,-1315.2676 975.8563,-1315.2676 981.8563,-1315.2676 987.8563,-1321.2676 987.8563,-1327.2676 987.8563,-1327.2676 987.8563,-1456.2676 987.8563,-1456.2676 987.8563,-1462.2676 981.8563,-1468.2676 975.8563,-1468.2676 975.8563,-1468.2676 700.8563,-1468.2676 700.8563,-1468.2676 694.8563,-1468.2676 688.8563,-1462.2676 688.8563,-1456.2676 688.8563,-1456.2676 688.8563,-1327.2676 688.8563,-1327.2676 688.8563,-1321.2676 694.8563,-1315.2676 700.8563,-1315.2676"/>
<text text-anchor="middle" x="838.3563" y="-1453.0676" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::ConfirmationsController</text>
<polyline fill="none" stroke="#000000" points="688.8563,-1445.2676 987.8563,-1445.2676 "/>
<text text-anchor="start" x="696.8563" y="-1430.0676" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="696.8563" y="-1415.0676" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<text text-anchor="start" x="696.8563" y="-1400.0676" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="688.8563,-1392.2676 987.8563,-1392.2676 "/>
<text text-anchor="start" x="696.8563" y="-1377.0676" font-family="Times,serif" font-size="14.00" fill="#000000">after_confirmation_path_for</text>
<text text-anchor="start" x="696.8563" y="-1362.0676" font-family="Times,serif" font-size="14.00" fill="#000000">after_resending_confirmation_instructions_path_for</text>
<text text-anchor="start" x="696.8563" y="-1347.0676" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<polyline fill="none" stroke="#000000" points="688.8563,-1339.2676 987.8563,-1339.2676 "/>
</g>
<!-- DeviseController&#45;&gt;Devise::ConfirmationsController -->
<g id="edge4" class="edge">
<title>DeviseController&#45;&gt;Devise::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M758.5568,-989.0285C780.6053,-1100.3048 806.928,-1233.1524 823.1432,-1314.9891"/>
</g>
<!-- Devise::OmniauthCallbacksController -->
<g id="node12" class="node">
<title>Devise::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M131.0657,-1114.7893C131.0657,-1114.7893 331.0657,-1114.7893 331.0657,-1114.7893 337.0657,-1114.7893 343.0657,-1120.7893 343.0657,-1126.7893 343.0657,-1126.7893 343.0657,-1255.7893 343.0657,-1255.7893 343.0657,-1261.7893 337.0657,-1267.7893 331.0657,-1267.7893 331.0657,-1267.7893 131.0657,-1267.7893 131.0657,-1267.7893 125.0657,-1267.7893 119.0657,-1261.7893 119.0657,-1255.7893 119.0657,-1255.7893 119.0657,-1126.7893 119.0657,-1126.7893 119.0657,-1120.7893 125.0657,-1114.7893 131.0657,-1114.7893"/>
<text text-anchor="middle" x="231.0657" y="-1252.5893" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::OmniauthCallbacksController</text>
<polyline fill="none" stroke="#000000" points="119.0657,-1244.7893 343.0657,-1244.7893 "/>
<text text-anchor="start" x="127.0657" y="-1229.5893" font-family="Times,serif" font-size="14.00" fill="#000000">failure</text>
<text text-anchor="start" x="127.0657" y="-1214.5893" font-family="Times,serif" font-size="14.00" fill="#000000">passthru</text>
<polyline fill="none" stroke="#000000" points="119.0657,-1206.7893 343.0657,-1206.7893 "/>
<text text-anchor="start" x="127.0657" y="-1191.5893" font-family="Times,serif" font-size="14.00" fill="#000000">after_omniauth_failure_path_for</text>
<text text-anchor="start" x="127.0657" y="-1176.5893" font-family="Times,serif" font-size="14.00" fill="#000000">failed_strategy</text>
<text text-anchor="start" x="127.0657" y="-1161.5893" font-family="Times,serif" font-size="14.00" fill="#000000">failure_message</text>
<text text-anchor="start" x="127.0657" y="-1146.5893" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<polyline fill="none" stroke="#000000" points="119.0657,-1138.7893 343.0657,-1138.7893 "/>
</g>
<!-- DeviseController&#45;&gt;Devise::OmniauthCallbacksController -->
<g id="edge5" class="edge">
<title>DeviseController&#45;&gt;Devise::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M623.9425,-870.444C537.4167,-941.1059 410.7524,-1044.547 324.8174,-1114.7264"/>
</g>
<!-- Devise::PasswordsController -->
<g id="node13" class="node">
<title>Devise::PasswordsController</title>
<path fill="none" stroke="#000000" d="M22.4007,-390.0087C22.4007,-390.0087 299.4007,-390.0087 299.4007,-390.0087 305.4007,-390.0087 311.4007,-396.0087 311.4007,-402.0087 311.4007,-402.0087 311.4007,-576.0087 311.4007,-576.0087 311.4007,-582.0087 305.4007,-588.0087 299.4007,-588.0087 299.4007,-588.0087 22.4007,-588.0087 22.4007,-588.0087 16.4007,-588.0087 10.4007,-582.0087 10.4007,-576.0087 10.4007,-576.0087 10.4007,-402.0087 10.4007,-402.0087 10.4007,-396.0087 16.4007,-390.0087 22.4007,-390.0087"/>
<text text-anchor="middle" x="160.9007" y="-572.8087" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::PasswordsController</text>
<polyline fill="none" stroke="#000000" points="10.4007,-565.0087 311.4007,-565.0087 "/>
<text text-anchor="start" x="18.4007" y="-549.8087" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="18.4007" y="-534.8087" font-family="Times,serif" font-size="14.00" fill="#000000">edit</text>
<text text-anchor="start" x="18.4007" y="-519.8087" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<text text-anchor="start" x="18.4007" y="-504.8087" font-family="Times,serif" font-size="14.00" fill="#000000">update</text>
<polyline fill="none" stroke="#000000" points="10.4007,-497.0087 311.4007,-497.0087 "/>
<text text-anchor="start" x="18.4007" y="-481.8087" font-family="Times,serif" font-size="14.00" fill="#000000">after_resetting_password_path_for</text>
<text text-anchor="start" x="18.4007" y="-466.8087" font-family="Times,serif" font-size="14.00" fill="#000000">after_sending_reset_password_instructions_path_for</text>
<text text-anchor="start" x="18.4007" y="-451.8087" font-family="Times,serif" font-size="14.00" fill="#000000">assert_reset_token_passed</text>
<text text-anchor="start" x="18.4007" y="-436.8087" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<text text-anchor="start" x="18.4007" y="-421.8087" font-family="Times,serif" font-size="14.00" fill="#000000">unlockable?</text>
<polyline fill="none" stroke="#000000" points="10.4007,-414.0087 311.4007,-414.0087 "/>
</g>
<!-- DeviseController&#45;&gt;Devise::PasswordsController -->
<g id="edge6" class="edge">
<title>DeviseController&#45;&gt;Devise::PasswordsController</title>
<path fill="none" stroke="#000000" d="M623.8607,-740.366C538.1103,-693.8091 410.9169,-624.7513 311.5372,-570.7945"/>
</g>
<!-- Devise::SessionsController -->
<g id="node14" class="node">
<title>Devise::SessionsController</title>
<path fill="none" stroke="#000000" d="M635.5674,-115.1008C635.5674,-115.1008 774.5674,-115.1008 774.5674,-115.1008 780.5674,-115.1008 786.5674,-121.1008 786.5674,-127.1008 786.5674,-127.1008 786.5674,-300.1008 786.5674,-300.1008 786.5674,-306.1008 780.5674,-312.1008 774.5674,-312.1008 774.5674,-312.1008 635.5674,-312.1008 635.5674,-312.1008 629.5674,-312.1008 623.5674,-306.1008 623.5674,-300.1008 623.5674,-300.1008 623.5674,-127.1008 623.5674,-127.1008 623.5674,-121.1008 629.5674,-115.1008 635.5674,-115.1008"/>
<text text-anchor="middle" x="705.0674" y="-296.9008" font-family="Times,serif" font-size="14.00" fill="#000000">Devise::SessionsController</text>
<polyline fill="none" stroke="#000000" points="623.5674,-289.1008 786.5674,-289.1008 "/>
<text text-anchor="start" x="631.5674" y="-273.9008" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="631.5674" y="-258.9008" font-family="Times,serif" font-size="14.00" fill="#000000">destroy</text>
<text text-anchor="start" x="631.5674" y="-243.9008" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<polyline fill="none" stroke="#000000" points="623.5674,-236.1008 786.5674,-236.1008 "/>
<text text-anchor="start" x="631.5674" y="-220.9008" font-family="Times,serif" font-size="14.00" fill="#000000">auth_options</text>
<text text-anchor="start" x="631.5674" y="-205.9008" font-family="Times,serif" font-size="14.00" fill="#000000">serialize_options</text>
<text text-anchor="start" x="631.5674" y="-190.9008" font-family="Times,serif" font-size="14.00" fill="#000000">sign_in_params</text>
<text text-anchor="start" x="631.5674" y="-175.9008" font-family="Times,serif" font-size="14.00" fill="#000000">translation_scope</text>
<polyline fill="none" stroke="#000000" points="623.5674,-168.1008 786.5674,-168.1008 "/>
<text text-anchor="start" x="631.5674" y="-152.9008" font-family="Times,serif" font-size="14.00" fill="#000000">all_signed_out?</text>
<text text-anchor="start" x="631.5674" y="-137.9008" font-family="Times,serif" font-size="14.00" fill="#000000">respond_to_on_destroy</text>
<text text-anchor="start" x="631.5674" y="-122.9008" font-family="Times,serif" font-size="14.00" fill="#000000">verify_signed_out_user</text>
</g>
<!-- DeviseController&#45;&gt;Devise::SessionsController -->
<g id="edge7" class="edge">
<title>DeviseController&#45;&gt;Devise::SessionsController</title>
<path fill="none" stroke="#000000" d="M714.6492,-595.5962C712.2573,-500.2387 709.4891,-389.879 707.545,-312.3739"/>
</g>
<!-- DeviseTokenAuth::ApplicationController -->
<g id="node18" class="node">
<title>DeviseTokenAuth::ApplicationController</title>
<path fill="none" stroke="#000000" d="M1334.5544,-593.2603C1334.5544,-593.2603 1549.5544,-593.2603 1549.5544,-593.2603 1555.5544,-593.2603 1561.5544,-599.2603 1561.5544,-605.2603 1561.5544,-605.2603 1561.5544,-794.2603 1561.5544,-794.2603 1561.5544,-800.2603 1555.5544,-806.2603 1549.5544,-806.2603 1549.5544,-806.2603 1334.5544,-806.2603 1334.5544,-806.2603 1328.5544,-806.2603 1322.5544,-800.2603 1322.5544,-794.2603 1322.5544,-794.2603 1322.5544,-605.2603 1322.5544,-605.2603 1322.5544,-599.2603 1328.5544,-593.2603 1334.5544,-593.2603"/>
<text text-anchor="middle" x="1442.0544" y="-791.0603" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::ApplicationController</text>
<polyline fill="none" stroke="#000000" points="1322.5544,-783.2603 1561.5544,-783.2603 "/>
<text text-anchor="start" x="1330.5544" y="-768.0603" font-family="Times,serif" font-size="14.00" fill="#000000">resource_data</text>
<text text-anchor="start" x="1330.5544" y="-753.0603" font-family="Times,serif" font-size="14.00" fill="#000000">resource_errors</text>
<polyline fill="none" stroke="#000000" points="1322.5544,-745.2603 1561.5544,-745.2603 "/>
<text text-anchor="start" x="1330.5544" y="-730.0603" font-family="Times,serif" font-size="14.00" fill="#000000">blacklisted_redirect_url?</text>
<text text-anchor="start" x="1330.5544" y="-715.0603" font-family="Times,serif" font-size="14.00" fill="#000000">build_redirect_headers</text>
<text text-anchor="start" x="1330.5544" y="-700.0603" font-family="Times,serif" font-size="14.00" fill="#000000">confirmable_enabled?</text>
<text text-anchor="start" x="1330.5544" y="-685.0603" font-family="Times,serif" font-size="14.00" fill="#000000">json_api?</text>
<text text-anchor="start" x="1330.5544" y="-670.0603" font-family="Times,serif" font-size="14.00" fill="#000000">params_for_resource</text>
<text text-anchor="start" x="1330.5544" y="-655.0603" font-family="Times,serif" font-size="14.00" fill="#000000">recoverable_enabled?</text>
<text text-anchor="start" x="1330.5544" y="-640.0603" font-family="Times,serif" font-size="14.00" fill="#000000">render_error</text>
<text text-anchor="start" x="1330.5544" y="-625.0603" font-family="Times,serif" font-size="14.00" fill="#000000">resource_class</text>
<polyline fill="none" stroke="#000000" points="1322.5544,-617.2603 1561.5544,-617.2603 "/>
</g>
<!-- DeviseController&#45;&gt;DeviseTokenAuth::ApplicationController -->
<g id="edge11" class="edge">
<title>DeviseController&#45;&gt;DeviseTokenAuth::ApplicationController</title>
<path fill="none" stroke="#000000" d="M815.1498,-780.0919C945.829,-763.3467 1180.2398,-733.3093 1322.4284,-715.0892"/>
</g>
<!-- DeviseTokenAuth::UnlocksController -->
<g id="node15" class="node">
<title>DeviseTokenAuth::UnlocksController</title>
<path fill="none" stroke="#000000" d="M1217.4314,-18.2165C1217.4314,-18.2165 1413.4314,-18.2165 1413.4314,-18.2165 1419.4314,-18.2165 1425.4314,-24.2165 1425.4314,-30.2165 1425.4314,-30.2165 1425.4314,-204.2165 1425.4314,-204.2165 1425.4314,-210.2165 1419.4314,-216.2165 1413.4314,-216.2165 1413.4314,-216.2165 1217.4314,-216.2165 1217.4314,-216.2165 1211.4314,-216.2165 1205.4314,-210.2165 1205.4314,-204.2165 1205.4314,-204.2165 1205.4314,-30.2165 1205.4314,-30.2165 1205.4314,-24.2165 1211.4314,-18.2165 1217.4314,-18.2165"/>
<text text-anchor="middle" x="1315.4314" y="-201.0165" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::UnlocksController</text>
<polyline fill="none" stroke="#000000" points="1205.4314,-193.2165 1425.4314,-193.2165 "/>
<text text-anchor="start" x="1213.4314" y="-178.0165" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="1213.4314" y="-163.0165" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="1205.4314,-155.2165 1425.4314,-155.2165 "/>
<polyline fill="none" stroke="#000000" points="1205.4314,-131.2165 1425.4314,-131.2165 "/>
<text text-anchor="start" x="1213.4314" y="-116.0165" font-family="Times,serif" font-size="14.00" fill="#000000">after_unlock_path_for</text>
<text text-anchor="start" x="1213.4314" y="-101.0165" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error</text>
<text text-anchor="start" x="1213.4314" y="-86.0165" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_missing_email</text>
<text text-anchor="start" x="1213.4314" y="-71.0165" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_success</text>
<text text-anchor="start" x="1213.4314" y="-56.0165" font-family="Times,serif" font-size="14.00" fill="#000000">render_not_found_error</text>
<text text-anchor="start" x="1213.4314" y="-41.0165" font-family="Times,serif" font-size="14.00" fill="#000000">render_show_error</text>
<text text-anchor="start" x="1213.4314" y="-26.0165" font-family="Times,serif" font-size="14.00" fill="#000000">resource_params</text>
</g>
<!-- DeviseTokenAuth::RegistrationsController -->
<g id="node16" class="node">
<title>DeviseTokenAuth::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M1781.0222,-103.3004C1781.0222,-103.3004 2048.0222,-103.3004 2048.0222,-103.3004 2054.0222,-103.3004 2060.0222,-109.3004 2060.0222,-115.3004 2060.0222,-115.3004 2060.0222,-438.3004 2060.0222,-438.3004 2060.0222,-444.3004 2054.0222,-450.3004 2048.0222,-450.3004 2048.0222,-450.3004 1781.0222,-450.3004 1781.0222,-450.3004 1775.0222,-450.3004 1769.0222,-444.3004 1769.0222,-438.3004 1769.0222,-438.3004 1769.0222,-115.3004 1769.0222,-115.3004 1769.0222,-109.3004 1775.0222,-103.3004 1781.0222,-103.3004"/>
<text text-anchor="middle" x="1914.5222" y="-435.1004" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::RegistrationsController</text>
<polyline fill="none" stroke="#000000" points="1769.0222,-427.3004 2060.0222,-427.3004 "/>
<text text-anchor="start" x="1777.0222" y="-412.1004" font-family="Times,serif" font-size="14.00" fill="#000000">account_update_params</text>
<text text-anchor="start" x="1777.0222" y="-397.1004" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="1777.0222" y="-382.1004" font-family="Times,serif" font-size="14.00" fill="#000000">destroy</text>
<text text-anchor="start" x="1777.0222" y="-367.1004" font-family="Times,serif" font-size="14.00" fill="#000000">sign_up_params</text>
<text text-anchor="start" x="1777.0222" y="-352.1004" font-family="Times,serif" font-size="14.00" fill="#000000">update</text>
<polyline fill="none" stroke="#000000" points="1769.0222,-344.3004 2060.0222,-344.3004 "/>
<text text-anchor="start" x="1777.0222" y="-329.1004" font-family="Times,serif" font-size="14.00" fill="#000000">build_resource</text>
<text text-anchor="start" x="1777.0222" y="-314.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error</text>
<text text-anchor="start" x="1777.0222" y="-299.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_email_already_exists</text>
<text text-anchor="start" x="1777.0222" y="-284.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_missing_confirm_success_url</text>
<text text-anchor="start" x="1777.0222" y="-269.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_redirect_url_not_allowed</text>
<text text-anchor="start" x="1777.0222" y="-254.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_success</text>
<text text-anchor="start" x="1777.0222" y="-239.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_destroy_error</text>
<text text-anchor="start" x="1777.0222" y="-224.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_destroy_success</text>
<text text-anchor="start" x="1777.0222" y="-209.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error</text>
<text text-anchor="start" x="1777.0222" y="-194.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error_user_not_found</text>
<text text-anchor="start" x="1777.0222" y="-179.1004" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_success</text>
<polyline fill="none" stroke="#000000" points="1769.0222,-171.3004 2060.0222,-171.3004 "/>
<text text-anchor="start" x="1777.0222" y="-156.1004" font-family="Times,serif" font-size="14.00" fill="#000000">resource_update_method</text>
<text text-anchor="start" x="1777.0222" y="-141.1004" font-family="Times,serif" font-size="14.00" fill="#000000">validate_account_update_params</text>
<text text-anchor="start" x="1777.0222" y="-126.1004" font-family="Times,serif" font-size="14.00" fill="#000000">validate_post_data</text>
<text text-anchor="start" x="1777.0222" y="-111.1004" font-family="Times,serif" font-size="14.00" fill="#000000">validate_sign_up_params</text>
</g>
<!-- DeviseTokenAuth::ConfirmationsController -->
<g id="node17" class="node">
<title>DeviseTokenAuth::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M1518.9941,-.5C1518.9941,-.5 1748.9941,-.5 1748.9941,-.5 1754.9941,-.5 1760.9941,-6.5 1760.9941,-12.5 1760.9941,-12.5 1760.9941,-82.5 1760.9941,-82.5 1760.9941,-88.5 1754.9941,-94.5 1748.9941,-94.5 1748.9941,-94.5 1518.9941,-94.5 1518.9941,-94.5 1512.9941,-94.5 1506.9941,-88.5 1506.9941,-82.5 1506.9941,-82.5 1506.9941,-12.5 1506.9941,-12.5 1506.9941,-6.5 1512.9941,-.5 1518.9941,-.5"/>
<text text-anchor="middle" x="1633.9941" y="-79.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::ConfirmationsController</text>
<polyline fill="none" stroke="#000000" points="1506.9941,-71.5 1760.9941,-71.5 "/>
<text text-anchor="start" x="1514.9941" y="-56.3" font-family="Times,serif" font-size="14.00" fill="#000000">show</text>
<polyline fill="none" stroke="#000000" points="1506.9941,-48.5 1760.9941,-48.5 "/>
<polyline fill="none" stroke="#000000" points="1506.9941,-24.5 1760.9941,-24.5 "/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::UnlocksController -->
<g id="edge8" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::UnlocksController</title>
<path fill="none" stroke="#000000" d="M1418.9034,-593.2517C1395.5315,-485.7262 1359.7236,-320.9879 1336.9517,-216.223"/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::RegistrationsController -->
<g id="edge9" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::RegistrationsController</title>
<path fill="none" stroke="#000000" d="M1561.2779,-593.0297C1624.2894,-536.6209 1702.16,-466.91 1768.7398,-407.3068"/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::ConfirmationsController -->
<g id="edge10" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::ConfirmationsController</title>
<path fill="none" stroke="#000000" d="M1473.4271,-593.1477C1515.7839,-449.2087 1589.4751,-198.7871 1620.0653,-94.8339"/>
</g>
<!-- DeviseTokenAuth::OmniauthCallbacksController -->
<g id="node19" class="node">
<title>DeviseTokenAuth::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M1882.1271,-784.1761C1882.1271,-784.1761 2142.1271,-784.1761 2142.1271,-784.1761 2148.1271,-784.1761 2154.1271,-790.1761 2154.1271,-796.1761 2154.1271,-796.1761 2154.1271,-1150.1761 2154.1271,-1150.1761 2154.1271,-1156.1761 2148.1271,-1162.1761 2142.1271,-1162.1761 2142.1271,-1162.1761 1882.1271,-1162.1761 1882.1271,-1162.1761 1876.1271,-1162.1761 1870.1271,-1156.1761 1870.1271,-1150.1761 1870.1271,-1150.1761 1870.1271,-796.1761 1870.1271,-796.1761 1870.1271,-790.1761 1876.1271,-784.1761 1882.1271,-784.1761"/>
<text text-anchor="middle" x="2012.1271" y="-1146.9761" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::OmniauthCallbacksController</text>
<polyline fill="none" stroke="#000000" points="1870.1271,-1139.1761 2154.1271,-1139.1761 "/>
<text text-anchor="start" x="1878.1271" y="-1123.9761" font-family="Times,serif" font-size="14.00" fill="#000000">auth_params</text>
<text text-anchor="start" x="1878.1271" y="-1108.9761" font-family="Times,serif" font-size="14.00" fill="#000000">omniauth_failure</text>
<text text-anchor="start" x="1878.1271" y="-1093.9761" font-family="Times,serif" font-size="14.00" fill="#000000">omniauth_success</text>
<text text-anchor="start" x="1878.1271" y="-1078.9761" font-family="Times,serif" font-size="14.00" fill="#000000">redirect_callbacks</text>
<polyline fill="none" stroke="#000000" points="1870.1271,-1071.1761 2154.1271,-1071.1761 "/>
<text text-anchor="start" x="1878.1271" y="-1055.9761" font-family="Times,serif" font-size="14.00" fill="#000000">assert_is_devise_resource!</text>
<text text-anchor="start" x="1878.1271" y="-1040.9761" font-family="Times,serif" font-size="14.00" fill="#000000">assign_provider_attrs</text>
<text text-anchor="start" x="1878.1271" y="-1025.9761" font-family="Times,serif" font-size="14.00" fill="#000000">auth_hash</text>
<text text-anchor="start" x="1878.1271" y="-1010.9761" font-family="Times,serif" font-size="14.00" fill="#000000">auth_origin_url</text>
<text text-anchor="start" x="1878.1271" y="-995.9761" font-family="Times,serif" font-size="14.00" fill="#000000">create_auth_params</text>
<text text-anchor="start" x="1878.1271" y="-980.9761" font-family="Times,serif" font-size="14.00" fill="#000000">devise_mapping</text>
<text text-anchor="start" x="1878.1271" y="-965.9761" font-family="Times,serif" font-size="14.00" fill="#000000">fallback_render</text>
<text text-anchor="start" x="1878.1271" y="-950.9761" font-family="Times,serif" font-size="14.00" fill="#000000">get_resource_from_auth_hash</text>
<text text-anchor="start" x="1878.1271" y="-935.9761" font-family="Times,serif" font-size="14.00" fill="#000000">omniauth_params</text>
<text text-anchor="start" x="1878.1271" y="-920.9761" font-family="Times,serif" font-size="14.00" fill="#000000">omniauth_window_type</text>
<text text-anchor="start" x="1878.1271" y="-905.9761" font-family="Times,serif" font-size="14.00" fill="#000000">render_data</text>
<text text-anchor="start" x="1878.1271" y="-890.9761" font-family="Times,serif" font-size="14.00" fill="#000000">render_data_or_redirect</text>
<text text-anchor="start" x="1878.1271" y="-875.9761" font-family="Times,serif" font-size="14.00" fill="#000000">resource_class</text>
<text text-anchor="start" x="1878.1271" y="-860.9761" font-family="Times,serif" font-size="14.00" fill="#000000">resource_name</text>
<text text-anchor="start" x="1878.1271" y="-845.9761" font-family="Times,serif" font-size="14.00" fill="#000000">set_random_password</text>
<text text-anchor="start" x="1878.1271" y="-830.9761" font-family="Times,serif" font-size="14.00" fill="#000000">set_token_on_resource</text>
<text text-anchor="start" x="1878.1271" y="-815.9761" font-family="Times,serif" font-size="14.00" fill="#000000">whitelisted_params</text>
<polyline fill="none" stroke="#000000" points="1870.1271,-808.1761 2154.1271,-808.1761 "/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::OmniauthCallbacksController -->
<g id="edge12" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::OmniauthCallbacksController</title>
<path fill="none" stroke="#000000" d="M1561.5603,-757.0772C1651.5087,-800.2179 1775.1126,-859.5003 1870.1097,-905.0624"/>
</g>
<!-- DeviseTokenAuth::TokenValidationsController -->
<g id="node20" class="node">
<title>DeviseTokenAuth::TokenValidationsController</title>
<path fill="none" stroke="#000000" d="M1675.5727,-1207.4269C1675.5727,-1207.4269 1920.5727,-1207.4269 1920.5727,-1207.4269 1926.5727,-1207.4269 1932.5727,-1213.4269 1932.5727,-1219.4269 1932.5727,-1219.4269 1932.5727,-1303.4269 1932.5727,-1303.4269 1932.5727,-1309.4269 1926.5727,-1315.4269 1920.5727,-1315.4269 1920.5727,-1315.4269 1675.5727,-1315.4269 1675.5727,-1315.4269 1669.5727,-1315.4269 1663.5727,-1309.4269 1663.5727,-1303.4269 1663.5727,-1303.4269 1663.5727,-1219.4269 1663.5727,-1219.4269 1663.5727,-1213.4269 1669.5727,-1207.4269 1675.5727,-1207.4269"/>
<text text-anchor="middle" x="1798.0727" y="-1300.2269" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::TokenValidationsController</text>
<polyline fill="none" stroke="#000000" points="1663.5727,-1292.4269 1932.5727,-1292.4269 "/>
<text text-anchor="start" x="1671.5727" y="-1277.2269" font-family="Times,serif" font-size="14.00" fill="#000000">validate_token</text>
<polyline fill="none" stroke="#000000" points="1663.5727,-1269.4269 1932.5727,-1269.4269 "/>
<text text-anchor="start" x="1671.5727" y="-1254.2269" font-family="Times,serif" font-size="14.00" fill="#000000">render_validate_token_error</text>
<text text-anchor="start" x="1671.5727" y="-1239.2269" font-family="Times,serif" font-size="14.00" fill="#000000">render_validate_token_success</text>
<polyline fill="none" stroke="#000000" points="1663.5727,-1231.4269 1932.5727,-1231.4269 "/>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::TokenValidationsController -->
<g id="edge13" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::TokenValidationsController</title>
<path fill="none" stroke="#000000" d="M1509.6468,-806.3965C1585.3736,-925.8657 1705.1612,-1114.8465 1763.6498,-1207.1203"/>
</g>
<!-- DeviseTokenAuth::PasswordsController -->
<g id="node21" class="node">
<title>DeviseTokenAuth::PasswordsController</title>
<path fill="none" stroke="#000000" d="M1350.9267,-1142.4302C1350.9267,-1142.4302 1591.9267,-1142.4302 1591.9267,-1142.4302 1597.9267,-1142.4302 1603.9267,-1148.4302 1603.9267,-1154.4302 1603.9267,-1154.4302 1603.9267,-1462.4302 1603.9267,-1462.4302 1603.9267,-1468.4302 1597.9267,-1474.4302 1591.9267,-1474.4302 1591.9267,-1474.4302 1350.9267,-1474.4302 1350.9267,-1474.4302 1344.9267,-1474.4302 1338.9267,-1468.4302 1338.9267,-1462.4302 1338.9267,-1462.4302 1338.9267,-1154.4302 1338.9267,-1154.4302 1338.9267,-1148.4302 1344.9267,-1142.4302 1350.9267,-1142.4302"/>
<text text-anchor="middle" x="1471.4267" y="-1459.2302" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::PasswordsController</text>
<polyline fill="none" stroke="#000000" points="1338.9267,-1451.4302 1603.9267,-1451.4302 "/>
<text text-anchor="start" x="1346.9267" y="-1436.2302" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="1346.9267" y="-1421.2302" font-family="Times,serif" font-size="14.00" fill="#000000">edit</text>
<text text-anchor="start" x="1346.9267" y="-1406.2302" font-family="Times,serif" font-size="14.00" fill="#000000">update</text>
<polyline fill="none" stroke="#000000" points="1338.9267,-1398.4302 1603.9267,-1398.4302 "/>
<text text-anchor="start" x="1346.9267" y="-1383.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error</text>
<text text-anchor="start" x="1346.9267" y="-1368.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_missing_email</text>
<text text-anchor="start" x="1346.9267" y="-1353.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_missing_redirect_url</text>
<text text-anchor="start" x="1346.9267" y="-1338.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_not_allowed_redirect_url</text>
<text text-anchor="start" x="1346.9267" y="-1323.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_success</text>
<text text-anchor="start" x="1346.9267" y="-1308.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_edit_error</text>
<text text-anchor="start" x="1346.9267" y="-1293.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error</text>
<text text-anchor="start" x="1346.9267" y="-1278.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error_missing_password</text>
<text text-anchor="start" x="1346.9267" y="-1263.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error_password_not_required</text>
<text text-anchor="start" x="1346.9267" y="-1248.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_error_unauthorized</text>
<text text-anchor="start" x="1346.9267" y="-1233.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_update_success</text>
<text text-anchor="start" x="1346.9267" y="-1218.2302" font-family="Times,serif" font-size="14.00" fill="#000000">resource_update_method</text>
<polyline fill="none" stroke="#000000" points="1338.9267,-1210.4302 1603.9267,-1210.4302 "/>
<text text-anchor="start" x="1346.9267" y="-1195.2302" font-family="Times,serif" font-size="14.00" fill="#000000">password_resource_params</text>
<text text-anchor="start" x="1346.9267" y="-1180.2302" font-family="Times,serif" font-size="14.00" fill="#000000">render_not_found_error</text>
<text text-anchor="start" x="1346.9267" y="-1165.2302" font-family="Times,serif" font-size="14.00" fill="#000000">resource_params</text>
<text text-anchor="start" x="1346.9267" y="-1150.2302" font-family="Times,serif" font-size="14.00" fill="#000000">with_reset_password_token</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::PasswordsController -->
<g id="edge14" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::PasswordsController</title>
<path fill="none" stroke="#000000" d="M1447.2042,-806.479C1451.6835,-899.3014 1458.248,-1035.3338 1463.4136,-1142.3783"/>
</g>
<!-- DeviseTokenAuth::SessionsController -->
<g id="node22" class="node">
<title>DeviseTokenAuth::SessionsController</title>
<path fill="none" stroke="#000000" d="M1961.5316,-489.3581C1961.5316,-489.3581 2159.5316,-489.3581 2159.5316,-489.3581 2165.5316,-489.3581 2171.5316,-495.3581 2171.5316,-501.3581 2171.5316,-501.3581 2171.5316,-719.3581 2171.5316,-719.3581 2171.5316,-725.3581 2165.5316,-731.3581 2159.5316,-731.3581 2159.5316,-731.3581 1961.5316,-731.3581 1961.5316,-731.3581 1955.5316,-731.3581 1949.5316,-725.3581 1949.5316,-719.3581 1949.5316,-719.3581 1949.5316,-501.3581 1949.5316,-501.3581 1949.5316,-495.3581 1955.5316,-489.3581 1961.5316,-489.3581"/>
<text text-anchor="middle" x="2060.5316" y="-716.1581" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::SessionsController</text>
<polyline fill="none" stroke="#000000" points="1949.5316,-708.3581 2171.5316,-708.3581 "/>
<text text-anchor="start" x="1957.5316" y="-693.1581" font-family="Times,serif" font-size="14.00" fill="#000000">create</text>
<text text-anchor="start" x="1957.5316" y="-678.1581" font-family="Times,serif" font-size="14.00" fill="#000000">destroy</text>
<text text-anchor="start" x="1957.5316" y="-663.1581" font-family="Times,serif" font-size="14.00" fill="#000000">new</text>
<polyline fill="none" stroke="#000000" points="1949.5316,-655.3581 2171.5316,-655.3581 "/>
<text text-anchor="start" x="1957.5316" y="-640.1581" font-family="Times,serif" font-size="14.00" fill="#000000">get_auth_params</text>
<text text-anchor="start" x="1957.5316" y="-625.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_account_locked</text>
<text text-anchor="start" x="1957.5316" y="-610.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_bad_credentials</text>
<text text-anchor="start" x="1957.5316" y="-595.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_error_not_confirmed</text>
<text text-anchor="start" x="1957.5316" y="-580.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_create_success</text>
<text text-anchor="start" x="1957.5316" y="-565.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_destroy_error</text>
<text text-anchor="start" x="1957.5316" y="-550.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_destroy_success</text>
<text text-anchor="start" x="1957.5316" y="-535.1581" font-family="Times,serif" font-size="14.00" fill="#000000">render_new_error</text>
<text text-anchor="start" x="1957.5316" y="-520.1581" font-family="Times,serif" font-size="14.00" fill="#000000">valid_params?</text>
<polyline fill="none" stroke="#000000" points="1949.5316,-512.3581 2171.5316,-512.3581 "/>
<text text-anchor="start" x="1957.5316" y="-497.1581" font-family="Times,serif" font-size="14.00" fill="#000000">resource_params</text>
</g>
<!-- DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::SessionsController -->
<g id="edge15" class="edge">
<title>DeviseTokenAuth::ApplicationController&#45;&gt;DeviseTokenAuth::SessionsController</title>
<path fill="none" stroke="#000000" d="M1561.6695,-682.4697C1673.7747,-666.2647 1840.0325,-642.2317 1949.3247,-626.4333"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 52 KiB

194
doc/models_brief.svg Normal file
View File

@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: models_diagram Pages: 1 -->
<svg width="3146pt" height="158pt"
viewBox="0.00 0.00 3146.30 158.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 154)">
<title>models_diagram</title>
<polygon fill="transparent" stroke="transparent" points="-4,4 -4,-154 3142.2976,-154 3142.2976,4 -4,4"/>
<!-- _diagram_info -->
<g id="node1" class="node">
<title>_diagram_info</title>
<text text-anchor="start" x="22.7976" y="-135.6" font-family="Times,serif" font-size="13.00" fill="#000000">Models diagram</text>
<text text-anchor="start" x="22.7976" y="-121.6" font-family="Times,serif" font-size="13.00" fill="#000000">Date: Nov 12 2018 &#45; 13:00</text>
<text text-anchor="start" x="22.7976" y="-107.6" font-family="Times,serif" font-size="13.00" fill="#000000">Migration version: 0</text>
<text text-anchor="start" x="22.7976" y="-93.6" font-family="Times,serif" font-size="13.00" fill="#000000">Generated by RailRoady 1.5.3</text>
<text text-anchor="start" x="22.7976" y="-79.6" font-family="Times,serif" font-size="13.00" fill="#000000">http://railroady.prestonlee.com</text>
</g>
<!-- User -->
<g id="node2" class="node">
<title>User</title>
<ellipse fill="none" stroke="#000000" cx="27.2976" cy="-18" rx="27.0966" ry="18"/>
<text text-anchor="middle" x="27.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">User</text>
</g>
<!-- Team -->
<g id="node3" class="node">
<title>Team</title>
<ellipse fill="none" stroke="#000000" cx="103.2976" cy="-18" rx="30.5947" ry="18"/>
<text text-anchor="middle" x="103.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">Team</text>
</g>
<!-- Match -->
<g id="node4" class="node">
<title>Match</title>
<ellipse fill="none" stroke="#000000" cx="185.2976" cy="-18" rx="33.5952" ry="18"/>
<text text-anchor="middle" x="185.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">Match</text>
</g>
<!-- PlayoffStage -->
<g id="node5" class="node">
<title>PlayoffStage</title>
<ellipse fill="none" stroke="#000000" cx="291.2976" cy="-18" rx="53.8905" ry="18"/>
<text text-anchor="middle" x="291.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">PlayoffStage</text>
</g>
<!-- ApplicationRecord -->
<g id="node6" class="node">
<title>ApplicationRecord</title>
<ellipse fill="none" stroke="#000000" cx="291.2976" cy="-111" rx="77.1866" ry="18"/>
<text text-anchor="middle" x="291.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ApplicationRecord</text>
</g>
<!-- ApplicationRecord&#45;&gt;User -->
<g id="edge1" class="edge">
<title>ApplicationRecord&#45;&gt;User</title>
<path fill="none" stroke="#000000" d="M258.3762,-94.6351C242.3265,-87.0743 222.5828,-78.3798 204.2976,-72 143.2309,-50.6935 123.9009,-58.591 63.2976,-36 58.4524,-34.1939 53.4002,-31.9279 48.6657,-29.6188"/>
</g>
<!-- ApplicationRecord&#45;&gt;Team -->
<g id="edge2" class="edge">
<title>ApplicationRecord&#45;&gt;Team</title>
<path fill="none" stroke="#000000" d="M258.1197,-94.5875C220.4875,-75.9716 160.0633,-46.0809 126.9272,-29.6891"/>
</g>
<!-- ApplicationRecord&#45;&gt;Match -->
<g id="edge3" class="edge">
<title>ApplicationRecord&#45;&gt;Match</title>
<path fill="none" stroke="#000000" d="M271.3598,-93.5074C251.689,-76.2491 221.9014,-50.1147 203.0321,-33.5596"/>
</g>
<!-- ApplicationRecord&#45;&gt;PlayoffStage -->
<g id="edge4" class="edge">
<title>ApplicationRecord&#45;&gt;PlayoffStage</title>
<path fill="none" stroke="#000000" d="M291.2976,-92.6262C291.2976,-76.2161 291.2976,-52.3202 291.2976,-36.0192"/>
</g>
<!-- GroupStage -->
<g id="node7" class="node">
<title>GroupStage</title>
<ellipse fill="none" stroke="#000000" cx="415.2976" cy="-18" rx="51.9908" ry="18"/>
<text text-anchor="middle" x="415.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">GroupStage</text>
</g>
<!-- ApplicationRecord&#45;&gt;GroupStage -->
<g id="edge5" class="edge">
<title>ApplicationRecord&#45;&gt;GroupStage</title>
<path fill="none" stroke="#000000" d="M314.3304,-93.7254C336.8829,-76.811 371.0034,-51.2206 393.2216,-34.557"/>
</g>
<!-- Group -->
<g id="node8" class="node">
<title>Group</title>
<ellipse fill="none" stroke="#000000" cx="518.2976" cy="-18" rx="33.2948" ry="18"/>
<text text-anchor="middle" x="518.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">Group</text>
</g>
<!-- ApplicationRecord&#45;&gt;Group -->
<g id="edge6" class="edge">
<title>ApplicationRecord&#45;&gt;Group</title>
<path fill="none" stroke="#000000" d="M325.7748,-94.8827C341.6577,-87.6292 360.8215,-79.117 378.2976,-72 421.272,-54.4991 433.18,-53.1452 476.2976,-36 481.4578,-33.9481 486.9362,-31.6725 492.1731,-29.449"/>
</g>
<!-- Tournament -->
<g id="node9" class="node">
<title>Tournament</title>
<ellipse fill="none" stroke="#000000" cx="622.2976" cy="-18" rx="53.0913" ry="18"/>
<text text-anchor="middle" x="622.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">Tournament</text>
</g>
<!-- ApplicationRecord&#45;&gt;Tournament -->
<g id="edge7" class="edge">
<title>ApplicationRecord&#45;&gt;Tournament</title>
<path fill="none" stroke="#000000" d="M323.2526,-94.5828C339.4107,-86.8253 359.5293,-77.9779 378.2976,-72 456.8647,-46.9756 480.1837,-55.5134 560.2976,-36 567.485,-34.2494 575.0873,-32.205 582.4129,-30.1347"/>
</g>
<!-- ActiveStorage::Attachment -->
<g id="node10" class="node">
<title>ActiveStorage::Attachment</title>
<ellipse fill="none" stroke="#000000" cx="492.2976" cy="-111" rx="105.0817" ry="18"/>
<text text-anchor="middle" x="492.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Attachment</text>
</g>
<!-- ActiveStorage::Variation -->
<g id="node11" class="node">
<title>ActiveStorage::Variation</title>
<polygon fill="none" stroke="#000000" points="763.2976,-129 615.2976,-129 615.2976,-93 763.2976,-93 763.2976,-129"/>
<text text-anchor="middle" x="689.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Variation</text>
</g>
<!-- ActiveStorage::Blob::Representable -->
<g id="node12" class="node">
<title>ActiveStorage::Blob::Representable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="990.7976,-129 781.7976,-129 781.7976,-93 990.7976,-93 990.7976,-129"/>
<text text-anchor="middle" x="886.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Representable</text>
</g>
<!-- ActiveStorage::Blob::Identifiable -->
<g id="node13" class="node">
<title>ActiveStorage::Blob::Identifiable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="1203.2976,-129 1009.2976,-129 1009.2976,-93 1203.2976,-93 1203.2976,-129"/>
<text text-anchor="middle" x="1106.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Identifiable</text>
</g>
<!-- ActiveStorage::Blob::Analyzable -->
<g id="node14" class="node">
<title>ActiveStorage::Blob::Analyzable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="1415.2976,-129 1221.2976,-129 1221.2976,-93 1415.2976,-93 1415.2976,-129"/>
<text text-anchor="middle" x="1318.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Analyzable</text>
</g>
<!-- ActiveStorage::Preview -->
<g id="node15" class="node">
<title>ActiveStorage::Preview</title>
<polygon fill="none" stroke="#000000" points="1574.7976,-129 1433.7976,-129 1433.7976,-93 1574.7976,-93 1574.7976,-129"/>
<text text-anchor="middle" x="1504.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Preview</text>
</g>
<!-- ActiveStorage::Variant -->
<g id="node16" class="node">
<title>ActiveStorage::Variant</title>
<polygon fill="none" stroke="#000000" points="1729.7976,-129 1592.7976,-129 1592.7976,-93 1729.7976,-93 1729.7976,-129"/>
<text text-anchor="middle" x="1661.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Variant</text>
</g>
<!-- ActiveStorage::Filename -->
<g id="node17" class="node">
<title>ActiveStorage::Filename</title>
<polygon fill="none" stroke="#000000" points="1896.7976,-129 1747.7976,-129 1747.7976,-93 1896.7976,-93 1896.7976,-129"/>
<text text-anchor="middle" x="1822.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Filename</text>
</g>
<!-- ActiveStorage::Current -->
<g id="node18" class="node">
<title>ActiveStorage::Current</title>
<polygon fill="none" stroke="#000000" points="2112.2976,-36 1972.2976,-36 1972.2976,0 2112.2976,0 2112.2976,-36"/>
<text text-anchor="middle" x="2042.2976" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Current</text>
</g>
<!-- ActiveStorage::Blob -->
<g id="node19" class="node">
<title>ActiveStorage::Blob</title>
<ellipse fill="none" stroke="#000000" cx="2269.2976" cy="-111" rx="81.4863" ry="18"/>
<text text-anchor="middle" x="2269.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob</text>
</g>
<!-- ActiveStorage::Filename::Parameters -->
<g id="node20" class="node">
<title>ActiveStorage::Filename::Parameters</title>
<polygon fill="none" stroke="#000000" points="2586.2976,-129 2368.2976,-129 2368.2976,-93 2586.2976,-93 2586.2976,-129"/>
<text text-anchor="middle" x="2477.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Filename::Parameters</text>
</g>
<!-- DeviseTokenAuth::Concerns::User -->
<g id="node21" class="node">
<title>DeviseTokenAuth::Concerns::User</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="2808.2976,-129 2604.2976,-129 2604.2976,-93 2808.2976,-93 2808.2976,-129"/>
<text text-anchor="middle" x="2706.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::Concerns::User</text>
</g>
<!-- DeviseTokenAuth::Concerns::UserOmniauthCallbacks -->
<g id="node22" class="node">
<title>DeviseTokenAuth::Concerns::UserOmniauthCallbacks</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="3138.2976,-129 2826.2976,-129 2826.2976,-93 3138.2976,-93 3138.2976,-129"/>
<text text-anchor="middle" x="2982.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::Concerns::UserOmniauthCallbacks</text>
</g>
<!-- ActiveSupport::CurrentAttributes -->
<g id="node23" class="node">
<title>ActiveSupport::CurrentAttributes</title>
<ellipse fill="none" stroke="#000000" cx="2042.2976" cy="-111" rx="127.2775" ry="18"/>
<text text-anchor="middle" x="2042.2976" y="-107.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveSupport::CurrentAttributes</text>
</g>
<!-- ActiveSupport::CurrentAttributes&#45;&gt;ActiveStorage::Current -->
<g id="edge8" class="edge">
<title>ActiveSupport::CurrentAttributes&#45;&gt;ActiveStorage::Current</title>
<path fill="none" stroke="#000000" d="M2042.2976,-92.6262C2042.2976,-76.2161 2042.2976,-52.3202 2042.2976,-36.0192"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

257
doc/models_complete.svg Normal file
View File

@ -0,0 +1,257 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: models_diagram Pages: 1 -->
<svg width="3102pt" height="484pt"
viewBox="0.00 0.00 3101.50 484.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 480)">
<title>models_diagram</title>
<polygon fill="transparent" stroke="transparent" points="-4,4 -4,-480 3097.5,-480 3097.5,4 -4,4"/>
<!-- _diagram_info -->
<g id="node1" class="node">
<title>_diagram_info</title>
<text text-anchor="start" x="388" y="-461.6" font-family="Times,serif" font-size="13.00" fill="#000000">Models diagram</text>
<text text-anchor="start" x="388" y="-447.6" font-family="Times,serif" font-size="13.00" fill="#000000">Date: Nov 12 2018 &#45; 13:00</text>
<text text-anchor="start" x="388" y="-433.6" font-family="Times,serif" font-size="13.00" fill="#000000">Migration version: 0</text>
<text text-anchor="start" x="388" y="-419.6" font-family="Times,serif" font-size="13.00" fill="#000000">Generated by RailRoady 1.5.3</text>
<text text-anchor="start" x="388" y="-405.6" font-family="Times,serif" font-size="13.00" fill="#000000">http://railroady.prestonlee.com</text>
</g>
<!-- User -->
<g id="node2" class="node">
<title>User</title>
<path fill="none" stroke="#000000" d="M12,-.5C12,-.5 187,-.5 187,-.5 193,-.5 199,-6.5 199,-12.5 199,-12.5 199,-349.5 199,-349.5 199,-355.5 193,-361.5 187,-361.5 187,-361.5 12,-361.5 12,-361.5 6,-361.5 0,-355.5 0,-349.5 0,-349.5 0,-12.5 0,-12.5 0,-6.5 6,-.5 12,-.5"/>
<text text-anchor="middle" x="99.5" y="-346.3" font-family="Times,serif" font-size="14.00" fill="#000000">User</text>
<polyline fill="none" stroke="#000000" points="0,-338.5 199,-338.5 "/>
<text text-anchor="start" x="8" y="-323.3" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="8" y="-308.3" font-family="Times,serif" font-size="14.00" fill="#000000">provider :varchar</text>
<text text-anchor="start" x="8" y="-293.3" font-family="Times,serif" font-size="14.00" fill="#000000">uid :varchar</text>
<text text-anchor="start" x="8" y="-278.3" font-family="Times,serif" font-size="14.00" fill="#000000">encrypted_password :varchar</text>
<text text-anchor="start" x="8" y="-263.3" font-family="Times,serif" font-size="14.00" fill="#000000">reset_password_token :varchar</text>
<text text-anchor="start" x="8" y="-248.3" font-family="Times,serif" font-size="14.00" fill="#000000">reset_password_sent_at :datetime</text>
<text text-anchor="start" x="8" y="-233.3" font-family="Times,serif" font-size="14.00" fill="#000000">allow_password_change :boolean</text>
<text text-anchor="start" x="8" y="-218.3" font-family="Times,serif" font-size="14.00" fill="#000000">remember_created_at :datetime</text>
<text text-anchor="start" x="8" y="-203.3" font-family="Times,serif" font-size="14.00" fill="#000000">sign_in_count :integer</text>
<text text-anchor="start" x="8" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">current_sign_in_at :datetime</text>
<text text-anchor="start" x="8" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">last_sign_in_at :datetime</text>
<text text-anchor="start" x="8" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">current_sign_in_ip :varchar</text>
<text text-anchor="start" x="8" y="-143.3" font-family="Times,serif" font-size="14.00" fill="#000000">last_sign_in_ip :varchar</text>
<text text-anchor="start" x="8" y="-128.3" font-family="Times,serif" font-size="14.00" fill="#000000">confirmation_token :varchar</text>
<text text-anchor="start" x="8" y="-113.3" font-family="Times,serif" font-size="14.00" fill="#000000">confirmed_at :datetime</text>
<text text-anchor="start" x="8" y="-98.3" font-family="Times,serif" font-size="14.00" fill="#000000">confirmation_sent_at :datetime</text>
<text text-anchor="start" x="8" y="-83.3" font-family="Times,serif" font-size="14.00" fill="#000000">unconfirmed_email :varchar</text>
<text text-anchor="start" x="8" y="-68.3" font-family="Times,serif" font-size="14.00" fill="#000000">username :varchar</text>
<text text-anchor="start" x="8" y="-53.3" font-family="Times,serif" font-size="14.00" fill="#000000">email :varchar</text>
<text text-anchor="start" x="8" y="-38.3" font-family="Times,serif" font-size="14.00" fill="#000000">tokens :text</text>
<text text-anchor="start" x="8" y="-23.3" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="8" y="-8.3" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- Team -->
<g id="node3" class="node">
<title>Team</title>
<path fill="none" stroke="#000000" d="M229,-113C229,-113 388,-113 388,-113 394,-113 400,-119 400,-125 400,-125 400,-237 400,-237 400,-243 394,-249 388,-249 388,-249 229,-249 229,-249 223,-249 217,-243 217,-237 217,-237 217,-125 217,-125 217,-119 223,-113 229,-113"/>
<text text-anchor="middle" x="308.5" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000">Team</text>
<polyline fill="none" stroke="#000000" points="217,-226 400,-226 "/>
<text text-anchor="start" x="225" y="-210.8" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="225" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">name :varchar</text>
<text text-anchor="start" x="225" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">group_score :integer</text>
<text text-anchor="start" x="225" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">group_points_scored :integer</text>
<text text-anchor="start" x="225" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">group_points_recieved :integer</text>
<text text-anchor="start" x="225" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="225" y="-120.8" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- Match -->
<g id="node4" class="node">
<title>Match</title>
<path fill="none" stroke="#000000" d="M430,-105.5C430,-105.5 561,-105.5 561,-105.5 567,-105.5 573,-111.5 573,-117.5 573,-117.5 573,-244.5 573,-244.5 573,-250.5 567,-256.5 561,-256.5 561,-256.5 430,-256.5 430,-256.5 424,-256.5 418,-250.5 418,-244.5 418,-244.5 418,-117.5 418,-117.5 418,-111.5 424,-105.5 430,-105.5"/>
<text text-anchor="middle" x="495.5" y="-241.3" font-family="Times,serif" font-size="14.00" fill="#000000">Match</text>
<polyline fill="none" stroke="#000000" points="418,-233.5 573,-233.5 "/>
<text text-anchor="start" x="426" y="-218.3" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="426" y="-203.3" font-family="Times,serif" font-size="14.00" fill="#000000">score_team_1 :integer</text>
<text text-anchor="start" x="426" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">score_team_2 :integer</text>
<text text-anchor="start" x="426" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">state :integer</text>
<text text-anchor="start" x="426" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">position :integer</text>
<text text-anchor="start" x="426" y="-143.3" font-family="Times,serif" font-size="14.00" fill="#000000">is_group_match :boolean</text>
<text text-anchor="start" x="426" y="-128.3" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="426" y="-113.3" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- PlayoffStage -->
<g id="node5" class="node">
<title>PlayoffStage</title>
<path fill="none" stroke="#000000" d="M603,-135.5C603,-135.5 710,-135.5 710,-135.5 716,-135.5 722,-141.5 722,-147.5 722,-147.5 722,-214.5 722,-214.5 722,-220.5 716,-226.5 710,-226.5 710,-226.5 603,-226.5 603,-226.5 597,-226.5 591,-220.5 591,-214.5 591,-214.5 591,-147.5 591,-147.5 591,-141.5 597,-135.5 603,-135.5"/>
<text text-anchor="middle" x="656.5" y="-211.3" font-family="Times,serif" font-size="14.00" fill="#000000">PlayoffStage</text>
<polyline fill="none" stroke="#000000" points="591,-203.5 722,-203.5 "/>
<text text-anchor="start" x="599" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="599" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">level :integer</text>
<text text-anchor="start" x="599" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="599" y="-143.3" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- ApplicationRecord -->
<g id="node6" class="node">
<title>ApplicationRecord</title>
<ellipse fill="none" stroke="#000000" cx="656.5" cy="-437" rx="77.1866" ry="18"/>
<text text-anchor="middle" x="656.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ApplicationRecord</text>
</g>
<!-- ApplicationRecord&#45;&gt;User -->
<g id="edge1" class="edge">
<title>ApplicationRecord&#45;&gt;User</title>
<path fill="none" stroke="#000000" d="M625.9832,-420.4014C609.6872,-412.2977 589.0137,-403.1967 569.5,-398 491.3814,-377.1962 275.7356,-405.3499 207.5,-362 204.7202,-360.234 202.0024,-358.3685 199.3456,-356.4126"/>
</g>
<!-- ApplicationRecord&#45;&gt;Team -->
<g id="edge2" class="edge">
<title>ApplicationRecord&#45;&gt;Team</title>
<path fill="none" stroke="#000000" d="M624.0717,-420.587C607.9684,-412.9241 588.0359,-404.157 569.5,-398 499.9158,-374.8864 467.1794,-405.965 408.5,-362 371.1498,-334.0157 345.946,-287.7778 330.1841,-249.0416"/>
</g>
<!-- ApplicationRecord&#45;&gt;Match -->
<g id="edge3" class="edge">
<title>ApplicationRecord&#45;&gt;Match</title>
<path fill="none" stroke="#000000" d="M635.4434,-419.5253C619.2145,-405.272 597,-383.9669 581.5,-362 558.7344,-329.7362 539.2507,-290.5026 524.6137,-256.8215"/>
</g>
<!-- ApplicationRecord&#45;&gt;PlayoffStage -->
<g id="edge4" class="edge">
<title>ApplicationRecord&#45;&gt;PlayoffStage</title>
<path fill="none" stroke="#000000" d="M656.5,-418.9986C656.5,-379.5063 656.5,-284.2261 656.5,-226.9166"/>
</g>
<!-- GroupStage -->
<g id="node7" class="node">
<title>GroupStage</title>
<path fill="none" stroke="#000000" d="M752,-135.5C752,-135.5 859,-135.5 859,-135.5 865,-135.5 871,-141.5 871,-147.5 871,-147.5 871,-214.5 871,-214.5 871,-220.5 865,-226.5 859,-226.5 859,-226.5 752,-226.5 752,-226.5 746,-226.5 740,-220.5 740,-214.5 740,-214.5 740,-147.5 740,-147.5 740,-141.5 746,-135.5 752,-135.5"/>
<text text-anchor="middle" x="805.5" y="-211.3" font-family="Times,serif" font-size="14.00" fill="#000000">GroupStage</text>
<polyline fill="none" stroke="#000000" points="740,-203.5 871,-203.5 "/>
<text text-anchor="start" x="748" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="748" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">playoff_size :integer</text>
<text text-anchor="start" x="748" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="748" y="-143.3" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- ApplicationRecord&#45;&gt;GroupStage -->
<g id="edge5" class="edge">
<title>ApplicationRecord&#45;&gt;GroupStage</title>
<path fill="none" stroke="#000000" d="M677.9022,-419.3923C694.0442,-405.2275 715.8371,-384.1016 730.5,-362 758.7064,-319.4839 779.6076,-264.65 792.0805,-226.5299"/>
</g>
<!-- Group -->
<g id="node8" class="node">
<title>Group</title>
<path fill="none" stroke="#000000" d="M901,-135.5C901,-135.5 1008,-135.5 1008,-135.5 1014,-135.5 1020,-141.5 1020,-147.5 1020,-147.5 1020,-214.5 1020,-214.5 1020,-220.5 1014,-226.5 1008,-226.5 1008,-226.5 901,-226.5 901,-226.5 895,-226.5 889,-220.5 889,-214.5 889,-214.5 889,-147.5 889,-147.5 889,-141.5 895,-135.5 901,-135.5"/>
<text text-anchor="middle" x="954.5" y="-211.3" font-family="Times,serif" font-size="14.00" fill="#000000">Group</text>
<polyline fill="none" stroke="#000000" points="889,-203.5 1020,-203.5 "/>
<text text-anchor="start" x="897" y="-188.3" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="897" y="-173.3" font-family="Times,serif" font-size="14.00" fill="#000000">name :varchar</text>
<text text-anchor="start" x="897" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="897" y="-143.3" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- ApplicationRecord&#45;&gt;Group -->
<g id="edge6" class="edge">
<title>ApplicationRecord&#45;&gt;Group</title>
<path fill="none" stroke="#000000" d="M689.4512,-420.4778C705.2424,-412.9707 724.5801,-404.3663 742.5,-398 801.8235,-376.9244 832.0643,-403.3922 879.5,-362 919.3531,-327.2243 938.463,-267.9137 947.3252,-226.7051"/>
</g>
<!-- Tournament -->
<g id="node9" class="node">
<title>Tournament</title>
<path fill="none" stroke="#000000" d="M1050,-113C1050,-113 1157,-113 1157,-113 1163,-113 1169,-119 1169,-125 1169,-125 1169,-237 1169,-237 1169,-243 1163,-249 1157,-249 1157,-249 1050,-249 1050,-249 1044,-249 1038,-243 1038,-237 1038,-237 1038,-125 1038,-125 1038,-119 1044,-113 1050,-113"/>
<text text-anchor="middle" x="1103.5" y="-233.8" font-family="Times,serif" font-size="14.00" fill="#000000">Tournament</text>
<polyline fill="none" stroke="#000000" points="1038,-226 1169,-226 "/>
<text text-anchor="start" x="1046" y="-210.8" font-family="Times,serif" font-size="14.00" fill="#000000">id :integer</text>
<text text-anchor="start" x="1046" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">name :varchar</text>
<text text-anchor="start" x="1046" y="-180.8" font-family="Times,serif" font-size="14.00" fill="#000000">code :varchar</text>
<text text-anchor="start" x="1046" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000">description :varchar</text>
<text text-anchor="start" x="1046" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">public :boolean</text>
<text text-anchor="start" x="1046" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">created_at :datetime</text>
<text text-anchor="start" x="1046" y="-120.8" font-family="Times,serif" font-size="14.00" fill="#000000">updated_at :datetime</text>
</g>
<!-- ApplicationRecord&#45;&gt;Tournament -->
<g id="edge7" class="edge">
<title>ApplicationRecord&#45;&gt;Tournament</title>
<path fill="none" stroke="#000000" d="M687.0975,-420.4002C703.1533,-412.3993 723.41,-403.3917 742.5,-398 804.3577,-380.5291 978.4755,-401.0909 1029.5,-362 1064.6682,-335.057 1083.211,-288.5484 1092.9397,-249.4233"/>
</g>
<!-- ActiveStorage::Variation -->
<g id="node10" class="node">
<title>ActiveStorage::Variation</title>
<polygon fill="none" stroke="#000000" points="751.5,-414 751.5,-460 899.5,-460 899.5,-414 751.5,-414"/>
<text text-anchor="middle" x="825.5" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Variation</text>
<polyline fill="none" stroke="#000000" points="751.5,-437 899.5,-437 "/>
<text text-anchor="middle" x="825.5" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- ActiveStorage::Blob::Representable -->
<g id="node11" class="node">
<title>ActiveStorage::Blob::Representable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="1127,-455 918,-455 918,-419 1127,-419 1127,-455"/>
<text text-anchor="middle" x="1022.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Representable</text>
</g>
<!-- ActiveStorage::Blob::Identifiable -->
<g id="node12" class="node">
<title>ActiveStorage::Blob::Identifiable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="1339.5,-455 1145.5,-455 1145.5,-419 1339.5,-419 1339.5,-455"/>
<text text-anchor="middle" x="1242.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Identifiable</text>
</g>
<!-- ActiveStorage::Blob::Analyzable -->
<g id="node13" class="node">
<title>ActiveStorage::Blob::Analyzable</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="1551.5,-455 1357.5,-455 1357.5,-419 1551.5,-419 1551.5,-455"/>
<text text-anchor="middle" x="1454.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Blob::Analyzable</text>
</g>
<!-- ActiveStorage::Preview -->
<g id="node14" class="node">
<title>ActiveStorage::Preview</title>
<polygon fill="none" stroke="#000000" points="1570,-414 1570,-460 1711,-460 1711,-414 1570,-414"/>
<text text-anchor="middle" x="1640.5" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Preview</text>
<polyline fill="none" stroke="#000000" points="1570,-437 1711,-437 "/>
<text text-anchor="middle" x="1640.5" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- ActiveStorage::Variant -->
<g id="node15" class="node">
<title>ActiveStorage::Variant</title>
<polygon fill="none" stroke="#000000" points="1729,-414 1729,-460 1866,-460 1866,-414 1729,-414"/>
<text text-anchor="middle" x="1797.5" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Variant</text>
<polyline fill="none" stroke="#000000" points="1729,-437 1866,-437 "/>
<text text-anchor="middle" x="1797.5" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- ActiveStorage::Filename -->
<g id="node16" class="node">
<title>ActiveStorage::Filename</title>
<polygon fill="none" stroke="#000000" points="1884,-414 1884,-460 2033,-460 2033,-414 1884,-414"/>
<text text-anchor="middle" x="1958.5" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Filename</text>
<polyline fill="none" stroke="#000000" points="1884,-437 2033,-437 "/>
<text text-anchor="middle" x="1958.5" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- ActiveStorage::Current -->
<g id="node17" class="node">
<title>ActiveStorage::Current</title>
<polygon fill="none" stroke="#000000" points="2108.5,-158 2108.5,-204 2248.5,-204 2248.5,-158 2108.5,-158"/>
<text text-anchor="middle" x="2178.5" y="-188.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Current</text>
<polyline fill="none" stroke="#000000" points="2108.5,-181 2248.5,-181 "/>
<text text-anchor="middle" x="2178.5" y="-165.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- ActiveStorage::Filename::Parameters -->
<g id="node18" class="node">
<title>ActiveStorage::Filename::Parameters</title>
<polygon fill="none" stroke="#000000" points="2323.5,-414 2323.5,-460 2541.5,-460 2541.5,-414 2323.5,-414"/>
<text text-anchor="middle" x="2432.5" y="-444.8" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveStorage::Filename::Parameters</text>
<polyline fill="none" stroke="#000000" points="2323.5,-437 2541.5,-437 "/>
<text text-anchor="middle" x="2432.5" y="-421.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- DeviseTokenAuth::Concerns::User -->
<g id="node19" class="node">
<title>DeviseTokenAuth::Concerns::User</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="2763.5,-455 2559.5,-455 2559.5,-419 2763.5,-419 2763.5,-455"/>
<text text-anchor="middle" x="2661.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::Concerns::User</text>
</g>
<!-- DeviseTokenAuth::Concerns::UserOmniauthCallbacks -->
<g id="node20" class="node">
<title>DeviseTokenAuth::Concerns::UserOmniauthCallbacks</title>
<polygon fill="none" stroke="#000000" stroke-dasharray="1,5" points="3093.5,-455 2781.5,-455 2781.5,-419 3093.5,-419 3093.5,-455"/>
<text text-anchor="middle" x="2937.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">DeviseTokenAuth::Concerns::UserOmniauthCallbacks</text>
</g>
<!-- ActiveSupport::CurrentAttributes -->
<g id="node21" class="node">
<title>ActiveSupport::CurrentAttributes</title>
<ellipse fill="none" stroke="#000000" cx="2178.5" cy="-437" rx="127.2775" ry="18"/>
<text text-anchor="middle" x="2178.5" y="-433.3" font-family="Times,serif" font-size="14.00" fill="#000000">ActiveSupport::CurrentAttributes</text>
</g>
<!-- ActiveSupport::CurrentAttributes&#45;&gt;ActiveStorage::Current -->
<g id="edge8" class="edge">
<title>ActiveSupport::CurrentAttributes&#45;&gt;ActiveStorage::Current</title>
<path fill="none" stroke="#000000" d="M2178.5,-418.9986C2178.5,-373.5881 2178.5,-254.4167 2178.5,-204.0257"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB