has_helpers 5.0.2

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 (748) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +38 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +10 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/.tekton/Chart.yaml +14 -0
  8. data/.tekton/templates/pipelinerun.yaml +44 -0
  9. data/.tekton/values-main.yaml +53 -0
  10. data/.tekton/values-pr.yaml +40 -0
  11. data/.tekton/values.yaml +17 -0
  12. data/.tool-versions +1 -0
  13. data/CHANGELOG.md +204 -0
  14. data/Gemfile +25 -0
  15. data/README.md +76 -0
  16. data/Rakefile +46 -0
  17. data/app/api/has_helpers/rack_api.rb +116 -0
  18. data/app/api/has_helpers/search_api.rb +173 -0
  19. data/app/assets/stylesheets/has_helpers/base.scss +5 -0
  20. data/app/assets/stylesheets/has_helpers/color_palette.scss +33 -0
  21. data/app/assets/stylesheets/has_helpers/color_palettes/default.scss +11 -0
  22. data/app/assets/stylesheets/has_helpers/components/dataset.scss +43 -0
  23. data/app/assets/stylesheets/has_helpers/mixins.scss +149 -0
  24. data/app/commands/has_helpers/cards/available_cards_command.rb +98 -0
  25. data/app/commands/has_helpers/cards/card_data_command.rb +1062 -0
  26. data/app/commands/reports/base_options.rb +79 -0
  27. data/app/commands/reports/belongs_to_options.rb +178 -0
  28. data/app/commands/reports/constant_options.rb +66 -0
  29. data/app/commands/reports/external_graphql_client.rb +116 -0
  30. data/app/commands/reports/fill_dates.rb +65 -0
  31. data/app/commands/reports/filter_option_generator.rb +186 -0
  32. data/app/commands/reports/generator.rb +310 -0
  33. data/app/commands/reports/has_many_options.rb +105 -0
  34. data/app/commands/reports/importer.rb +132 -0
  35. data/app/commands/reports/nested_attribute_options.rb +134 -0
  36. data/app/constants/color.rb +9 -0
  37. data/app/constants/file_format.rb +12 -0
  38. data/app/constants/has_helpers/cards/card_custom_field.rb +12 -0
  39. data/app/constants/has_helpers/cards/card_data_type.rb +11 -0
  40. data/app/constants/has_helpers/cards/card_identifier.rb +10 -0
  41. data/app/constants/has_helpers/cards/card_layout_type.rb +11 -0
  42. data/app/constants/has_helpers/cards/card_variant_type.rb +12 -0
  43. data/app/constants/has_helpers/link_type.rb +10 -0
  44. data/app/constants/has_helpers/notification_alert_status.rb +14 -0
  45. data/app/constants/has_helpers/notification_alert_type.rb +10 -0
  46. data/app/constants/has_helpers/operation.rb +11 -0
  47. data/app/constants/has_helpers/resource_type.rb +25 -0
  48. data/app/constants/icon.rb +22 -0
  49. data/app/constants/logical_operator.rb +7 -0
  50. data/app/constants/option.rb +10 -0
  51. data/app/constants/time_zone.rb +12 -0
  52. data/app/constructors/has_helpers/base_constructor.rb +62 -0
  53. data/app/controllers/concerns/has_helpers/service_trust/authenticated_as_service.rb +51 -0
  54. data/app/controllers/concerns/has_helpers/service_trust/graphql_authentication.rb +57 -0
  55. data/app/controllers/has_helpers/controller.rb +63 -0
  56. data/app/controllers/has_helpers/factory_controller.rb +261 -0
  57. data/app/controllers/has_helpers/graphql_extensions.rb +83 -0
  58. data/app/controllers/has_helpers/health_check_controller.rb +46 -0
  59. data/app/controllers/has_helpers/search_extensions.rb +92 -0
  60. data/app/controllers/has_helpers/service_trust/jwks_controller.rb +20 -0
  61. data/app/controllers/has_helpers/xlsx_export.rb +115 -0
  62. data/app/controllers/search_extensions.rb +5 -0
  63. data/app/graphql/has_helpers/base_type.rb +13 -0
  64. data/app/graphql/has_helpers/base_union.rb +9 -0
  65. data/app/graphql/has_helpers/enums/resource_enum.rb +24 -0
  66. data/app/graphql/has_helpers/middleware/application_access.rb +26 -0
  67. data/app/graphql/has_helpers/mutations/base.rb +27 -0
  68. data/app/graphql/has_helpers/mutations/external_data_sync.rb +72 -0
  69. data/app/graphql/has_helpers/mutations/mark_individual_alert_read.rb +31 -0
  70. data/app/graphql/has_helpers/mutations/mark_notifications_read.rb +50 -0
  71. data/app/graphql/has_helpers/mutations/toggle_favorite.rb +39 -0
  72. data/app/graphql/has_helpers/resolvers/app_nav.rb +107 -0
  73. data/app/graphql/has_helpers/resolvers/base.rb +27 -0
  74. data/app/graphql/has_helpers/resolvers/cards/available_cards.rb +31 -0
  75. data/app/graphql/has_helpers/resolvers/cards/card_data.rb +74 -0
  76. data/app/graphql/has_helpers/resolvers/cards/hover_card_data.rb +153 -0
  77. data/app/graphql/has_helpers/resolvers/favorite.rb +62 -0
  78. data/app/graphql/has_helpers/resolvers/internal/roles.rb +54 -0
  79. data/app/graphql/has_helpers/resolvers/is_favorite.rb +24 -0
  80. data/app/graphql/has_helpers/resolvers/list_notification_alerts.rb +47 -0
  81. data/app/graphql/has_helpers/resolvers/lookup.rb +36 -0
  82. data/app/graphql/has_helpers/resolvers/recently_viewed.rb +54 -0
  83. data/app/graphql/has_helpers/resolvers/resource_tab.rb +22 -0
  84. data/app/graphql/has_helpers/resolvers/search.rb +18 -0
  85. data/app/graphql/has_helpers/resolvers/search_query.rb +38 -0
  86. data/app/graphql/has_helpers/resolvers/user_application_order.rb +35 -0
  87. data/app/graphql/has_helpers/resources/organization_option_resource.rb +28 -0
  88. data/app/graphql/has_helpers/resources/organization_resource_resource.rb +18 -0
  89. data/app/graphql/has_helpers/resources/resource_group_resource.rb +10 -0
  90. data/app/graphql/has_helpers/resources/resource_resource.rb +21 -0
  91. data/app/graphql/has_helpers/resources/user_role_resource.rb +9 -0
  92. data/app/graphql/has_helpers/types/application_order_type.rb +18 -0
  93. data/app/graphql/has_helpers/types/cards/available_card_type.rb +20 -0
  94. data/app/graphql/has_helpers/types/cards/card_badge_type.rb +12 -0
  95. data/app/graphql/has_helpers/types/cards/card_config_type.rb +18 -0
  96. data/app/graphql/has_helpers/types/cards/card_data_type.rb +13 -0
  97. data/app/graphql/has_helpers/types/cards/card_entry_field_type.rb +21 -0
  98. data/app/graphql/has_helpers/types/cards/card_entry_type.rb +12 -0
  99. data/app/graphql/has_helpers/types/cards/card_field_config_type.rb +17 -0
  100. data/app/graphql/has_helpers/types/layouts/app_nav/link_section_type.rb +17 -0
  101. data/app/graphql/has_helpers/types/layouts/app_nav/link_type.rb +20 -0
  102. data/app/graphql/has_helpers/types/layouts/app_nav/sub_link_type.rb +17 -0
  103. data/app/graphql/has_helpers/types/layouts/app_nav/type.rb +16 -0
  104. data/app/graphql/has_helpers/types/lookup.rb +16 -0
  105. data/app/graphql/has_helpers/types/resource_tab/type.rb +15 -0
  106. data/app/graphql/has_helpers/types/role_type.rb +13 -0
  107. data/app/graphql/has_helpers/types/search/detail_badge_type.rb +15 -0
  108. data/app/graphql/has_helpers/types/search/detail_item_type.rb +14 -0
  109. data/app/graphql/has_helpers/types/search/detail_type.rb +16 -0
  110. data/app/graphql/has_helpers/types/search/filter_operation_enum.rb +19 -0
  111. data/app/graphql/has_helpers/types/search/input_type.rb +16 -0
  112. data/app/graphql/has_helpers/types/search/result_type.rb +72 -0
  113. data/app/graphql/has_helpers/types/search/search_filter_input_type.rb +17 -0
  114. data/app/graphql/has_helpers/types/search/type.rb +17 -0
  115. data/app/importers/has_helpers/cards/importer.rb +1223 -0
  116. data/app/lib/has_helpers/application_helper.rb +21 -0
  117. data/app/lib/has_helpers/dn/processor.rb +55 -0
  118. data/app/lib/has_helpers/dn/refresh.rb +13 -0
  119. data/app/lib/has_helpers/dn/utils/backfill_utils.rb +80 -0
  120. data/app/lib/has_helpers/dn/utils/query_utils.rb +216 -0
  121. data/app/lib/has_helpers/feature.rb +88 -0
  122. data/app/lib/has_helpers/hq_exception.rb +18 -0
  123. data/app/lib/has_helpers/index.rb +890 -0
  124. data/app/lib/has_helpers/organization_merge.rb +128 -0
  125. data/app/lib/has_helpers/query/elasticsearch.rb +20 -0
  126. data/app/lib/has_helpers/query/provider.rb +105 -0
  127. data/app/lib/has_helpers/query/sql.rb +133 -0
  128. data/app/lib/has_helpers/query.rb +14 -0
  129. data/app/lib/has_helpers/search/elasticsearch.rb +41 -0
  130. data/app/lib/has_helpers/search/elasticsearch_shared.rb +70 -0
  131. data/app/lib/has_helpers/search/provider.rb +149 -0
  132. data/app/lib/has_helpers/search/search_utils.rb +74 -0
  133. data/app/lib/has_helpers/search/sql_search.rb +219 -0
  134. data/app/lib/has_helpers/search.rb +46 -0
  135. data/app/models/ability.rb +233 -0
  136. data/app/models/has_helpers/application.rb +47 -0
  137. data/app/models/has_helpers/application_record.rb +7 -0
  138. data/app/models/has_helpers/cards/card_builder/base.rb +74 -0
  139. data/app/models/has_helpers/cards/card_builder/card_definition_builder.rb +486 -0
  140. data/app/models/has_helpers/cards/card_builder/definition_context.rb +82 -0
  141. data/app/models/has_helpers/cards/card_builder/field_builder.rb +142 -0
  142. data/app/models/has_helpers/cards/card_builder/resource_builder.rb +34 -0
  143. data/app/models/has_helpers/cards/card_definition.rb +41 -0
  144. data/app/models/has_helpers/cards/card_definition_resource.rb +19 -0
  145. data/app/models/has_helpers/cards/card_field.rb +39 -0
  146. data/app/models/has_helpers/cards/registry.rb +115 -0
  147. data/app/models/has_helpers/cards/role_card_field.rb +28 -0
  148. data/app/models/has_helpers/cards/role_resource_card.rb +41 -0
  149. data/app/models/has_helpers/dn_utils.rb +61 -0
  150. data/app/models/has_helpers/favorite.rb +20 -0
  151. data/app/models/has_helpers/master_record.rb +18 -0
  152. data/app/models/has_helpers/notification_alert.rb +52 -0
  153. data/app/models/has_helpers/organization.rb +16 -0
  154. data/app/models/has_helpers/organization_link.rb +92 -0
  155. data/app/models/has_helpers/organization_methods.rb +62 -0
  156. data/app/models/has_helpers/organization_option.rb +31 -0
  157. data/app/models/has_helpers/organization_resource.rb +45 -0
  158. data/app/models/has_helpers/pending_db_operation.rb +31 -0
  159. data/app/models/has_helpers/recently_viewed.rb +34 -0
  160. data/app/models/has_helpers/reindex_queue.rb +43 -0
  161. data/app/models/has_helpers/resource.rb +38 -0
  162. data/app/models/has_helpers/resource_group.rb +15 -0
  163. data/app/models/has_helpers/restriction.rb +15 -0
  164. data/app/models/has_helpers/restriction_operation.rb +13 -0
  165. data/app/models/has_helpers/role.rb +20 -0
  166. data/app/models/has_helpers/service_trust/audit_log.rb +20 -0
  167. data/app/models/has_helpers/service_trust/key.rb +56 -0
  168. data/app/models/has_helpers/stat.rb +13 -0
  169. data/app/models/has_helpers/user.rb +18 -0
  170. data/app/models/has_helpers/user_methods.rb +184 -0
  171. data/app/models/has_helpers/user_organization.rb +33 -0
  172. data/app/models/has_helpers/user_role.rb +27 -0
  173. data/app/models/has_helpers/user_session.rb +19 -0
  174. data/app/presenters/has_helpers/barcode_base_presenter.rb +113 -0
  175. data/app/presenters/has_helpers/base_presenter.rb +100 -0
  176. data/app/presenters/has_helpers/cacheable_item.rb +28 -0
  177. data/app/presenters/has_helpers/item_presenter.rb +52 -0
  178. data/app/presenters/has_helpers/items_presenter.rb +33 -0
  179. data/app/presenters/has_helpers/resource/action_presenter.rb +8 -0
  180. data/app/presenters/has_helpers/resource/cell_presenter.rb +52 -0
  181. data/app/presenters/has_helpers/resource/email_presenter.rb +34 -0
  182. data/app/presenters/has_helpers/resource/form_presenter.rb +76 -0
  183. data/app/presenters/has_helpers/resource/info_collection_presenter.rb +33 -0
  184. data/app/presenters/has_helpers/resource/info_presenter.rb +34 -0
  185. data/app/presenters/has_helpers/resource/list_presenter.rb +120 -0
  186. data/app/presenters/has_helpers/resource/note_presenter.rb +14 -0
  187. data/app/presenters/has_helpers/resource/row_presenter.rb +25 -0
  188. data/app/presenters/has_helpers/resource/tag_presenter.rb +31 -0
  189. data/app/presenters/has_helpers/search_presenter.rb +230 -0
  190. data/app/triggers/has_helpers/erase_denormalized_belongs_to_column_trigger.rb +85 -0
  191. data/app/triggers/has_helpers/limit_favorites.rb +97 -0
  192. data/app/utils/has_helpers/redis_configurable.rb +79 -0
  193. data/app/utils/has_helpers/sync_utils.rb +234 -0
  194. data/app/views/has_helpers/actions/_action.html.erb +31 -0
  195. data/app/views/has_helpers/alerts/_alert.html.erb +3 -0
  196. data/app/views/has_helpers/barcodes.html.erb +36 -0
  197. data/app/views/has_helpers/containers/_container.html.erb +3 -0
  198. data/app/views/has_helpers/email_notifier/system.html.erb +8 -0
  199. data/app/views/has_helpers/email_notifier/system.text.erb +7 -0
  200. data/app/views/has_helpers/enumerables/_enumerable.html.erb +1 -0
  201. data/app/views/has_helpers/icons/_icon.html.erb +1 -0
  202. data/app/views/has_helpers/render_objects/_render_object.html.erb +1 -0
  203. data/app/views/has_helpers/services/_service.html.erb +1 -0
  204. data/app/views/has_helpers/text_nodes/_text_node.html.erb +4 -0
  205. data/app/views/has_helpers/ui_attributes/_html_attrs.html.erb +1 -0
  206. data/app/workers/elasticsearch_process_queue.rb +11 -0
  207. data/app/workers/elasticsearch_reindex.rb +11 -0
  208. data/app/workers/elasticsearch_reindex_scheduler.rb +35 -0
  209. data/app/workers/good_job/configurable_backfill.rb +64 -0
  210. data/app/workers/good_job/cron_denormalization_stats_manager.rb +39 -0
  211. data/app/workers/good_job/denormalization_stats_worker.rb +57 -0
  212. data/app/workers/good_job/dn_update_worker.rb +30 -0
  213. data/app/workers/good_job/dn_worker.rb +47 -0
  214. data/app/workers/good_job/elasticsearch_old_index_cleaner_worker.rb +113 -0
  215. data/app/workers/good_job/elasticsearch_on_finish_reindex.rb +26 -0
  216. data/app/workers/good_job/elasticsearch_process_batch.rb +78 -0
  217. data/app/workers/good_job/elasticsearch_process_change_logs_master_worker.rb +27 -0
  218. data/app/workers/good_job/elasticsearch_process_change_logs_worker.rb +155 -0
  219. data/app/workers/good_job/elasticsearch_process_queue.rb +50 -0
  220. data/app/workers/good_job/elasticsearch_reindex.rb +31 -0
  221. data/app/workers/has_helpers/cards/orphan_card_sweeper.rb +28 -0
  222. data/app/workers/has_helpers/db_operations/clean_stats_worker.rb +42 -0
  223. data/app/workers/has_helpers/db_operations/helper_worker.rb +131 -0
  224. data/app/workers/has_helpers/db_operations/main_worker.rb +164 -0
  225. data/app/workers/has_helpers/db_operations/operations.rb +134 -0
  226. data/app/workers/has_helpers/db_operations/update_operations_stats_resume_worker.rb +35 -0
  227. data/app/workers/has_helpers/default_worker.rb +17 -0
  228. data/app/workers/has_helpers/good_job/notification_alert_cleanup_worker.rb +43 -0
  229. data/app/workers/has_helpers/service_trust/audit_log_cleanup_worker.rb +19 -0
  230. data/app/workers/sidekiq/elasticsearch_old_index_cleaner_worker.rb +112 -0
  231. data/app/workers/sidekiq/elasticsearch_process_batch.rb +87 -0
  232. data/app/workers/sidekiq/elasticsearch_process_queue.rb +40 -0
  233. data/app/workers/sidekiq/elasticsearch_reindex.rb +53 -0
  234. data/config/initializers/action_view.rb +7 -0
  235. data/config/initializers/inflections.rb +24 -0
  236. data/config/initializers/marginalia.rb +8 -0
  237. data/config/initializers/mime_types.rb +6 -0
  238. data/config/initializers/opentelemetry.rb +12 -0
  239. data/config/initializers/redis_conf.rb +40 -0
  240. data/config/initializers/searchkick.rb +9 -0
  241. data/config/initializers/will_paginate.rb +39 -0
  242. data/config/redis.yml +12 -0
  243. data/config/routes.rb +27 -0
  244. data/config/service_trust_routes.rb +5 -0
  245. data/config.ru +9 -0
  246. data/db/migrate/20230127194725_create_organization_table.rb +25 -0
  247. data/db/migrate/20230127194726_validate_organization_foreign_keys.rb +7 -0
  248. data/db/migrate/20230206141413_create_security_models.rb +42 -0
  249. data/db/migrate/20230206141513_create_restriction_model.rb +20 -0
  250. data/db/migrate/20230206142613_add_security_indexes.rb +14 -0
  251. data/db/migrate/20230206143513_security_model_constants_seed.rb +8 -0
  252. data/db/migrate/20230206161513_add_organization_to_security_models.rb +13 -0
  253. data/db/migrate/20230209121019_create_search_group_models.rb +36 -0
  254. data/db/migrate/20230209122919_add_search_group_indexes.rb +21 -0
  255. data/db/migrate/20230209181832_add_search_group_resources_type_constraint_trigger.rb +61 -0
  256. data/db/migrate/20230313220337_create_table_user_sessions.rb +31 -0
  257. data/db/migrate/20230517141106_update_resource_types.rb +12 -0
  258. data/db/migrate/20230518194611_add_resources_contraints.rb +17 -0
  259. data/db/migrate/20230518194642_create_nested_resource_model.rb +21 -0
  260. data/db/migrate/20230518194645_validate_security_models_constraints.rb +23 -0
  261. data/db/migrate/20230608125037_add_inactive_field_to_user_sessions.rb +7 -0
  262. data/db/migrate/20230919191525_add_parent_id_to_resources.rb +8 -0
  263. data/db/migrate/20230919191535_validate_parent_id_fk_resources.rb +7 -0
  264. data/db/migrate/20230919210456_drop_nested_resources.rb +7 -0
  265. data/db/migrate/20231222135620_add_user_role.rb +19 -0
  266. data/db/migrate/20240108172021_create_favorites_table.rb +20 -0
  267. data/db/migrate/20240108190209_create_organization_link_table_if_doesnt_exists.rb +31 -0
  268. data/db/migrate/20240109211445_validate_fks_org_links.rb +9 -0
  269. data/db/migrate/20240110135440_create_recently_vieweds.rb +20 -0
  270. data/db/migrate/20240112185312_link_type_options_seed.rb +7 -0
  271. data/db/migrate/20240116173201_organization_link_resource_tab_constraints.rb +19 -0
  272. data/db/migrate/20240131160949_add_user_organizations_table.rb +32 -0
  273. data/db/migrate/20240212132519_add_organization_in_user_sessions.rb +13 -0
  274. data/db/migrate/20240227135052_add_user_organization_composite_fks.rb +32 -0
  275. data/db/migrate/20240312193501_update_organization_links.rb +11 -0
  276. data/db/migrate/20240426185902_add_user_organizations_current_organization_column.rb +12 -0
  277. data/db/migrate/20240429214601_add_primary_trigger.rb +10 -0
  278. data/db/migrate/20241112131819_add_json_file_format_seed.rb +7 -0
  279. data/db/migrate/20250520133417_create_restriction_operations.rb +18 -0
  280. data/db/migrate/20250520133420_validate_create_restriction_operations.rb +8 -0
  281. data/db/migrate/20250520140642_add_indexes_to_restrictions.rb +9 -0
  282. data/db/migrate/20250529130741_create_notification_alerts_table.rb +28 -0
  283. data/db/migrate/20250530223332_create_data_migrations_table.rb +19 -0
  284. data/db/migrate/20250605121622_seed_notification_alert_status.rb +7 -0
  285. data/db/migrate/20250605131439_seed_notification_alert_types.rb +7 -0
  286. data/db/migrate/20250606173128_update_notification_alert_length_constraint.rb +18 -0
  287. data/db/migrate/20250606174043_validate_notification_alert_length_constraints.rb +8 -0
  288. data/db/migrate/20250624183000_add_data_import_alert_type.rb +11 -0
  289. data/db/migrate/20250722183935_create_organization_options_table.rb +38 -0
  290. data/db/migrate/20250722192724_validate_organization_options_fks_and_constraints.rb +32 -0
  291. data/db/migrate/20250722192936_add_indexes_to_organization_options_table.rb +15 -0
  292. data/db/migrate/20250915132448_add_column_restrictions_hash.rb +7 -0
  293. data/db/migrate/20250917143211_add_column_permissions_hash.rb +7 -0
  294. data/db/migrate/20251001145950_add_trust_this_device.rb +7 -0
  295. data/db/migrate/20251021130835_add_backend_urls_to_applications_table.rb +13 -0
  296. data/db/migrate/20251021172715_validate_backend_urls_constraints_in_applications.rb +9 -0
  297. data/db/migrate/20251030200020_create_card_definitions.rb +23 -0
  298. data/db/migrate/20251030201012_create_card_definition_resources.rb +24 -0
  299. data/db/migrate/20251030201236_create_card_fields.rb +34 -0
  300. data/db/migrate/20251103194317_create_role_resource_cards.rb +37 -0
  301. data/db/migrate/20251103194426_create_role_card_fields.rb +34 -0
  302. data/db/migrate/20251107173218_validate_columns_from_cards.rb +17 -0
  303. data/db/migrate/20251111173212_add_column_application_array.rb +7 -0
  304. data/db/migrate/20251112203326_add_card_types.rb +10 -0
  305. data/db/migrate/20251115120000_add_virtual_cards_support.rb +28 -0
  306. data/db/migrate/20251202231256_add_org_scoped_fk_role_resource_cards_to_roles.rb +14 -0
  307. data/db/migrate/20260105134504_add_accessor_field_resource_type.rb +7 -0
  308. data/db/migrate/20260115123000_add_default_visibility_to_card_definitions.rb +9 -0
  309. data/db/migrate/20260120175037_is_new_admin.rb +9 -0
  310. data/db/migrate/20260122392008_add_stats_table.rb +17 -0
  311. data/db/migrate/20260414204718_add_index_to_stats_table.rb +10 -0
  312. data/db/migrate/20260509120000_create_service_trust_keys.rb +25 -0
  313. data/db/migrate/20260509120001_create_service_trust_audit_logs.rb +26 -0
  314. data/db/migrate/20260511120000_add_direction_to_service_trust_audit_logs.rb +17 -0
  315. data/db/migrate/20260511121000_remove_role_fk_from_role_resource_cards.rb +19 -0
  316. data/db/migrate/20260511121001_add_disabled_at_to_role_resource_cards.rb +10 -0
  317. data/db/migrate/20260605120100_seed_hover_card_options.rb +8 -0
  318. data/db/migrate/20260608120000_seed_badge_list_card_data_type.rb +7 -0
  319. data/db/migrate/20260727000000_add_two_factor_trust_id_to_user_sessions.rb +11 -0
  320. data/db/seeds.rb +14 -0
  321. data/docs/Elasticsearch.md +23 -0
  322. data/docs/Search_API.md +126 -0
  323. data/docs/cards_role_proxy.md +107 -0
  324. data/docs/factory_api.md +135 -0
  325. data/has-helpers-pr-289-pipeline.yaml +16 -0
  326. data/has-helpers-pr-298-pipeline.yaml +15 -0
  327. data/has_helpers.gemspec +68 -0
  328. data/lib/active_record/migration/active_migration_patch.rb +123 -0
  329. data/lib/generators/has_helpers/install/USAGE +8 -0
  330. data/lib/generators/has_helpers/install/install_generator.rb +22 -0
  331. data/lib/generators/has_helpers/install/templates/migrate/has_helpers_initial_setup.rb +26 -0
  332. data/lib/has_helpers/active_record/base.rb +50 -0
  333. data/lib/has_helpers/active_record/date_range.rb +228 -0
  334. data/lib/has_helpers/active_record/nested_resource.rb +58 -0
  335. data/lib/has_helpers/active_record/validation.rb +63 -0
  336. data/lib/has_helpers/active_record.rb +520 -0
  337. data/lib/has_helpers/app/command.rb +107 -0
  338. data/lib/has_helpers/app.rb +10 -0
  339. data/lib/has_helpers/assets_precompile_helper.rb +20 -0
  340. data/lib/has_helpers/attributes.rb +196 -0
  341. data/lib/has_helpers/aws.rb +67 -0
  342. data/lib/has_helpers/cards/cache.rb +49 -0
  343. data/lib/has_helpers/cards/config.rb +42 -0
  344. data/lib/has_helpers/cards/remote_role.rb +27 -0
  345. data/lib/has_helpers/cards/remote_roles.rb +75 -0
  346. data/lib/has_helpers/cards/roles.rb +55 -0
  347. data/lib/has_helpers/cards.rb +34 -0
  348. data/lib/has_helpers/concerns/hydrate_concern.rb +76 -0
  349. data/lib/has_helpers/concerns/importable_accessors.rb +25 -0
  350. data/lib/has_helpers/concerns/restrictions_parseable.rb +51 -0
  351. data/lib/has_helpers/config.rb +11 -0
  352. data/lib/has_helpers/constant.rb +578 -0
  353. data/lib/has_helpers/constraints.rb +10 -0
  354. data/lib/has_helpers/core_ext/array.rb +28 -0
  355. data/lib/has_helpers/core_ext/date/infinity.rb +25 -0
  356. data/lib/has_helpers/core_ext/date.rb +39 -0
  357. data/lib/has_helpers/core_ext/enumerable.rb +20 -0
  358. data/lib/has_helpers/core_ext/false_class.rb +14 -0
  359. data/lib/has_helpers/core_ext/float.rb +18 -0
  360. data/lib/has_helpers/core_ext/hash.rb +71 -0
  361. data/lib/has_helpers/core_ext/integer.rb +18 -0
  362. data/lib/has_helpers/core_ext/nil_class.rb +30 -0
  363. data/lib/has_helpers/core_ext/object.rb +60 -0
  364. data/lib/has_helpers/core_ext/proc.rb +16 -0
  365. data/lib/has_helpers/core_ext/string.rb +81 -0
  366. data/lib/has_helpers/core_ext/symbol.rb +17 -0
  367. data/lib/has_helpers/core_ext/true_class.rb +14 -0
  368. data/lib/has_helpers/cursor.rb +46 -0
  369. data/lib/has_helpers/data_migration/base.rb +293 -0
  370. data/lib/has_helpers/data_migration/large_worker.rb +20 -0
  371. data/lib/has_helpers/data_migration/master_worker.rb +33 -0
  372. data/lib/has_helpers/data_migration/migrator.rb +83 -0
  373. data/lib/has_helpers/data_migration/model.rb +18 -0
  374. data/lib/has_helpers/data_migration/small_worker.rb +20 -0
  375. data/lib/has_helpers/data_migration.rb +8 -0
  376. data/lib/has_helpers/engine.rb +47 -0
  377. data/lib/has_helpers/extensions.rb +17 -0
  378. data/lib/has_helpers/factory_api.rb +47 -0
  379. data/lib/has_helpers/factory_scenario/definition.rb +33 -0
  380. data/lib/has_helpers/factory_scenario/dsl.rb +80 -0
  381. data/lib/has_helpers/factory_scenario/factory_bot_override.rb +53 -0
  382. data/lib/has_helpers/factory_scenario/registry.rb +31 -0
  383. data/lib/has_helpers/factory_scenario/runner.rb +285 -0
  384. data/lib/has_helpers/factory_scenario.rb +27 -0
  385. data/lib/has_helpers/fixed_expiration_time_cache_session_store.rb +20 -0
  386. data/lib/has_helpers/flattener/association.rb +140 -0
  387. data/lib/has_helpers/flattener/attribute.rb +42 -0
  388. data/lib/has_helpers/flattener/base.rb +428 -0
  389. data/lib/has_helpers/flattener/column/types.rb +71 -0
  390. data/lib/has_helpers/flattener/column.rb +97 -0
  391. data/lib/has_helpers/flattener/pivot.rb +49 -0
  392. data/lib/has_helpers/flattener/reset.rb +33 -0
  393. data/lib/has_helpers/flattener/resource.rb +114 -0
  394. data/lib/has_helpers/flattener/resource_generator.rb +21 -0
  395. data/lib/has_helpers/flattener/utils.rb +14 -0
  396. data/lib/has_helpers/flattener.rb +53 -0
  397. data/lib/has_helpers/hash_accessors.rb +62 -0
  398. data/lib/has_helpers/helpers/application.rb +291 -0
  399. data/lib/has_helpers/index/config.rb +15 -0
  400. data/lib/has_helpers/lazy_config.rb +61 -0
  401. data/lib/has_helpers/resource_importer.rb +260 -0
  402. data/lib/has_helpers/resources.rb +127 -0
  403. data/lib/has_helpers/rspec/constants.rb +61 -0
  404. data/lib/has_helpers/rspec/factories.rb +11 -0
  405. data/lib/has_helpers/rspec.rb +22 -0
  406. data/lib/has_helpers/sentry/graphql_trace.rb +37 -0
  407. data/lib/has_helpers/serializer.rb +41 -0
  408. data/lib/has_helpers/service_trust/audit.rb +45 -0
  409. data/lib/has_helpers/service_trust/authorization.rb +34 -0
  410. data/lib/has_helpers/service_trust/bearer_token.rb +23 -0
  411. data/lib/has_helpers/service_trust/capability.rb +32 -0
  412. data/lib/has_helpers/service_trust/client/response.rb +13 -0
  413. data/lib/has_helpers/service_trust/client/retry.rb +35 -0
  414. data/lib/has_helpers/service_trust/client.rb +128 -0
  415. data/lib/has_helpers/service_trust/configuration.rb +76 -0
  416. data/lib/has_helpers/service_trust/engine.rb +10 -0
  417. data/lib/has_helpers/service_trust/errors.rb +32 -0
  418. data/lib/has_helpers/service_trust/graphql/authorizable.rb +72 -0
  419. data/lib/has_helpers/service_trust/graphql_client.rb +54 -0
  420. data/lib/has_helpers/service_trust/jwks_client.rb +133 -0
  421. data/lib/has_helpers/service_trust/jwt_codec.rb +45 -0
  422. data/lib/has_helpers/service_trust/key_manager.rb +160 -0
  423. data/lib/has_helpers/service_trust/rate_limiter.rb +27 -0
  424. data/lib/has_helpers/service_trust/replay_cache.rb +26 -0
  425. data/lib/has_helpers/service_trust/signer.rb +47 -0
  426. data/lib/has_helpers/service_trust/test.rb +60 -0
  427. data/lib/has_helpers/service_trust/verifier.rb +85 -0
  428. data/lib/has_helpers/service_trust/verify_middleware.rb +55 -0
  429. data/lib/has_helpers/service_trust.rb +51 -0
  430. data/lib/has_helpers/test_helpers/factory_data/unit_addresses.rb +42 -0
  431. data/lib/has_helpers/test_helpers/factory_data/unit_advisors.rb +272 -0
  432. data/lib/has_helpers/test_helpers/factory_data/unit_emails.rb +37 -0
  433. data/lib/has_helpers/test_helpers/factory_data/unit_organizations.rb +48 -0
  434. data/lib/has_helpers/test_helpers/factory_data/unit_people.rb +34 -0
  435. data/lib/has_helpers/test_helpers/factory_data/unit_phones.rb +41 -0
  436. data/lib/has_helpers/test_helpers/factory_data/unit_states.rb +26 -0
  437. data/lib/has_helpers/test_helpers/factory_data/unit_webs.rb +31 -0
  438. data/lib/has_helpers/test_helpers/shoulda_helpers.rb +249 -0
  439. data/lib/has_helpers/ui_attributes.rb +39 -0
  440. data/lib/has_helpers/utils/action.rb +87 -0
  441. data/lib/has_helpers/utils/active_record_utils.rb +40 -0
  442. data/lib/has_helpers/utils/alert.rb +42 -0
  443. data/lib/has_helpers/utils/container.rb +46 -0
  444. data/lib/has_helpers/utils/dataset.rb +34 -0
  445. data/lib/has_helpers/utils/email_notifier.rb +15 -0
  446. data/lib/has_helpers/utils/icon.rb +66 -0
  447. data/lib/has_helpers/utils/input.rb +45 -0
  448. data/lib/has_helpers/utils/log_notifier.rb +79 -0
  449. data/lib/has_helpers/utils/render_object.rb +32 -0
  450. data/lib/has_helpers/utils/s3_utils.rb +37 -0
  451. data/lib/has_helpers/utils/service.rb +87 -0
  452. data/lib/has_helpers/utils/slack_conf.rb +31 -0
  453. data/lib/has_helpers/utils/slack_notifier.rb +42 -0
  454. data/lib/has_helpers/utils/text_node.rb +34 -0
  455. data/lib/has_helpers/utils/user_restrictions.rb +266 -0
  456. data/lib/has_helpers/utils.rb +19 -0
  457. data/lib/has_helpers/version.rb +6 -0
  458. data/lib/has_helpers/web_socket_publisher.rb +20 -0
  459. data/lib/has_helpers/webhook.rb +17 -0
  460. data/lib/has_helpers.rb +63 -0
  461. data/lib/hq/resource.rb +55 -0
  462. data/lib/hq/structure/inserts.rb +176 -0
  463. data/lib/hq/structure.rb +115 -0
  464. data/lib/tasks/has_helpers/service_trust.rake +39 -0
  465. data/script/rails +10 -0
  466. data/sorbet/config +5 -0
  467. data/sorbet/rbi/gems/actionpack.rbi +1361 -0
  468. data/sorbet/rbi/gems/activemodel.rbi +755 -0
  469. data/sorbet/rbi/gems/activerecord.rbi +4713 -0
  470. data/sorbet/rbi/gems/activesupport.rbi +1970 -0
  471. data/sorbet/rbi/gems/barby.rbi +129 -0
  472. data/sorbet/rbi/gems/better_errors.rbi +155 -0
  473. data/sorbet/rbi/gems/binding_of_caller.rbi +22 -0
  474. data/sorbet/rbi/gems/byebug.rbi +19 -0
  475. data/sorbet/rbi/gems/chronic.rbi +480 -0
  476. data/sorbet/rbi/gems/chunky_png.rbi +510 -0
  477. data/sorbet/rbi/gems/climate_control.rbi +45 -0
  478. data/sorbet/rbi/gems/coderay.rbi +91 -0
  479. data/sorbet/rbi/gems/concurrent-ruby.rbi +1587 -0
  480. data/sorbet/rbi/gems/debug_inspector.rbi +18 -0
  481. data/sorbet/rbi/gems/erubi.rbi +26 -0
  482. data/sorbet/rbi/gems/holidays.rbi +362 -0
  483. data/sorbet/rbi/gems/i18n.rbi +132 -0
  484. data/sorbet/rbi/gems/method_source.rbi +63 -0
  485. data/sorbet/rbi/gems/mime-types-data.rbi +16 -0
  486. data/sorbet/rbi/gems/mime-types.rbi +217 -0
  487. data/sorbet/rbi/gems/mimemagic.rbi +36 -0
  488. data/sorbet/rbi/gems/minitest.rbi +282 -0
  489. data/sorbet/rbi/gems/mustache.rbi +151 -0
  490. data/sorbet/rbi/gems/paperclip.rbi +644 -0
  491. data/sorbet/rbi/gems/parallel.rbi +81 -0
  492. data/sorbet/rbi/gems/parallel_tests.rbi +27 -0
  493. data/sorbet/rbi/gems/pry-rails.rbi +71 -0
  494. data/sorbet/rbi/gems/pry.rbi +1964 -0
  495. data/sorbet/rbi/gems/rack.rbi +228 -0
  496. data/sorbet/rbi/gems/railties.rbi +364 -0
  497. data/sorbet/rbi/gems/rspec-core.rbi +1704 -0
  498. data/sorbet/rbi/gems/rspec-expectations.rbi +389 -0
  499. data/sorbet/rbi/gems/rspec-support.rbi +206 -0
  500. data/sorbet/rbi/gems/rspec.rbi +14 -0
  501. data/sorbet/rbi/gems/spreadsheet_architect.rbi +10 -0
  502. data/sorbet/rbi/gems/sprockets.rbi +659 -0
  503. data/sorbet/rbi/gems/terrapin.rbi +115 -0
  504. data/sorbet/rbi/gems/testhq.rbi +14 -0
  505. data/sorbet/rbi/gems/thor.rbi +482 -0
  506. data/sorbet/rbi/gems/thread_safe.rbi +81 -0
  507. data/sorbet/rbi/gems/tzinfo.rbi +407 -0
  508. data/sorbet/rbi/gems/zeitwerk.rbi +131 -0
  509. data/sorbet/rbi/hidden-definitions/errors.txt +35111 -0
  510. data/sorbet/rbi/hidden-definitions/hidden.rbi +59974 -0
  511. data/sorbet/rbi/sorbet-typed/lib/actionmailer/all/actionmailer.rbi +13 -0
  512. data/sorbet/rbi/sorbet-typed/lib/actionpack/all/actionpack.rbi +855 -0
  513. data/sorbet/rbi/sorbet-typed/lib/actionview/all/actionview.rbi +314 -0
  514. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +423 -0
  515. data/sorbet/rbi/sorbet-typed/lib/activerecord/>=5.2/activerecord.rbi +17 -0
  516. data/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1415 -0
  517. data/sorbet/rbi/sorbet-typed/lib/activerecord/~>6.0.0/activerecord.rbi +475 -0
  518. data/sorbet/rbi/sorbet-typed/lib/activestorage/>=6.0.0/activestorage.rbi +19 -0
  519. data/sorbet/rbi/sorbet-typed/lib/activestorage/all/activestorage.rbi +173 -0
  520. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +23 -0
  521. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +625 -0
  522. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +8684 -0
  523. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +99 -0
  524. data/sorbet/rbi/sorbet-typed/lib/railties/all/railties.rbi +25 -0
  525. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +254 -0
  526. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +4222 -0
  527. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +111 -0
  528. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +543 -0
  529. data/sorbet/rbi/todo.rbi +244 -0
  530. data/spec/commands/cards/available_cards_command_spec.rb +90 -0
  531. data/spec/commands/cards/card_data_command_spec.rb +1048 -0
  532. data/spec/constructors/has_helpers/base_constructor_spec.rb +49 -0
  533. data/spec/controllers/has_helpers/controller_spec.rb +71 -0
  534. data/spec/controllers/has_helpers/xlsx_export_spec.rb +96 -0
  535. data/spec/factories/advisors.rb +20 -0
  536. data/spec/factories/anonymous_cowards.rb +5 -0
  537. data/spec/factories/applications.rb +5 -0
  538. data/spec/factories/appointments.rb +6 -0
  539. data/spec/factories/attachment.rb +15 -0
  540. data/spec/factories/audits.rb +5 -0
  541. data/spec/factories/basic_schedules.rb +12 -0
  542. data/spec/factories/cards/card_definition_resources.rb +7 -0
  543. data/spec/factories/cards/card_definitions.rb +11 -0
  544. data/spec/factories/cards/card_fields.rb +22 -0
  545. data/spec/factories/cards/role_card_fields.rb +17 -0
  546. data/spec/factories/cards/role_resource_cards.rb +12 -0
  547. data/spec/factories/constant_definition.rb +7 -0
  548. data/spec/factories/contracts.rb +10 -0
  549. data/spec/factories/data_migration_models.rb +9 -0
  550. data/spec/factories/demographics.rb +22 -0
  551. data/spec/factories/events.rb +21 -0
  552. data/spec/factories/firms.rb +21 -0
  553. data/spec/factories/imports.rb +9 -0
  554. data/spec/factories/meetups.rb +13 -0
  555. data/spec/factories/organizations.rb +13 -0
  556. data/spec/factories/policies.rb +7 -0
  557. data/spec/factories/policy_notes.rb +9 -0
  558. data/spec/factories/read_only_values.rb +7 -0
  559. data/spec/factories/resources.rb +7 -0
  560. data/spec/factories/roles.rb +11 -0
  561. data/spec/factories/schedules.rb +13 -0
  562. data/spec/factories/shared/flattener/attributes.rb +10 -0
  563. data/spec/factories/shared/flattener/columns.rb +6 -0
  564. data/spec/factories/shared/flattener/resources.rb +5 -0
  565. data/spec/factories/templates.rb +12 -0
  566. data/spec/factories/user_organizations.rb +23 -0
  567. data/spec/factories/user_session.rb +11 -0
  568. data/spec/factories/users.rb +55 -0
  569. data/spec/fixtures/sample_config.yml +3 -0
  570. data/spec/graphql/has_helpers/mutations/external_data_sync_spec.rb +101 -0
  571. data/spec/graphql/has_helpers/resolvers/cards/available_cards_spec.rb +36 -0
  572. data/spec/graphql/has_helpers/resolvers/cards/card_data_spec.rb +42 -0
  573. data/spec/graphql/has_helpers/resolvers/cards/hover_card_data_spec.rb +59 -0
  574. data/spec/has_helpers/cards/cache_spec.rb +58 -0
  575. data/spec/has_helpers/cards/config_spec.rb +68 -0
  576. data/spec/has_helpers/cards/orphan_card_sweeper_spec.rb +97 -0
  577. data/spec/has_helpers/cards/remote_role_spec.rb +17 -0
  578. data/spec/has_helpers/cards/remote_roles_spec.rb +97 -0
  579. data/spec/has_helpers/cards/roles_spec.rb +52 -0
  580. data/spec/has_helpers/cards/smoke_spec.rb +168 -0
  581. data/spec/has_helpers/cards/support.rb +52 -0
  582. data/spec/has_helpers/resolvers/internal/roles_spec.rb +73 -0
  583. data/spec/has_helpers/service_trust/audit_log_cleanup_worker_spec.rb +33 -0
  584. data/spec/has_helpers/service_trust/audit_spec.rb +70 -0
  585. data/spec/has_helpers/service_trust/authenticated_as_service_spec.rb +65 -0
  586. data/spec/has_helpers/service_trust/authorization_spec.rb +37 -0
  587. data/spec/has_helpers/service_trust/capability_spec.rb +35 -0
  588. data/spec/has_helpers/service_trust/client_spec.rb +129 -0
  589. data/spec/has_helpers/service_trust/configuration_spec.rb +35 -0
  590. data/spec/has_helpers/service_trust/engine_spec.rb +13 -0
  591. data/spec/has_helpers/service_trust/errors_spec.rb +23 -0
  592. data/spec/has_helpers/service_trust/graphql_authentication_spec.rb +59 -0
  593. data/spec/has_helpers/service_trust/graphql_authorizable_spec.rb +91 -0
  594. data/spec/has_helpers/service_trust/graphql_client_spec.rb +47 -0
  595. data/spec/has_helpers/service_trust/jwks_client_spec.rb +85 -0
  596. data/spec/has_helpers/service_trust/jwks_controller_spec.rb +47 -0
  597. data/spec/has_helpers/service_trust/jwt_codec_spec.rb +30 -0
  598. data/spec/has_helpers/service_trust/key_manager_spec.rb +80 -0
  599. data/spec/has_helpers/service_trust/key_spec.rb +52 -0
  600. data/spec/has_helpers/service_trust/rake_tasks_spec.rb +58 -0
  601. data/spec/has_helpers/service_trust/rate_limiter_spec.rb +31 -0
  602. data/spec/has_helpers/service_trust/replay_cache_spec.rb +29 -0
  603. data/spec/has_helpers/service_trust/signer_verifier_spec.rb +159 -0
  604. data/spec/has_helpers/service_trust/smoke_spec.rb +216 -0
  605. data/spec/has_helpers/service_trust/support.rb +121 -0
  606. data/spec/has_helpers/service_trust/test_module_spec.rb +39 -0
  607. data/spec/has_helpers/service_trust/verify_middleware_spec.rb +82 -0
  608. data/spec/helpers/application_spec.rb +155 -0
  609. data/spec/importers/cards/importer_spec.rb +861 -0
  610. data/spec/internal/app/assets/config/manifest.js +0 -0
  611. data/spec/internal/app/constants/cat_egory.rb +33 -0
  612. data/spec/internal/app/constants/color.rb +19 -0
  613. data/spec/internal/app/constants/exclude_group_nil_constant.rb +5 -0
  614. data/spec/internal/app/constants/foo.rb +6 -0
  615. data/spec/internal/app/constants/fruit.rb +3 -0
  616. data/spec/internal/app/constants/generic_group_example.rb +12 -0
  617. data/spec/internal/app/constants/my_constant.rb +4 -0
  618. data/spec/internal/app/constants/product.rb +3 -0
  619. data/spec/internal/app/constants/shirt_size.rb +18 -0
  620. data/spec/internal/app/constants/simple_option.rb +14 -0
  621. data/spec/internal/app/constants/status.rb +5 -0
  622. data/spec/internal/app/constructors/organization_constructor.rb +4 -0
  623. data/spec/internal/app/controllers/application_controller.rb +27 -0
  624. data/spec/internal/app/controllers/search_extensions.rb +3 -0
  625. data/spec/internal/app/indices/advisor_index.rb +35 -0
  626. data/spec/internal/app/indices/contract_index.rb +52 -0
  627. data/spec/internal/app/indices/firm_index.rb +16 -0
  628. data/spec/internal/app/indices/policy_index.rb +20 -0
  629. data/spec/internal/app/models/advisor.rb +24 -0
  630. data/spec/internal/app/models/agency.rb +3 -0
  631. data/spec/internal/app/models/anonymous_coward.rb +5 -0
  632. data/spec/internal/app/models/another_event.rb +2 -0
  633. data/spec/internal/app/models/appointment.rb +3 -0
  634. data/spec/internal/app/models/attachment.rb +10 -0
  635. data/spec/internal/app/models/basic_schedule.rb +6 -0
  636. data/spec/internal/app/models/beneficiary.rb +6 -0
  637. data/spec/internal/app/models/client.rb +5 -0
  638. data/spec/internal/app/models/contract.rb +9 -0
  639. data/spec/internal/app/models/demographic.rb +4 -0
  640. data/spec/internal/app/models/division.rb +3 -0
  641. data/spec/internal/app/models/event.rb +10 -0
  642. data/spec/internal/app/models/event_template.rb +1 -0
  643. data/spec/internal/app/models/firm.rb +18 -0
  644. data/spec/internal/app/models/has_audits/audit.rb +15 -0
  645. data/spec/internal/app/models/import.rb +7 -0
  646. data/spec/internal/app/models/meetup.rb +8 -0
  647. data/spec/internal/app/models/organization.rb +17 -0
  648. data/spec/internal/app/models/organization_event.rb +5 -0
  649. data/spec/internal/app/models/policy.rb +16 -0
  650. data/spec/internal/app/models/policy_holder.rb +7 -0
  651. data/spec/internal/app/models/policy_note.rb +8 -0
  652. data/spec/internal/app/models/project.rb +3 -0
  653. data/spec/internal/app/models/read_only_value.rb +8 -0
  654. data/spec/internal/app/models/schedule.rb +12 -0
  655. data/spec/internal/app/models/template.rb +9 -0
  656. data/spec/internal/app/models/user.rb +31 -0
  657. data/spec/internal/app/models/user_organization.rb +17 -0
  658. data/spec/internal/app/views/has_lists/lists/_table.html.erb +1 -0
  659. data/spec/internal/config/database-standard.yml +24 -0
  660. data/spec/internal/config/initializers/resources.rb +19 -0
  661. data/spec/internal/config/routes.rb +19 -0
  662. data/spec/internal/config/storage.yml +3 -0
  663. data/spec/internal/db/good_job_schema.rb +141 -0
  664. data/spec/internal/db/schema.rb +334 -0
  665. data/spec/internal/log/.gitignore +1 -0
  666. data/spec/internal/public/favicon.ico +0 -0
  667. data/spec/lib/flattener/base_spec.rb +93 -0
  668. data/spec/lib/flattener/column/types_spec.rb +65 -0
  669. data/spec/lib/has_helpers/active_record/base_spec.rb +53 -0
  670. data/spec/lib/has_helpers/active_record/date_range_spec.rb +498 -0
  671. data/spec/lib/has_helpers/active_record/lookup_model_spec.rb +408 -0
  672. data/spec/lib/has_helpers/active_record/nested_resource_spec.rb +43 -0
  673. data/spec/lib/has_helpers/app/command/reports/generator_specs.rb +887 -0
  674. data/spec/lib/has_helpers/app/command_spec.rb +117 -0
  675. data/spec/lib/has_helpers/app/support/mocks/graphql_reports_helpers.rb +96 -0
  676. data/spec/lib/has_helpers/app/support/mocks/reports_api_mock.rb +47 -0
  677. data/spec/lib/has_helpers/attributes_spec.rb +220 -0
  678. data/spec/lib/has_helpers/aws_spec.rb +126 -0
  679. data/spec/lib/has_helpers/concerns/hydrate_concern_spec.rb +473 -0
  680. data/spec/lib/has_helpers/constant/definition_spec.rb +128 -0
  681. data/spec/lib/has_helpers/constant_spec.rb +432 -0
  682. data/spec/lib/has_helpers/core_ext/array_spec.rb +22 -0
  683. data/spec/lib/has_helpers/core_ext/date/infinity_spec.rb +67 -0
  684. data/spec/lib/has_helpers/core_ext/date_spec.rb +27 -0
  685. data/spec/lib/has_helpers/core_ext/false_class_spec.rb +7 -0
  686. data/spec/lib/has_helpers/core_ext/float_spec.rb +9 -0
  687. data/spec/lib/has_helpers/core_ext/hash_spec.rb +48 -0
  688. data/spec/lib/has_helpers/core_ext/integer_spec.rb +9 -0
  689. data/spec/lib/has_helpers/core_ext/nil_class_spec.rb +17 -0
  690. data/spec/lib/has_helpers/core_ext/object_spec.rb +54 -0
  691. data/spec/lib/has_helpers/core_ext/proc_spec.rb +24 -0
  692. data/spec/lib/has_helpers/core_ext/string_spec.rb +154 -0
  693. data/spec/lib/has_helpers/core_ext/true_class_spec.rb +7 -0
  694. data/spec/lib/has_helpers/data_migration/base_spec.rb +470 -0
  695. data/spec/lib/has_helpers/data_migration/large_worker_spec.rb +34 -0
  696. data/spec/lib/has_helpers/data_migration/master_worker_spec.rb +51 -0
  697. data/spec/lib/has_helpers/data_migration/migrator_spec.rb +113 -0
  698. data/spec/lib/has_helpers/data_migration/model_spec.rb +52 -0
  699. data/spec/lib/has_helpers/data_migration/small_worker_spec.rb +34 -0
  700. data/spec/lib/has_helpers/good_job/notification_alert_cleanup_worker_spec.rb +89 -0
  701. data/spec/lib/has_helpers/hash_accessors_spec.rb +66 -0
  702. data/spec/lib/has_helpers/index_spec.rb +442 -0
  703. data/spec/lib/has_helpers/lazy_config_spec.rb +31 -0
  704. data/spec/lib/has_helpers/organization_merge_spec.rb +88 -0
  705. data/spec/lib/has_helpers/resource_importer_spec.rb +119 -0
  706. data/spec/lib/has_helpers/rspec_spec.rb +16 -0
  707. data/spec/lib/has_helpers/search/provider_spec.rb +26 -0
  708. data/spec/lib/has_helpers/search/search_utils_spec.rb +134 -0
  709. data/spec/lib/has_helpers/sentry/graphql_trace_spec.rb +140 -0
  710. data/spec/lib/has_helpers/ui_attributes_spec.rb +42 -0
  711. data/spec/lib/has_helpers/utils/action_spec.rb +49 -0
  712. data/spec/lib/has_helpers/utils/alert_spec.rb +33 -0
  713. data/spec/lib/has_helpers/utils/dataset_spec.rb +10 -0
  714. data/spec/lib/has_helpers/utils/icon_spec.rb +23 -0
  715. data/spec/lib/has_helpers/utils/input_spec.rb +40 -0
  716. data/spec/lib/has_helpers/utils/log_notifier_spec.rb +25 -0
  717. data/spec/lib/has_helpers/utils/render_object_spec.rb +17 -0
  718. data/spec/lib/has_helpers/utils/s3_utils_spec.rb +78 -0
  719. data/spec/lib/has_helpers/utils/service_spec.rb +79 -0
  720. data/spec/lib/has_helpers/utils/slack_notifier_spec.rb +70 -0
  721. data/spec/lib/has_helpers/utils/user_restrictions_spec.rb +343 -0
  722. data/spec/lib/hq/structure/inserts_spec.rb +152 -0
  723. data/spec/lib/hq/structure_spec.rb +12 -0
  724. data/spec/models/cards/base_spec.rb +149 -0
  725. data/spec/models/cards/card_definition_resource_spec.rb +103 -0
  726. data/spec/models/cards/card_definition_spec.rb +50 -0
  727. data/spec/models/cards/card_field_spec.rb +46 -0
  728. data/spec/models/cards/field_builder_spec.rb +318 -0
  729. data/spec/models/cards/registry_spec.rb +147 -0
  730. data/spec/models/cards/role_card_field_spec.rb +111 -0
  731. data/spec/models/cards/role_resource_card_spec.rb +112 -0
  732. data/spec/models/has_helpers/master_record_spec.rb +20 -0
  733. data/spec/models/has_helpers/user_organization_spec.rb +28 -0
  734. data/spec/models/has_helpers/user_session_spec.rb +16 -0
  735. data/spec/presenters/base_presenter_spec.rb +166 -0
  736. data/spec/rails_helper.rb +119 -0
  737. data/spec/requests/has_helpers/factory_controller_spec.rb +159 -0
  738. data/spec/requests/has_helpers/health_check_controller_spec.rb +37 -0
  739. data/spec/scenarios/empty_setup.rb +6 -0
  740. data/spec/spec_helper.rb +22 -0
  741. data/spec/support/has_helpers/database_helpers.rb +12 -0
  742. data/spec/utils/sync_utils_spec.rb +233 -0
  743. data/spec/workers/goodjob/elasticsearch_process_batch_spec.rb +94 -0
  744. data/spec/workers/goodjob/elasticsearch_process_change_logs_master_worker_spec.rb +40 -0
  745. data/spec/workers/goodjob/elasticsearch_process_change_logs_worker_spec.rb +82 -0
  746. data/spec/workers/goodjob/elasticsearch_process_queue_spec.rb +89 -0
  747. data/spec/workers/goodjob/elasticsearch_reindex_spec.rb +49 -0
  748. metadata +1593 -0
