glib-web 0.5.71 → 0.5.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +34 -34
  3. data/app/channels/glib/channel/online_channel.rb +36 -36
  4. data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
  5. data/app/controllers/concerns/glib/auth/policy.rb +148 -148
  6. data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
  7. data/app/controllers/concerns/glib/json/libs.rb +149 -149
  8. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
  9. data/app/controllers/concerns/glib/json/transformation.rb +11 -11
  10. data/app/controllers/concerns/glib/json/traversal.rb +92 -92
  11. data/app/controllers/concerns/glib/json/ui.rb +88 -88
  12. data/app/controllers/concerns/glib/json/validation.rb +13 -13
  13. data/app/controllers/glib/home_controller.rb +54 -54
  14. data/app/helpers/glib/app_feature_support_helper.rb +16 -16
  15. data/app/helpers/glib/dynamic_images_helper.rb +55 -55
  16. data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
  17. data/app/helpers/glib/enum_helper.rb +18 -8
  18. data/app/helpers/glib/forms_helper.rb +15 -15
  19. data/app/helpers/glib/json_ui/abstract_builder.rb +309 -309
  20. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  21. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  22. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  23. data/app/helpers/glib/json_ui/action_builder/panels.rb +14 -14
  24. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  25. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  26. data/app/helpers/glib/json_ui/action_builder/windows.rb +33 -33
  27. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  28. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  29. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  30. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  31. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  32. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  33. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  34. data/app/helpers/glib/json_ui/split_builders.rb +32 -32
  35. data/app/helpers/glib/json_ui/styling_helper.rb +55 -55
  36. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  37. data/app/helpers/glib/json_ui/view_builder.rb +240 -240
  38. data/app/helpers/glib/json_ui/view_builder/banners.rb +26 -26
  39. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  40. data/app/helpers/glib/json_ui/view_builder/fields.rb +278 -279
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +256 -256
  42. data/app/helpers/glib/urls_helper.rb +12 -12
  43. data/app/models/glib/active_storage/attachment.rb +9 -9
  44. data/app/models/glib/active_storage/blob.rb +9 -9
  45. data/app/models/glib/application_record.rb +18 -18
  46. data/app/models/glib/dynamic_text_record.rb +9 -9
  47. data/app/models/glib/text.rb +95 -95
  48. data/app/policies/glib/application_policy.rb +161 -161
  49. data/app/validators/email_typo_validator.rb +38 -38
  50. data/app/validators/email_validator.rb +7 -7
  51. data/app/validators/url_validator.rb +20 -20
  52. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  53. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  54. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  55. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  56. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  57. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  58. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  59. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  60. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  61. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  62. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
  64. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  65. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  66. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  67. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  68. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  69. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -22
  70. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  71. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -37
  72. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  73. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  74. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  75. data/app/views/json_ui/garage/forms/index.json.jbuilder +113 -113
  76. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  77. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  78. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  79. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  80. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  81. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  82. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -84
  83. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +130 -130
  84. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  85. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  86. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  87. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  88. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  89. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +81 -81
  90. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  91. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  92. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  93. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  94. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  95. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  96. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  97. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  98. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  99. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  100. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  101. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  102. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  103. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  104. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  105. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  106. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  107. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  108. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  109. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  110. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  111. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  112. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  113. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  114. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  115. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  116. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  117. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  118. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  119. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  120. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  121. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  122. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  123. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -134
  124. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  125. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  126. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  127. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -0
  128. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  129. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  130. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  131. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  132. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  133. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  134. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  135. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  136. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  137. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  138. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  139. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  140. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  141. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  142. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  143. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  144. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  145. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  146. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -14
  147. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  148. data/app/views/json_ui/garage/views/index.json.jbuilder +67 -67
  149. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  150. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  151. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  152. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  153. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  154. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  155. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  156. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  157. data/config/routes.rb +7 -7
  158. data/lib/generators/glib/install_generator.rb +24 -24
  159. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  160. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  161. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  162. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  163. data/lib/generators/templates/database.yml +107 -107
  164. data/lib/generators/templates/dynamic_text.rb +2 -2
  165. data/lib/glib-web.rb +9 -9
  166. data/lib/glib/crypt/utils.rb +26 -26
  167. data/lib/glib/dynamic_text/config.rb +21 -21
  168. data/lib/glib/engine.rb +7 -7
  169. data/lib/glib/json_crawler.rb +11 -11
  170. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  171. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  172. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  173. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  174. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  175. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  176. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  177. data/lib/glib/json_crawler/coverage.rb +20 -20
  178. data/lib/glib/json_crawler/http.rb +120 -120
  179. data/lib/glib/json_crawler/router.rb +98 -98
  180. data/lib/glib/mailer_tester.rb +36 -36
  181. data/lib/glib/test_helpers.rb +52 -52
  182. data/lib/glib/value.rb +7 -7
  183. data/lib/glib/version.rb +5 -5
  184. data/lib/tasks/db.rake +95 -95
  185. metadata +3 -3
