glib-web 0.5.82 → 0.5.83

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 (191) 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 +149 -149
  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 -18
  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/dialogs.rb +58 -58
  21. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  22. data/app/helpers/glib/json_ui/action_builder/iap.rb +15 -15
  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 +38 -38
  27. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  28. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  29. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  30. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  31. data/app/helpers/glib/json_ui/list_builders.rb +110 -110
  32. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  33. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  34. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  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/banners.rb +26 -26
  38. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  39. data/app/helpers/glib/json_ui/view_builder/fields.rb +291 -291
  40. data/app/helpers/glib/json_ui/view_builder/iap.rb +11 -11
  41. data/app/helpers/glib/json_ui/view_builder/panels.rb +258 -256
  42. data/app/helpers/glib/json_ui/view_builder.rb +247 -246
  43. data/app/helpers/glib/urls_helper.rb +12 -12
  44. data/app/models/concerns/glib/soft_deletable.rb +68 -68
  45. data/app/models/glib/active_storage/attachment.rb +9 -9
  46. data/app/models/glib/active_storage/blob.rb +9 -9
  47. data/app/models/glib/application_record.rb +18 -18
  48. data/app/models/glib/dynamic_text_record.rb +9 -9
  49. data/app/models/glib/text.rb +95 -95
  50. data/app/policies/glib/application_policy.rb +191 -191
  51. data/app/validators/email_typo_validator.rb +38 -38
  52. data/app/validators/email_validator.rb +7 -7
  53. data/app/validators/url_validator.rb +20 -20
  54. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  55. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  56. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  57. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +18 -18
  58. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  59. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  60. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  61. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +24 -24
  62. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  63. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  64. data/app/views/json_ui/garage/actions/index.json.jbuilder +24 -24
  65. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +10 -10
  66. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  67. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  68. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  69. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  70. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  71. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +24 -24
  72. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  73. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +37 -37
  74. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  75. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  76. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  77. data/app/views/json_ui/garage/forms/index.json.jbuilder +116 -116
  78. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +40 -40
  79. data/app/views/json_ui/garage/forms/online_participant1.json.jbuilder +25 -25
  80. data/app/views/json_ui/garage/forms/online_participant2.json.jbuilder +25 -25
  81. data/app/views/json_ui/garage/forms/payments.json.jbuilder +34 -34
  82. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +81 -81
  83. data/app/views/json_ui/garage/forms/ratings.json.jbuilder +49 -49
  84. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  85. data/app/views/json_ui/garage/forms/selects.json.jbuilder +91 -91
  86. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +150 -150
  87. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +35 -35
  88. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  89. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +26 -26
  90. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  91. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  92. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +65 -65
  93. data/app/views/json_ui/garage/forms/timers.json.jbuilder +120 -120
  94. data/app/views/json_ui/garage/home/blank.json.jbuilder +10 -10
  95. data/app/views/json_ui/garage/home/index.json.jbuilder +36 -36
  96. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  97. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +30 -28
  98. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  99. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  100. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +94 -94
  101. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +62 -62
  102. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  103. data/app/views/json_ui/garage/lists/index.json.jbuilder +38 -38
  104. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  105. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  106. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +114 -114
  107. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  108. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  109. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  110. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  111. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  112. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  113. data/app/views/json_ui/garage/pages/index.json.jbuilder +62 -62
  114. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  115. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +13 -13
  116. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  117. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  118. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  119. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +31 -31
  120. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  121. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  122. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +38 -38
  123. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  124. data/app/views/json_ui/garage/panels/flow.json.jbuilder +59 -59
  125. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  126. data/app/views/json_ui/garage/panels/index.json.jbuilder +138 -138
  127. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  128. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  129. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  130. data/app/views/json_ui/garage/panels/ul.json.jbuilder +33 -33
  131. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +55 -55
  132. data/app/views/json_ui/garage/panels/web.json.jbuilder +15 -15
  133. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  134. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  135. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  136. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  137. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  138. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  139. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  140. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  141. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  142. data/app/views/json_ui/garage/tables/layout.json.jbuilder +40 -40
  143. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  144. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  145. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  146. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  147. data/app/views/json_ui/garage/views/controls.json.jbuilder +37 -37
  148. data/app/views/json_ui/garage/views/iap.json.jbuilder +21 -21
  149. data/app/views/json_ui/garage/views/icon_names.json.jbuilder +1450 -1450
  150. data/app/views/json_ui/garage/views/icons.json.jbuilder +15 -15
  151. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  152. data/app/views/json_ui/garage/views/index.json.jbuilder +83 -83
  153. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  154. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  155. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  156. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  157. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  158. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  159. data/app/views/json_ui/garage/views/progress.json.jbuilder +31 -31
  160. data/app/views/json_ui/garage/views/texts.json.jbuilder +35 -35
  161. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  162. data/config/routes.rb +7 -7
  163. data/lib/generators/glib/install_generator.rb +24 -24
  164. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  165. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  166. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  167. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  168. data/lib/generators/templates/database.yml +107 -107
  169. data/lib/generators/templates/dynamic_text.rb +2 -2
  170. data/lib/glib/crypt/utils.rb +26 -26
  171. data/lib/glib/dynamic_text/config.rb +21 -21
  172. data/lib/glib/engine.rb +7 -7
  173. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  174. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  175. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  176. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  177. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  178. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  179. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  180. data/lib/glib/json_crawler/coverage.rb +20 -20
  181. data/lib/glib/json_crawler/http.rb +120 -120
  182. data/lib/glib/json_crawler/router.rb +90 -90
  183. data/lib/glib/json_crawler.rb +11 -11
  184. data/lib/glib/mailer_tester.rb +36 -36
  185. data/lib/glib/test_helpers.rb +52 -52
  186. data/lib/glib/value.rb +7 -7
  187. data/lib/glib/version.rb +5 -5
  188. data/lib/glib-web.rb +9 -9
  189. data/lib/tasks/db.rake +95 -95
  190. metadata +3 -3
  191. data/app/helpers/glib/json_ui/split_builders.rb +0 -32