@@ -0,0 +1,755 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: true
5
+ #
6
+ # If you would like to make changes to this file, great! Please create the gem's shim here:
7
+ #
8
+ # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/activemodel/all/activemodel.rbi
9
+ #
10
+ # activemodel-6.0.1
11
+ module ActiveModel
12
+ def self.eager_load!; end
13
+ def self.gem_version; end
14
+ def self.version; end
15
+ extend ActiveSupport::Autoload
16
+ end
17
+ module ActiveModel::VERSION
18
+ end
19
+ module ActiveModel::Serializers
20
+ extend ActiveSupport::Autoload
21
+ end
22
+ class ActiveModel::Attribute
23
+ def ==(other); end
24
+ def _original_value_for_database; end
25
+ def assigned?; end
26
+ def came_from_user?; end
27
+ def changed?; end
28
+ def changed_from_assignment?; end
29
+ def changed_in_place?; end
30
+ def encode_with(coder); end
31
+ def eql?(other); end
32
+ def forgetting_assignment; end
33
+ def has_been_read?; end
34
+ def hash; end
35
+ def init_with(coder); end
36
+ def initialize(name, value_before_type_cast, type, original_attribute = nil); end
37
+ def initialize_dup(other); end
38
+ def initialized?; end
39
+ def name; end
40
+ def original_attribute; end
41
+ def original_value; end
42
+ def original_value_for_database; end
43
+ def self.from_database(name, value, type); end
44
+ def self.from_user(name, value, type, original_attribute = nil); end
45
+ def self.null(name); end
46
+ def self.uninitialized(name, type); end
47
+ def self.with_cast_value(name, value, type); end
48
+ def type; end
49
+ def type_cast(*arg0); end
50
+ def value; end
51
+ def value_before_type_cast; end
52
+ def value_for_database; end
53
+ def with_cast_value(value); end
54
+ def with_type(type); end
55
+ def with_value_from_database(value); end
56
+ def with_value_from_user(value); end
57
+ end
58
+ class ActiveModel::Attribute::FromDatabase < ActiveModel::Attribute
59
+ def _original_value_for_database; end
60
+ def type_cast(value); end
61
+ end
62
+ class ActiveModel::Attribute::FromUser < ActiveModel::Attribute
63
+ def came_from_user?; end
64
+ def type_cast(value); end
65
+ end
66
+ class ActiveModel::Attribute::WithCastValue < ActiveModel::Attribute
67
+ def changed_in_place?; end
68
+ def type_cast(value); end
69
+ end
70
+ class ActiveModel::Attribute::Null < ActiveModel::Attribute
71
+ def initialize(name); end
72
+ def type_cast(*arg0); end
73
+ def with_cast_value(value); end
74
+ def with_type(type); end
75
+ def with_value_from_database(value); end
76
+ def with_value_from_user(value); end
77
+ end
78
+ class ActiveModel::Attribute::Uninitialized < ActiveModel::Attribute
79
+ def forgetting_assignment; end
80
+ def initialize(name, type); end
81
+ def initialized?; end
82
+ def original_value; end
83
+ def value; end
84
+ def value_for_database; end
85
+ def with_type(type); end
86
+ end
87
+ class ActiveModel::AttributeSet
88
+ def ==(other); end
89
+ def [](name); end
90
+ def []=(name, value); end
91
+ def accessed; end
92
+ def attributes; end
93
+ def deep_dup; end
94
+ def each_value(*args, &block); end
95
+ def except(*args, &block); end
96
+ def fetch(*args, &block); end
97
+ def fetch_value(name, &block); end
98
+ def freeze; end
99
+ def initialize(attributes); end
100
+ def initialize_clone(_); end
101
+ def initialize_dup(_); end
102
+ def initialized_attributes; end
103
+ def key?(name); end
104
+ def keys; end
105
+ def map(&block); end
106
+ def reset(key); end
107
+ def to_h; end
108
+ def to_hash; end
109
+ def values_before_type_cast; end
110
+ def write_cast_value(name, value); end
111
+ def write_from_database(name, value); end
112
+ def write_from_user(name, value); end
113
+ end
114
+ class ActiveModel::AttributeSet::Builder
115
+ def build_from_database(values = nil, additional_types = nil); end
116
+ def default_attributes; end
117
+ def initialize(types, default_attributes = nil); end
118
+ def types; end
119
+ end
120
+ class ActiveModel::LazyAttributeHash
121
+ def ==(other); end
122
+ def [](key); end
123
+ def []=(key, value); end
124
+ def additional_types; end
125
+ def assign_default_value(name); end
126
+ def deep_dup; end
127
+ def default_attributes; end
128
+ def delegate_hash; end
129
+ def each_key(*args, &block); end
130
+ def each_value(*args, &block); end
131
+ def except(*args, &block); end
132
+ def fetch(*args, &block); end
133
+ def initialize(types, values, additional_types, default_attributes, delegate_hash = nil); end
134
+ def initialize_dup(_); end
135
+ def key?(key); end
136
+ def marshal_dump; end
137
+ def marshal_load(values); end
138
+ def materialize; end
139
+ def select; end
140
+ def transform_values(*args, &block); end
141
+ def types; end
142
+ def values; end
143
+ end
144
+ class ActiveModel::AttributeSet::YAMLEncoder
145
+ def decode(coder); end
146
+ def default_types; end
147
+ def encode(attribute_set, coder); end
148
+ def initialize(default_types); end
149
+ end
150
+ class ActiveModel::MissingAttributeError < NoMethodError
151
+ end
152
+ module ActiveModel::AttributeMethods
153
+ def _read_attribute(attr); end
154
+ def attribute_method?(attr_name); end
155
+ def attribute_missing(match, *args, &block); end
156
+ def matched_attribute_method(method_name); end
157
+ def method_missing(method, *args, &block); end
158
+ def missing_attribute(attr_name, stack); end
159
+ def respond_to?(method, include_private_methods = nil); end
160
+ def respond_to_without_attributes?(*arg0); end
161
+ extend ActiveSupport::Concern
162
+ end
163
+ module ActiveModel::AttributeMethods::ClassMethods
164
+ def alias_attribute(new_name, old_name); end
165
+ def attribute_alias(name); end
166
+ def attribute_alias?(new_name); end
167
+ def attribute_method_affix(*affixes); end
168
+ def attribute_method_matchers_cache; end
169
+ def attribute_method_matchers_matching(method_name); end
170
+ def attribute_method_prefix(*prefixes); end
171
+ def attribute_method_suffix(*suffixes); end
172
+ def define_attribute_method(attr_name); end
173
+ def define_attribute_methods(*attr_names); end
174
+ def define_proxy_call(include_private, mod, name, target, *extra); end
175
+ def generated_attribute_methods; end
176
+ def instance_method_already_implemented?(method_name); end
177
+ def undefine_attribute_methods; end
178
+ end
179
+ class ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatcher
180
+ def initialize(options = nil); end
181
+ def match(method_name); end
182
+ def method_name(attr_name); end
183
+ def plain?; end
184
+ def prefix; end
185
+ def suffix; end
186
+ def target; end
187
+ end
188
+ class ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatcher::AttributeMethodMatch < Struct
189
+ def attr_name; end
190
+ def attr_name=(_); end
191
+ def self.[](*arg0); end
192
+ def self.inspect; end
193
+ def self.members; end
194
+ def self.new(*arg0); end
195
+ def target; end
196
+ def target=(_); end
197
+ end
198
+ module ActiveModel::AttributeMethods::AttrNames
199
+ def self.define_attribute_accessor_method(mod, attr_name, writer: nil); end
200
+ end
201
+ class ActiveModel::Errors
202
+ def [](attribute); end
203
+ def add(attribute, message = nil, options = nil); end
204
+ def added?(attribute, message = nil, options = nil); end
205
+ def apply_default_array(hash); end
206
+ def as_json(options = nil); end
207
+ def blank?; end
208
+ def clear; end
209
+ def copy!(other); end
210
+ def count; end
211
+ def delete(key); end
212
+ def details; end
213
+ def each; end
214
+ def empty?; end
215
+ def full_message(attribute, message); end
216
+ def full_messages; end
217
+ def full_messages_for(attribute); end
218
+ def generate_message(attribute, type = nil, options = nil); end
219
+ def has_key?(attribute); end
220
+ def include?(attribute); end
221
+ def init_with(coder); end
222
+ def initialize(base); end
223
+ def initialize_dup(other); end
224
+ def key?(attribute); end
225
+ def keys; end
226
+ def marshal_dump; end
227
+ def marshal_load(array); end
228
+ def merge!(other); end
229
+ def messages; end
230
+ def normalize_detail(message, options); end
231
+ def normalize_message(attribute, message, options); end
232
+ def of_kind?(attribute, message = nil); end
233
+ def self.i18n_customize_full_message; end
234
+ def self.i18n_customize_full_message=(arg0); end
235
+ def size; end
236
+ def slice!(*keys); end
237
+ def to_a; end
238
+ def to_hash(full_messages = nil); end
239
+ def to_xml(options = nil); end
240
+ def values; end
241
+ def without_default_proc(hash); end
242
+ include Enumerable
243
+ end
244
+ class ActiveModel::StrictValidationFailed < StandardError
245
+ end
246
+ class ActiveModel::RangeError < RangeError
247
+ end
248
+ class ActiveModel::UnknownAttributeError < NoMethodError
249
+ def attribute; end
250
+ def initialize(record, attribute); end
251
+ def record; end
252
+ end
253
+ module ActiveModel::Callbacks
254
+ def _define_after_model_callback(klass, callback); end
255
+ def _define_around_model_callback(klass, callback); end
256
+ def _define_before_model_callback(klass, callback); end
257
+ def define_model_callbacks(*callbacks); end
258
+ def self.extended(base); end
259
+ end
260
+ class ActiveModel::Attribute::UserProvidedDefault < ActiveModel::Attribute::FromUser
261
+ def initialize(name, value, type, database_default); end
262
+ def marshal_dump; end
263
+ def marshal_load(values); end
264
+ def user_provided_value; end
265
+ def value_before_type_cast; end
266
+ def with_type(type); end
267
+ end
268
+ class ActiveModel::Name
269
+ def !~(*args, &block); end
270
+ def <=>(*args, &block); end
271
+ def ==(arg); end
272
+ def ===(arg); end
273
+ def =~(*args, &block); end
274
+ def _singularize(string); end
275
+ def as_json(*args, &block); end
276
+ def cache_key; end
277
+ def collection; end
278
+ def element; end
279
+ def eql?(*args, &block); end
280
+ def human(options = nil); end
281
+ def i18n_key; end
282
+ def initialize(klass, namespace = nil, name = nil); end
283
+ def match?(*args, &block); end
284
+ def name; end
285
+ def param_key; end
286
+ def plural; end
287
+ def route_key; end
288
+ def singular; end
289
+ def singular_route_key; end
290
+ def to_s(*args, &block); end
291
+ def to_str(*args, &block); end
292
+ include Comparable
293
+ end
294
+ module ActiveModel::Naming
295
+ def model_name; end
296
+ def self.extended(base); end
297
+ def self.model_name_from_record_or_class(record_or_class); end
298
+ def self.param_key(record_or_class); end
299
+ def self.plural(record_or_class); end
300
+ def self.route_key(record_or_class); end
301
+ def self.singular(record_or_class); end
302
+ def self.singular_route_key(record_or_class); end
303
+ def self.uncountable?(record_or_class); end
304
+ end
305
+ module ActiveModel::Translation
306
+ def human_attribute_name(attribute, options = nil); end
307
+ def i18n_scope; end
308
+ def lookup_ancestors; end
309
+ include ActiveModel::Naming
310
+ end
311
+ module ActiveModel::Type
312
+ def self.default_value; end
313
+ def self.lookup(*args, **kwargs); end
314
+ def self.register(type_name, klass = nil, **options, &block); end
315
+ def self.registry; end
316
+ def self.registry=(arg0); end
317
+ end
318
+ module ActiveModel::Type::Helpers
319
+ end
320
+ class ActiveModel::Type::Helpers::AcceptsMultiparameterTime < Module
321
+ def initialize(defaults: nil); end
322
+ end
323
+ module ActiveModel::Type::Helpers::Numeric
324
+ def cast(value); end
325
+ def changed?(old_value, _new_value, new_value_before_type_cast); end
326
+ def non_numeric_string?(value); end
327
+ def number_to_non_number?(old_value, new_value_before_type_cast); end
328
+ def serialize(value); end
329
+ end
330
+ module ActiveModel::Type::Helpers::Mutable
331
+ def cast(value); end
332
+ def changed_in_place?(raw_old_value, new_value); end
333
+ end
334
+ module ActiveModel::Type::Helpers::TimeValue
335
+ def apply_seconds_precision(value); end
336
+ def fast_string_to_time(string); end
337
+ def new_time(year, mon, mday, hour, min, sec, microsec, offset = nil); end
338
+ def serialize(value); end
339
+ def type_cast_for_schema(value); end
340
+ def user_input_in_time_zone(value); end
341
+ end
342
+ module ActiveModel::Type::Helpers::Timezone
343
+ def default_timezone; end
344
+ def is_utc?; end
345
+ end
346
+ class ActiveModel::Type::Value
347
+ def ==(other); end
348
+ def assert_valid_value(*arg0); end
349
+ def binary?; end
350
+ def cast(value); end
351
+ def cast_value(value); end
352
+ def changed?(old_value, new_value, _new_value_before_type_cast); end
353
+ def changed_in_place?(raw_old_value, new_value); end
354
+ def deserialize(value); end
355
+ def eql?(other); end
356
+ def force_equality?(_value); end
357
+ def hash; end
358
+ def initialize(precision: nil, limit: nil, scale: nil); end
359
+ def limit; end
360
+ def map(value); end
361
+ def precision; end
362
+ def scale; end
363
+ def serialize(value); end
364
+ def type; end
365
+ def type_cast_for_schema(value); end
366
+ def value_constructed_by_mass_assignment?(_value); end
367
+ end
368
+ class ActiveModel::Type::Integer < ActiveModel::Type::Value
369
+ def _limit; end
370
+ def cast_value(value); end
371
+ def deserialize(value); end
372
+ def ensure_in_range(value); end
373
+ def initialize(*arg0); end
374
+ def max_value; end
375
+ def min_value; end
376
+ def range; end
377
+ def serialize(value); end
378
+ def type; end
379
+ include ActiveModel::Type::Helpers::Numeric
380
+ end
381
+ class ActiveModel::Type::BigInteger < ActiveModel::Type::Integer
382
+ def max_value; end
383
+ end
384
+ class ActiveModel::Type::Binary < ActiveModel::Type::Value
385
+ def binary?; end
386
+ def cast(value); end
387
+ def changed_in_place?(raw_old_value, value); end
388
+ def serialize(value); end
389
+ def type; end
390
+ end
391
+ class ActiveModel::Type::Binary::Data
392
+ def ==(other); end
393
+ def hex; end
394
+ def initialize(value); end
395
+ def to_s; end
396
+ def to_str; end
397
+ end
398
+ class ActiveModel::Type::Boolean < ActiveModel::Type::Value
399
+ def cast_value(value); end
400
+ def serialize(value); end
401
+ def type; end
402
+ end
403
+ class ActiveModel::Type::Date < ActiveModel::Type::Value
404
+ def cast_value(value); end
405
+ def fallback_string_to_date(string); end
406
+ def fast_string_to_date(string); end
407
+ def new_date(year, mon, mday); end
408
+ def type; end
409
+ def type_cast_for_schema(value); end
410
+ def value_from_multiparameter_assignment(*arg0); end
411
+ include ActiveModel::Type::Helpers::Timezone
412
+ include Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_1
413
+ end
414
+ module Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_1
415
+ def assert_valid_value(value); end
416
+ def cast(value); end
417
+ def serialize(value); end
418
+ def value_constructed_by_mass_assignment?(value); end
419
+ def value_from_multiparameter_assignment(values_hash); end
420
+ end
421
+ class ActiveModel::Type::DateTime < ActiveModel::Type::Value
422
+ def cast_value(value); end
423
+ def fallback_string_to_time(string); end
424
+ def microseconds(time); end
425
+ def type; end
426
+ def value_from_multiparameter_assignment(values_hash); end
427
+ include ActiveModel::Type::Helpers::TimeValue
428
+ include ActiveModel::Type::Helpers::Timezone
429
+ include Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_2
430
+ end
431
+ module Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_2
432
+ def assert_valid_value(value); end
433
+ def cast(value); end
434
+ def serialize(value); end
435
+ def value_constructed_by_mass_assignment?(value); end
436
+ def value_from_multiparameter_assignment(values_hash); end
437
+ end
438
+ class ActiveModel::Type::Decimal < ActiveModel::Type::Value
439
+ def apply_scale(value); end
440
+ def cast_value(value); end
441
+ def convert_float_to_big_decimal(value); end
442
+ def float_precision; end
443
+ def type; end
444
+ def type_cast_for_schema(value); end
445
+ include ActiveModel::Type::Helpers::Numeric
446
+ end
447
+ class ActiveModel::Type::Float < ActiveModel::Type::Value
448
+ def cast_value(value); end
449
+ def type; end
450
+ def type_cast_for_schema(value); end
451
+ include ActiveModel::Type::Helpers::Numeric
452
+ end
453
+ class ActiveModel::Type::ImmutableString < ActiveModel::Type::Value
454
+ def cast_value(value); end
455
+ def serialize(value); end
456
+ def type; end
457
+ end
458
+ class ActiveModel::Type::String < ActiveModel::Type::ImmutableString
459
+ def cast_value(value); end
460
+ def changed_in_place?(raw_old_value, new_value); end
461
+ end
462
+ class ActiveModel::Type::Time < ActiveModel::Type::Value
463
+ def cast_value(value); end
464
+ def type; end
465
+ def user_input_in_time_zone(value); end
466
+ include ActiveModel::Type::Helpers::TimeValue
467
+ include ActiveModel::Type::Helpers::Timezone
468
+ include Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_3
469
+ end
470
+ module Anonymous_ActiveModel_Type_Helpers_AcceptsMultiparameterTime_3
471
+ def assert_valid_value(value); end
472
+ def cast(value); end
473
+ def serialize(value); end
474
+ def value_constructed_by_mass_assignment?(value); end
475
+ def value_from_multiparameter_assignment(values_hash); end
476
+ end
477
+ class ActiveModel::Type::Registry
478
+ def find_registration(symbol, *args); end
479
+ def initialize; end
480
+ def lookup(symbol, *args); end
481
+ def register(type_name, klass = nil, **options, &block); end
482
+ def registration_klass; end
483
+ def registrations; end
484
+ end
485
+ class ActiveModel::Type::Registration
486
+ def block; end
487
+ def call(_registry, *args, **kwargs); end
488
+ def initialize(name, block, **arg2); end
489
+ def matches?(type_name, *args, **kwargs); end
490
+ def name; end
491
+ end
492
+ class ActiveModel::ForbiddenAttributesError < StandardError
493
+ end
494
+ module ActiveModel::ForbiddenAttributesProtection
495
+ def sanitize_for_mass_assignment(attributes); end
496
+ def sanitize_forbidden_attributes(attributes); end
497
+ end
498
+ module ActiveModel::AttributeAssignment
499
+ def _assign_attribute(k, v); end
500
+ def _assign_attributes(attributes); end
501
+ def assign_attributes(new_attributes); end
502
+ def attributes=(new_attributes); end
503
+ include ActiveModel::ForbiddenAttributesProtection
504
+ end
505
+ module ActiveModel::Conversion
506
+ def to_key; end
507
+ def to_model; end
508
+ def to_param; end
509
+ def to_partial_path; end
510
+ extend ActiveSupport::Concern
511
+ end
512
+ module ActiveModel::Conversion::ClassMethods
513
+ def _to_partial_path; end
514
+ end
515
+ module ActiveModel::Validations
516
+ def errors; end
517
+ def initialize_dup(other); end
518
+ def invalid?(context = nil); end
519
+ def raise_validation_error; end
520
+ def read_attribute_for_validation(*arg0); end
521
+ def run_validations!; end
522
+ def valid?(context = nil); end
523
+ def validate!(context = nil); end
524
+ def validate(context = nil); end
525
+ def validates_with(*args, &block); end
526
+ extend ActiveSupport::Concern
527
+ end
528
+ module ActiveModel::Validations::ClassMethods
529
+ def _parse_validates_options(options); end
530
+ def _validates_default_keys; end
531
+ def attribute_method?(attribute); end
532
+ def clear_validators!; end
533
+ def inherited(base); end
534
+ def validate(*args, &block); end
535
+ def validates!(*attributes); end
536
+ def validates(*attributes); end
537
+ def validates_each(*attr_names, &block); end
538
+ def validates_with(*args, &block); end
539
+ def validators; end
540
+ def validators_on(*attributes); end
541
+ end
542
+ module ActiveModel::Validations::Clusivity
543
+ def check_validity!; end
544
+ def delimiter; end
545
+ def include?(record, value); end
546
+ def inclusion_method(enumerable); end
547
+ end
548
+ class ActiveModel::Validator
549
+ def initialize(options = nil); end
550
+ def kind; end
551
+ def options; end
552
+ def self.kind; end
553
+ def validate(record); end
554
+ end
555
+ class ActiveModel::EachValidator < ActiveModel::Validator
556
+ def attributes; end
557
+ def check_validity!; end
558
+ def initialize(options); end
559
+ def validate(record); end
560
+ def validate_each(record, attribute, value); end
561
+ end
562
+ class ActiveModel::BlockValidator < ActiveModel::EachValidator
563
+ def initialize(options, &block); end
564
+ def validate_each(record, attribute, value); end
565
+ end
566
+ class ActiveModel::Validations::InclusionValidator < ActiveModel::EachValidator
567
+ def validate_each(record, attribute, value); end
568
+ include ActiveModel::Validations::Clusivity
569
+ end
570
+ module ActiveModel::Validations::HelperMethods
571
+ def _merge_attributes(attr_names); end
572
+ def validates_absence_of(*attr_names); end
573
+ def validates_acceptance_of(*attr_names); end
574
+ def validates_confirmation_of(*attr_names); end
575
+ def validates_exclusion_of(*attr_names); end
576
+ def validates_format_of(*attr_names); end
577
+ def validates_inclusion_of(*attr_names); end
578
+ def validates_length_of(*attr_names); end
579
+ def validates_numericality_of(*attr_names); end
580
+ def validates_presence_of(*attr_names); end
581
+ def validates_size_of(*attr_names); end
582
+ end
583
+ class ActiveModel::Validations::AbsenceValidator < ActiveModel::EachValidator
584
+ def validate_each(record, attr_name, value); end
585
+ end
586
+ class ActiveModel::Validations::NumericalityValidator < ActiveModel::EachValidator
587
+ def allow_only_integer?(record); end
588
+ def check_validity!; end
589
+ def filtered_options(value); end
590
+ def is_hexadecimal_literal?(raw_value); end
591
+ def is_integer?(raw_value); end
592
+ def is_number?(raw_value); end
593
+ def parse_as_number(raw_value); end
594
+ def record_attribute_changed_in_place?(record, attr_name); end
595
+ def validate_each(record, attr_name, value); end
596
+ end
597
+ module ActiveModel::Validations::Callbacks
598
+ def run_validations!; end
599
+ extend ActiveSupport::Concern
600
+ end
601
+ module ActiveModel::Validations::Callbacks::ClassMethods
602
+ def after_validation(*args, &block); end
603
+ def before_validation(*args, &block); end
604
+ end
605
+ class ActiveModel::Validations::ExclusionValidator < ActiveModel::EachValidator
606
+ def validate_each(record, attribute, value); end
607
+ include ActiveModel::Validations::Clusivity
608
+ end
609
+ class ActiveModel::Validations::ConfirmationValidator < ActiveModel::EachValidator
610
+ def confirmation_value_equal?(record, attribute, value, confirmed); end
611
+ def initialize(options); end
612
+ def setup!(klass); end
613
+ def validate_each(record, attribute, value); end
614
+ end
615
+ class ActiveModel::Validations::FormatValidator < ActiveModel::EachValidator
616
+ def check_options_validity(name); end
617
+ def check_validity!; end
618
+ def option_call(record, name); end
619
+ def record_error(record, attribute, name, value); end
620
+ def regexp_using_multiline_anchors?(regexp); end
621
+ def validate_each(record, attribute, value); end
622
+ end
623
+ class ActiveModel::Validations::PresenceValidator < ActiveModel::EachValidator
624
+ def validate_each(record, attr_name, value); end
625
+ end
626
+ class ActiveModel::Validations::LengthValidator < ActiveModel::EachValidator
627
+ def check_validity!; end
628
+ def initialize(options); end
629
+ def skip_nil_check?(key); end
630
+ def validate_each(record, attribute, value); end
631
+ end
632
+ class ActiveModel::Validations::AcceptanceValidator < ActiveModel::EachValidator
633
+ def acceptable_option?(value); end
634
+ def initialize(options); end
635
+ def setup!(klass); end
636
+ def validate_each(record, attribute, value); end
637
+ end
638
+ class ActiveModel::Validations::AcceptanceValidator::LazilyDefineAttributes < Module
639
+ def ==(other); end
640
+ def attributes; end
641
+ def define_on(klass); end
642
+ def included(klass); end
643
+ def initialize(attributes); end
644
+ def matches?(method_name); end
645
+ end
646
+ class ActiveModel::Validations::WithValidator < ActiveModel::EachValidator
647
+ def validate_each(record, attr, val); end
648
+ end
649
+ class ActiveModel::ValidationError < StandardError
650
+ def initialize(model); end
651
+ def model; end
652
+ end
653
+ class ActiveModel::AttributeMutationTracker
654
+ def any_changes?; end
655
+ def attr_names; end
656
+ def attribute_changed?(attr_name); end
657
+ def attributes; end
658
+ def change_to_attribute(attr_name); end
659
+ def changed?(attr_name, from: nil, to: nil); end
660
+ def changed_attribute_names; end
661
+ def changed_in_place?(attr_name); end
662
+ def changed_values; end
663
+ def changes; end
664
+ def fetch_value(attr_name); end
665
+ def force_change(attr_name); end
666
+ def forced_changes; end
667
+ def forget_change(attr_name); end
668
+ def initialize(attributes, forced_changes = nil); end
669
+ def original_value(attr_name); end
670
+ end
671
+ class ActiveModel::ForcedMutationTracker < ActiveModel::AttributeMutationTracker
672
+ def attr_names; end
673
+ def attribute_changed?(attr_name); end
674
+ def change_to_attribute(attr_name); end
675
+ def changed_in_place?(attr_name); end
676
+ def clone_value(attr_name); end
677
+ def fetch_value(attr_name); end
678
+ def finalize_changes; end
679
+ def finalized_changes; end
680
+ def force_change(attr_name); end
681
+ def forget_change(attr_name); end
682
+ def initialize(attributes, forced_changes = nil); end
683
+ def original_value(attr_name); end
684
+ end
685
+ class ActiveModel::NullMutationTracker
686
+ def any_changes?; end
687
+ def change_to_attribute(attr_name); end
688
+ def changed?(attr_name, **arg1); end
689
+ def changed_attribute_names; end
690
+ def changed_in_place?(attr_name); end
691
+ def changed_values; end
692
+ def changes; end
693
+ def original_value(attr_name); end
694
+ def self.allocate; end
695
+ def self.instance; end
696
+ def self.new(*arg0); end
697
+ extend Singleton::SingletonClassMethods
698
+ include Singleton
699
+ end
700
+ module ActiveModel::Dirty
701
+ def attribute_change(attr_name); end
702
+ def attribute_changed?(attr_name, **options); end
703
+ def attribute_changed_in_place?(attr_name); end
704
+ def attribute_previous_change(attr_name); end
705
+ def attribute_previously_changed?(attr_name); end
706
+ def attribute_was(attr_name); end
707
+ def attribute_will_change!(attr_name); end
708
+ def changed; end
709
+ def changed?; end
710
+ def changed_attributes; end
711
+ def changes; end
712
+ def changes_applied; end
713
+ def clear_attribute_change(attr_name); end
714
+ def clear_attribute_changes(attr_names); end
715
+ def clear_changes_information; end
716
+ def forget_attribute_assignments; end
717
+ def initialize_dup(other); end
718
+ def mutations_before_last_save; end
719
+ def mutations_from_database; end
720
+ def previous_changes; end
721
+ def restore_attribute!(attr_name); end
722
+ def restore_attributes(attr_names = nil); end
723
+ extend ActiveSupport::Concern
724
+ include ActiveModel::AttributeMethods
725
+ end
726
+ module ActiveModel::SecurePassword
727
+ def self.min_cost; end
728
+ def self.min_cost=(arg0); end
729
+ extend ActiveSupport::Concern
730
+ end
731
+ module ActiveModel::SecurePassword::ClassMethods
732
+ def has_secure_password(attribute = nil, validations: nil); end
733
+ end
734
+ class ActiveModel::SecurePassword::InstanceMethodsOnActivation < Module
735
+ def initialize(attribute); end
736
+ end
737
+ module ActiveModel::Serialization
738
+ def read_attribute_for_serialization(*arg0); end
739
+ def serializable_add_includes(options = nil); end
740
+ def serializable_hash(options = nil); end
741
+ end
742
+ module ActiveModel::Serializers::JSON
743
+ def as_json(options = nil); end
744
+ def from_json(json, include_root = nil); end
745
+ extend ActiveSupport::Concern
746
+ include ActiveModel::Serialization
747
+ end
748
+ module ActiveModel::Model
749
+ def initialize(attributes = nil); end
750
+ def persisted?; end
751
+ extend ActiveSupport::Concern
752
+ include ActiveModel::AttributeAssignment
753
+ include ActiveModel::Conversion
754
+ include ActiveModel::Validations
755
+ end