@@ -1,140 +1,140 @@
1
- module Glib
2
- module JsonUi
3
- class ActionBuilder < AbstractBuilder
4
- def initialize(json, page, multiple)
5
- super(json, page)
6
-
7
- @multiple = multiple
8
- end
9
-
10
- def method_missing(m, *args)
11
- if @multiple
12
- add_element_to_array_v1 'action', m, *args
13
- else
14
- add_singleton_element_v1 'action', m, *args
15
- end
16
- end
17
-
18
- class Action < JsonUiElement
19
- # def analytics(value)
20
- # if value.is_a?(String)
21
- # @analyticsEnabled = true
22
- # @analyticsId = value
23
- # else
24
- # @analyticsEnabled = value == true
25
- # end
26
- # end
27
-
28
- # # Override
29
- # def created
30
- # if @analyticsEnabled
31
- # suffix = @analyticsId
32
- # # TODO: recognize_path() needs `method` as a second argument for POST request
33
- # if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
34
- # suffix = "#{route[:controller]}_#{route[:action]}"
35
- # end
36
-
37
- # if suffix
38
- # json.analytics do
39
- # json.track :event
40
- # json.nameSuffix suffix
41
- # end
42
- # end
43
-
44
- # end
45
- # end
46
- end
47
-
48
- ### Action definitions
49
-
50
- class RunMultiple < Action
51
- def childActions(block)
52
- json.childActions do
53
- block.call ActionBuilder.new(json, page, true)
54
- end
55
- end
56
- end
57
-
58
- module Forms
59
- class Submit < Action
60
- end
61
- end
62
-
63
- module Auth
64
- class SaveCsrfToken < Action
65
- string :token
66
- action :onSave
67
- end
68
-
69
- class Restart < Action
70
- end
71
-
72
- class CreditCard < Action
73
- string :publicKey
74
- string :clientSecret
75
- action :onSuccess
76
- action :onFailure
77
- bool :setupOnly
78
- end
79
- end
80
-
81
- module Devices
82
- class GetPushToken < Action
83
- string :postUrl
84
- string :paramNameForToken
85
-
86
- # Use postUrl instead
87
- # action :onGet
88
- end
89
- end
90
-
91
- module Analytics
92
- class LogEvent < Action
93
- string :name
94
- hash :params
95
- end
96
- end
97
-
98
- module Cables
99
- class Push < Action
100
- string :channel
101
- string :event
102
- hash :payload
103
- end
104
- end
105
-
106
- module Timeouts
107
- class Set < Action
108
- int :interval # Milliseconds
109
- action :onTimeout
110
- bool :repeat
111
- end
112
-
113
- # FUTURE
114
- class Remove < Action
115
- end
116
-
117
- # FUTURE
118
- class Clear < Action
119
- end
120
- end
121
-
122
- # FUTURE
123
- module Data
124
- class Save < Action
125
- string :key
126
- string :value
127
- action :onSave
128
- end
129
-
130
- class Remove < Action
131
- end
132
-
133
- class Clear < Action
134
- end
135
- end
136
-
137
- ###
138
- end
139
- end
140
- end
1
+ module Glib
2
+ module JsonUi
3
+ class ActionBuilder < AbstractBuilder
4
+ def initialize(json, page, multiple)
5
+ super(json, page)
6
+
7
+ @multiple = multiple
8
+ end
9
+
10
+ def method_missing(m, *args)
11
+ if @multiple
12
+ add_element_to_array_v1 'action', m, *args
13
+ else
14
+ add_singleton_element_v1 'action', m, *args
15
+ end
16
+ end
17
+
18
+ class Action < JsonUiElement
19
+ # def analytics(value)
20
+ # if value.is_a?(String)
21
+ # @analyticsEnabled = true
22
+ # @analyticsId = value
23
+ # else
24
+ # @analyticsEnabled = value == true
25
+ # end
26
+ # end
27
+
28
+ # # Override
29
+ # def created
30
+ # if @analyticsEnabled
31
+ # suffix = @analyticsId
32
+ # # TODO: recognize_path() needs `method` as a second argument for POST request
33
+ # if suffix.nil? && @url && (route = Rails.application.routes.recognize_path(@url))
34
+ # suffix = "#{route[:controller]}_#{route[:action]}"
35
+ # end
36
+
37
+ # if suffix
38
+ # json.analytics do
39
+ # json.track :event
40
+ # json.nameSuffix suffix
41
+ # end
42
+ # end
43
+
44
+ # end
45
+ # end
46
+ end
47
+
48
+ ### Action definitions
49
+
50
+ class RunMultiple < Action
51
+ def childActions(block)
52
+ json.childActions do
53
+ block.call ActionBuilder.new(json, page, true)
54
+ end
55
+ end
56
+ end
57
+
58
+ module Forms
59
+ class Submit < Action
60
+ end
61
+ end
62
+
63
+ module Auth
64
+ class SaveCsrfToken < Action
65
+ string :token
66
+ action :onSave
67
+ end
68
+
69
+ class Restart < Action
70
+ end
71
+
72
+ class CreditCard < Action
73
+ string :publicKey
74
+ string :clientSecret
75
+ action :onSuccess
76
+ action :onFailure
77
+ bool :setupOnly
78
+ end
79
+ end
80
+
81
+ module Devices
82
+ class GetPushToken < Action
83
+ string :postUrl
84
+ string :paramNameForToken
85
+
86
+ # Use postUrl instead
87
+ # action :onGet
88
+ end
89
+ end
90
+
91
+ module Analytics
92
+ class LogEvent < Action
93
+ string :name
94
+ hash :params
95
+ end
96
+ end
97
+
98
+ module Cables
99
+ class Push < Action
100
+ string :channel
101
+ string :event
102
+ hash :payload
103
+ end
104
+ end
105
+
106
+ module Timeouts
107
+ class Set < Action
108
+ int :interval # Milliseconds
109
+ action :onTimeout
110
+ bool :repeat
111
+ end
112
+
113
+ # FUTURE
114
+ class Remove < Action
115
+ end
116
+
117
+ # FUTURE
118
+ class Clear < Action
119
+ end
120
+ end
121
+
122
+ # FUTURE
123
+ module Data
124
+ class Save < Action
125
+ string :key
126
+ string :value
127
+ action :onSave
128
+ end
129
+
130
+ class Remove < Action
131
+ end
132
+
133
+ class Clear < Action
134
+ end
135
+ end
136
+
137
+ ###
138
+ end
139
+ end
140
+ end
@@ -1,58 +1,58 @@
1
- class Glib::JsonUi::ActionBuilder
2
- module Dialogs
3
- class Alert < Action
4
- string :message
5
- action :onLoad
6
- action :onClose
7
- end
8
-
9
- class Show < Action
10
- string :body
11
- action :onLoad
12
- action :onClose
13
- end
14
-
15
- # Deprecated in favour of `sheets/select`
16
- class Options < Action
17
- string :message
18
-
19
- def buttons(block)
20
- json.buttons do
21
- block.call page.menu_builder
22
- end
23
- end
24
- end
25
-
26
- class Show < Action
27
- panels_builder :content, :body
28
-
29
- # Future plan
30
- # panels_builder :content, :body, :footer
31
- end
32
-
33
- class Open < Action
34
- string :url, cache: true
35
- end
36
-
37
- class Close < Action
38
- action :onClose
39
- end
40
-
41
- class Oauth < Action
42
- hash :provider
43
- action :onSuccess
44
- string :providerParamName
45
- string :callbackUrlParamName
46
- end
47
-
48
- # TODO: Consider switching to `notifications/alert`
49
- class Notification < Action
50
- string :title
51
- string :message
52
- string :tag
53
- int :timeout
54
- action :onClick
55
- end
56
-
57
- end
58
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Dialogs
3
+ class Alert < Action
4
+ string :message
5
+ action :onLoad
6
+ action :onClose
7
+ end
8
+
9
+ class Show < Action
10
+ string :body
11
+ action :onLoad
12
+ action :onClose
13
+ end
14
+
15
+ # Deprecated in favour of `sheets/select`
16
+ class Options < Action
17
+ string :message
18
+
19
+ def buttons(block)
20
+ json.buttons do
21
+ block.call page.menu_builder
22
+ end
23
+ end
24
+ end
25
+
26
+ class Show < Action
27
+ panels_builder :content, :body
28
+
29
+ # Future plan
30
+ # panels_builder :content, :body, :footer
31
+ end
32
+
33
+ class Open < Action
34
+ string :url, cache: true
35
+ end
36
+
37
+ class Close < Action
38
+ action :onClose
39
+ end
40
+
41
+ class Oauth < Action
42
+ hash :provider
43
+ action :onSuccess
44
+ string :providerParamName
45
+ string :callbackUrlParamName
46
+ end
47
+
48
+ # TODO: Consider switching to `notifications/alert`
49
+ class Notification < Action
50
+ string :title
51
+ string :message
52
+ string :tag
53
+ int :timeout
54
+ action :onClick
55
+ end
56
+
57
+ end
58
+ end
@@ -1,39 +1,39 @@
1
- class Glib::JsonUi::ActionBuilder
2
- module Http
3
- class AbstractHttp < Action
4
- string :url, cache: true
5
-
6
- def formData(hash)
7
- form_data = {}
8
- hash.each do |key, value|
9
- flatten_nested_params(form_data, key, value)
10
- end
11
- json.formData form_data
12
- end
13
-
14
- def flatten_nested_params(form_data, key, value)
15
- if value.is_a?(Hash)
16
- value.each do |nested_key, nested_value|
17
- flatten_nested_params(form_data, "#{key}[#{nested_key}]", nested_value)
18
- end
19
- else
20
- form_data[key] = value
21
- end
22
- end
23
- end
24
-
25
- class Post < AbstractHttp
26
- end
27
-
28
- class Patch < AbstractHttp
29
- # string :url, cache: true
30
- # hash :formData
31
- end
32
-
33
- class Delete < AbstractHttp
34
- # string :url, cache: true
35
- # hash :formData
36
- end
37
-
38
- end
39
- end
1
+ class Glib::JsonUi::ActionBuilder
2
+ module Http
3
+ class AbstractHttp < Action
4
+ string :url, cache: true
5
+
6
+ def formData(hash)
7
+ form_data = {}
8
+ hash.each do |key, value|
9
+ flatten_nested_params(form_data, key, value)
10
+ end
11
+ json.formData form_data
12
+ end
13
+
14
+ def flatten_nested_params(form_data, key, value)
15
+ if value.is_a?(Hash)
16
+ value.each do |nested_key, nested_value|
17
+ flatten_nested_params(form_data, "#{key}[#{nested_key}]", nested_value)
18
+ end
19
+ else
20
+ form_data[key] = value
21
+ end
22
+ end
23
+ end
24
+
25
+ class Post < AbstractHttp
26
+ end
27
+
28
+ class Patch < AbstractHttp
29
+ # string :url, cache: true
30
+ # hash :formData
31
+ end
32
+
33
+ class Delete < AbstractHttp
34
+ # string :url, cache: true
35
+ # hash :formData
36
+ end
37
+
38
+ end
39
+ end