@@ -1,52 +1,52 @@
1
- module Glib
2
- module TestHelpers
3
- def response_assert_equal
4
- expected = __get_previous_result_from_git
5
- result = __log(response.body)
6
- assert_equal JSON.parse(expected), JSON.parse(result), "Result mismatch! #{__git_is_available? ? `git diff #{__log_dir}/#{__log_file}` : ''}"
7
- end
8
-
9
- private
10
- def __git_is_available?
11
- @__git_is_available ||= (`git status 2>&1` =~ /fatal/).nil?
12
- end
13
-
14
- def __log_dir
15
- if @__log_dir.nil?
16
- @__log_dir = File.expand_path(
17
- "#{Rails.root}/test/controllers/#{self.class.to_s.underscore}_results",
18
- File.dirname(__FILE__)
19
- )
20
- unless File.directory?(@__log_dir)
21
- FileUtils.mkdir_p(@__log_dir)
22
- end
23
- end
24
- @__log_dir
25
- end
26
-
27
- def __log_file
28
- @__log_file ||= "#{self.method_name}.json"
29
- end
30
-
31
- def __log(json)
32
- file = File.open("#{File.join(__log_dir, __log_file)}", 'w') do |f|
33
- f << JSON.pretty_generate(JSON.parse(json))
34
- end
35
- file.close
36
- json
37
- end
38
-
39
- def __get_previous_result_from_git
40
- if __git_is_available?
41
- `git checkout -- "#{File.join(__log_dir, __log_file)}" > /dev/null 2>&1`
42
- end
43
- if File.exist?(
44
- File.join(__log_dir, __log_file)
45
- )
46
- File.read(File.join(__log_dir, __log_file))
47
- else
48
- "\{\}"
49
- end
50
- end
51
- end
52
- end
1
+ module Glib
2
+ module TestHelpers
3
+ def response_assert_equal
4
+ expected = __get_previous_result_from_git
5
+ result = __log(response.body)
6
+ assert_equal JSON.parse(expected), JSON.parse(result), "Result mismatch! #{__git_is_available? ? `git diff #{__log_dir}/#{__log_file}` : ''}"
7
+ end
8
+
9
+ private
10
+ def __git_is_available?
11
+ @__git_is_available ||= (`git status 2>&1` =~ /fatal/).nil?
12
+ end
13
+
14
+ def __log_dir
15
+ if @__log_dir.nil?
16
+ @__log_dir = File.expand_path(
17
+ "#{Rails.root}/test/controllers/#{self.class.to_s.underscore}_results",
18
+ File.dirname(__FILE__)
19
+ )
20
+ unless File.directory?(@__log_dir)
21
+ FileUtils.mkdir_p(@__log_dir)
22
+ end
23
+ end
24
+ @__log_dir
25
+ end
26
+
27
+ def __log_file
28
+ @__log_file ||= "#{self.method_name}.json"
29
+ end
30
+
31
+ def __log(json)
32
+ file = File.open("#{File.join(__log_dir, __log_file)}", 'w') do |f|
33
+ f << JSON.pretty_generate(JSON.parse(json))
34
+ end
35
+ file.close
36
+ json
37
+ end
38
+
39
+ def __get_previous_result_from_git
40
+ if __git_is_available?
41
+ `git checkout -- "#{File.join(__log_dir, __log_file)}" > /dev/null 2>&1`
42
+ end
43
+ if File.exist?(
44
+ File.join(__log_dir, __log_file)
45
+ )
46
+ File.read(File.join(__log_dir, __log_file))
47
+ else
48
+ "\{\}"
49
+ end
50
+ end
51
+ end
52
+ end
data/lib/glib/value.rb CHANGED
@@ -1,7 +1,7 @@
1
- module Glib
2
- module Value
3
- # See ViewBuilder::Fields
4
- class DEFAULT
5
- end
6
- end
7
- end
1
+ module Glib
2
+ module Value
3
+ # See ViewBuilder::Fields
4
+ class DEFAULT
5
+ end
6
+ end
7
+ end
data/lib/glib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
- module Glib
2
- module Web
3
- VERSION = '0.0.1'
4
- end
5
- end
1
+ module Glib
2
+ module Web
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
data/lib/glib-web.rb CHANGED
@@ -1,9 +1,9 @@
1
- require 'glib/version'
2
- require 'glib/engine' if defined?(::Rails)
3
- require 'glib/value'
4
- require 'glib/json_crawler'
5
-
6
- require 'glib/dynamic_text'
7
- require 'glib/crypt'
8
- require 'glib/test_helpers'
9
- require 'glib/mailer_tester'
1
+ require 'glib/version'
2
+ require 'glib/engine' if defined?(::Rails)
3
+ require 'glib/value'
4
+ require 'glib/json_crawler'
5
+
6
+ require 'glib/dynamic_text'
7
+ require 'glib/crypt'
8
+ require 'glib/test_helpers'
9
+ require 'glib/mailer_tester'
data/lib/tasks/db.rake CHANGED
@@ -1,95 +1,95 @@
1
- desc 'Run migration scripts in db/migrate'
2
-
3
- Rake::Task['db:structure:dump'].clear
4
-
5
- namespace :db do
6
- namespace :fixtures do
7
- # Sourced from https://raw.githubusercontent.com/thams/db_fixtures_dump
8
- # Original from http://snippets.dzone.com/posts/show/4468 by MichaelBoutros
9
- #
10
- # Optimized version which uses to_yaml for content creation and checks
11
- # that models are ActiveRecord::Base models before trying to fetch
12
- # them from database.
13
-
14
- # Then forked from https://gist.github.com/iiska/1527911
15
- #
16
- # fixed obsolete use of RAILS_ROOT, glob
17
- # allow to specify output directory by FIXTURES_PATH
18
-
19
- desc 'Dumps all models into fixtures.'
20
- task dump: :environment do
21
- models = Dir.glob(Rails.root + 'app/models/**.rb').map do |s|
22
- Pathname.new(s).basename.to_s.gsub(/\.rb$/, '').camelize
23
- end
24
-
25
- begin
26
- active_storage_classes = ['ActiveStorage::Attachment', 'ActiveStorage::Blob']
27
- active_storage_classes.each do |klass|
28
- klass.constantize
29
- models << klass
30
- end
31
- rescue NameError
32
- puts 'ActiveStorage disabled'
33
- end
34
-
35
- # specify FIXTURES_PATH to test/fixtures if you do test:unit
36
- dump_dir = ENV['FIXTURES_PATH'] || 'test/fixtures/'
37
-
38
- excludes = YAML.load_file(File.join(Rails.root, 'config', 'excluded_fixtures.yml'))
39
-
40
- puts 'Found models: ' + models.join(', ')
41
- puts 'Excluding: ' + excludes.join(', ')
42
- puts 'Dumping to: ' + dump_dir
43
-
44
- models.each do |m|
45
- unless excludes.include?(m)
46
- model = m.constantize
47
- next unless model.ancestors.include?(ActiveRecord::Base)
48
-
49
- ids = model.column_names.select { |k| k.ends_with?('_id') }.sort
50
-
51
- entries = if model.column_names.include?('id')
52
- model.unscoped.order(:id).all
53
- elsif ids.any?
54
- model.unscoped.order(ids).all
55
- else
56
- model.unscoped.all
57
- end
58
-
59
- puts "Dumping model: #{m} (#{entries.length} entries)"
60
-
61
- model_file = File.join(Rails.root, dump_dir, model.table_name + '.yml')
62
- output = {}
63
-
64
- entries.each do |a|
65
- attrs = Hash[a.attributes.sort]
66
- attrs.delete_if { |k, v| v.nil? }
67
-
68
- id = if attrs.include?('id')
69
- [a.id]
70
- elsif ids.any?
71
- attrs.slice(*ids).values
72
- else
73
- [0]
74
- end
75
-
76
- attrs.each do |key, value|
77
- if value.is_a? ActiveSupport::TimeWithZone
78
- # Time.at(id.compact.inject(:+) * 100000).utc
79
- attrs[key] = value.utc
80
- elsif value.is_a? ActiveSupport::HashWithIndifferentAccess
81
- attrs[key] = value.to_json
82
- end
83
- end
84
-
85
- output["#{m}_#{id.join('_')}"] = attrs
86
- end
87
-
88
- file = File.open(model_file, 'w')
89
- file << output.to_yaml
90
- file.close
91
- end
92
- end
93
- end
94
- end
95
- end
1
+ desc 'Run migration scripts in db/migrate'
2
+
3
+ Rake::Task['db:structure:dump'].clear
4
+
5
+ namespace :db do
6
+ namespace :fixtures do
7
+ # Sourced from https://raw.githubusercontent.com/thams/db_fixtures_dump
8
+ # Original from http://snippets.dzone.com/posts/show/4468 by MichaelBoutros
9
+ #
10
+ # Optimized version which uses to_yaml for content creation and checks
11
+ # that models are ActiveRecord::Base models before trying to fetch
12
+ # them from database.
13
+
14
+ # Then forked from https://gist.github.com/iiska/1527911
15
+ #
16
+ # fixed obsolete use of RAILS_ROOT, glob
17
+ # allow to specify output directory by FIXTURES_PATH
18
+
19
+ desc 'Dumps all models into fixtures.'
20
+ task dump: :environment do
21
+ models = Dir.glob(Rails.root + 'app/models/**.rb').map do |s|
22
+ Pathname.new(s).basename.to_s.gsub(/\.rb$/, '').camelize
23
+ end
24
+
25
+ begin
26
+ active_storage_classes = ['ActiveStorage::Attachment', 'ActiveStorage::Blob']
27
+ active_storage_classes.each do |klass|
28
+ klass.constantize
29
+ models << klass
30
+ end
31
+ rescue NameError
32
+ puts 'ActiveStorage disabled'
33
+ end
34
+
35
+ # specify FIXTURES_PATH to test/fixtures if you do test:unit
36
+ dump_dir = ENV['FIXTURES_PATH'] || 'test/fixtures/'
37
+
38
+ excludes = YAML.load_file(File.join(Rails.root, 'config', 'excluded_fixtures.yml'))
39
+
40
+ puts 'Found models: ' + models.join(', ')
41
+ puts 'Excluding: ' + excludes.join(', ')
42
+ puts 'Dumping to: ' + dump_dir
43
+
44
+ models.each do |m|
45
+ unless excludes.include?(m)
46
+ model = m.constantize
47
+ next unless model.ancestors.include?(ActiveRecord::Base)
48
+
49
+ ids = model.column_names.select { |k| k.ends_with?('_id') }.sort
50
+
51
+ entries = if model.column_names.include?('id')
52
+ model.unscoped.order(:id).all
53
+ elsif ids.any?
54
+ model.unscoped.order(ids).all
55
+ else
56
+ model.unscoped.all
57
+ end
58
+
59
+ puts "Dumping model: #{m} (#{entries.length} entries)"
60
+
61
+ model_file = File.join(Rails.root, dump_dir, model.table_name + '.yml')
62
+ output = {}
63
+
64
+ entries.each do |a|
65
+ attrs = Hash[a.attributes.sort]
66
+ attrs.delete_if { |k, v| v.nil? }
67
+
68
+ id = if attrs.include?('id')
69
+ [a.id]
70
+ elsif ids.any?
71
+ attrs.slice(*ids).values
72
+ else
73
+ [0]
74
+ end
75
+
76
+ attrs.each do |key, value|
77
+ if value.is_a? ActiveSupport::TimeWithZone
78
+ # Time.at(id.compact.inject(:+) * 100000).utc
79
+ attrs[key] = value.utc
80
+ elsif value.is_a? ActiveSupport::HashWithIndifferentAccess
81
+ attrs[key] = value.to_json
82
+ end
83
+ end
84
+
85
+ output["#{m}_#{id.join('_')}"] = attrs
86
+ end
87
+
88
+ file = File.open(model_file, 'w')
89
+ file << output.to_yaml
90
+ file.close
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.82
4
+ version: 0.5.83
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -105,7 +105,6 @@ files:
105
105
  - app/helpers/glib/json_ui/menu_builder.rb
