summaryrefslogtreecommitdiffhomepage
path: root/planning/structure.puml
blob: 355ad18445d063a9893bd0cc9ea31490fd79f17c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
@startuml

state "General Process" as General_Process {
	state Code
	state JSON
	state Gem {
		state Headers
		state Structs {
			state Struct_Type_Init
			state Struct_Accessors
			state Struct_Func_Init
		}
		state Methods
		state Gem_Initializer {
			state Define_Module
			state Define_Struct_Classes
			state Define_Struct_Methods
			state Define_Functions
		}
		state Gem_Finalizer

		Code -r-> JSON
		JSON -d-> Gem
		
		Headers -d-> Structs
		Structs -d-> Methods
		Methods -d-> Gem_Initializer
		Gem_Initializer -d-> Gem_Finalizer
		
		Define_Module -d-> Define_Struct_Classes
		Define_Struct_Classes -r-> Define_Struct_Methods
		Define_Struct_Classes -d-> Define_Functions
	}
}
state "Method" as C_Function {
	state "Initialize Vars" as Initialize_Vars_C_Function
	state fork_kw_args_c_function <<fork>>
	state "Get Single Arg" as Get_Arg_C_Function
	state "Get Kwargs" as Get_Kwargs_C_Function
	state "Assign Arg" as Assign_Arg_C_Function
	state "Assign Kwargs" as Assign_Kwargs_C_Function
	state "Call Function" as Call_C_Function
	state fork_wrap_struct_c_function <<fork>>
	state "Wrap Struct" as Wrap_Struct_C_Function
	state "Return Value" as Return_C_Function

	[*] -d-> Initialize_Vars_C_Function
	[*] -d-> Call_C_Function

	Initialize_Vars_C_Function -d-> fork_kw_args_c_function
	
	fork_kw_args_c_function -d-> Get_Arg_C_Function
	Get_Arg_C_Function -d-> Assign_Arg_C_Function
	
	fork_kw_args_c_function -d-> Get_Kwargs_C_Function
	Get_Kwargs_C_Function -d-> Assign_Kwargs_C_Function
	
	Assign_Arg_C_Function -d-> Call_C_Function
	Assign_Kwargs_C_Function -d-> Call_C_Function
	
	Call_C_Function -d-> fork_wrap_struct_c_function
	fork_wrap_struct_c_function -d-> Wrap_Struct_C_Function
	
	fork_wrap_struct_c_function -d-> Return_C_Function
	Wrap_Struct_C_Function -d-> Return_C_Function
}

state "Struct Getter Method" as Struct_Getter {
	state fork_is_struct_getter <<fork>>
	state "Unwrap Struct\nand Read Value" as Unwrap_Struct_Getter
	state "Return Value" as Return_Struct_Getter
	state "Handle If Value\nIs Struct" as Handle_Struct_Value_Getter

	[*] -d-> Unwrap_Struct_Getter
	Unwrap_Struct_Getter -d-> fork_is_struct_getter
	fork_is_struct_getter -d-> Return_Struct_Getter
	fork_is_struct_getter -d-> Handle_Struct_Value_Getter
	Handle_Struct_Value_Getter -d-> Return_Struct_Getter

}

state "Struct Setter Method" as Struct_Setter {
	state "Initialize Vars" as Initialize_Vars_Setter
	state "Get Arg" as Get_Arg_Setter
	state "Unwrap And Set" as Unwrap_Struct_Setter
	state "Return Var" as Return_Setter

	[*] -d-> Initialize_Vars_Setter
	Initialize_Vars_Setter -d-> Get_Arg_Setter
	Get_Arg_Setter -d-> Unwrap_Struct_Setter
	Unwrap_Struct_Setter -d-> Return_Setter
}

state Struct_Initializer {
	state "Initialize Vars" as Initialize_Vars_Struct_Init
	state fork_kw_args_struct_init <<fork>>
	state "Get Single Arg" as Get_Arg_Struct_Init
	state "Get Kwargs" as Get_Kwargs_Struct_Init
	state "Assign Arg" as Assign_Arg_Struct_Init
	state "Assign Kwargs" as Assign_Kwargs_Struct_Init
	state "Build Struct" as Build_Struct_Struct_Init
	state "Wrap Struct" as Wrap_Struct_Struct_Init
	state "Return Ruby Object" as Return_Struct_Init

	[*] -d-> Initialize_Vars_Struct_Init

	Initialize_Vars_Struct_Init -d-> fork_kw_args_struct_init
	
	fork_kw_args_struct_init -d-> Get_Arg_Struct_Init
	Get_Arg_Struct_Init -d-> Assign_Arg_Struct_Init
	
	fork_kw_args_struct_init -d-> Get_Kwargs_Struct_Init
	Get_Kwargs_Struct_Init -d-> Assign_Kwargs_Struct_Init
	
	Assign_Arg_Struct_Init -d-> Build_Struct_Struct_Init
	Assign_Kwargs_Struct_Init -d-> Build_Struct_Struct_Init
	
	Build_Struct_Struct_Init -d-> Wrap_Struct_Struct_Init
	
	Wrap_Struct_Struct_Init -d-> Return_Struct_Init
}

	

@enduml