106
106
  - app/helpers/glib/json_ui/page_helper.rb
107
107
  - app/helpers/glib/json_ui/response_helper.rb
108
- - app/helpers/glib/json_ui/split_builders.rb
109
108
  - app/helpers/glib/json_ui/styling_helper.rb
110
109
  - app/helpers/glib/json_ui/table_builders.rb
111
110
  - app/helpers/glib/json_ui/view_builder.rb
@@ -281,7 +280,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
280
  - !ruby/object:Gem::Version
282
281
  version: '0'
283
282
  requirements: []
284
- rubygems_version: 3.1.4
283
+ rubyforge_project:
284
+ rubygems_version: 2.7.6
285
285
  signing_key:
286
286
  specification_version: 4
287
287
  summary: ''
@@ -1,32 +0,0 @@
1
- module Glib
2
- module JsonUi
3
- module SplitBuilders
4
-
5
- class Content < AbstractBuilder
6
- def initialize(json, page, template)
7
- super json, page
8
- @template = template
9
- end
10
-
11
- def left(options = {})
12
- json.left do
13
- page.vertical_content(options)
14
- end
15
- end
16
-
17
- def center(options = {})
18
- json.center do
19
- page.vertical_content(options)
20
- end
21
- end
22
-
23
- def right(options = {})
24
- json.right do
25
- page.vertical_content(options)
26
- end
27
- end
28
- end
29
-
30
- end
31
- end
32
- end