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,510 @@
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/chunky_png/all/chunky_png.rbi
9
+ #
10
+ # chunky_png-1.3.11
11
+ module ChunkyPNG
12
+ def self.Color(*args); end
13
+ def self.Dimension(*args); end
14
+ def self.Point(*args); end
15
+ def self.Vector(*args); end
16
+ def self.build_dimension_from_object(source); end
17
+ def self.build_point_from_object(source); end
18
+ def self.force_binary(str); end
19
+ end
20
+ class String
21
+ end
22
+ module Enumerable
23
+ end
24
+ class ChunkyPNG::Datastream
25
+ def chunks; end
26
+ def data_chunks; end
27
+ def data_chunks=(arg0); end
28
+ def each_chunk; end
29
+ def end_chunk; end
30
+ def end_chunk=(arg0); end
31
+ def header_chunk; end
32
+ def header_chunk=(arg0); end
33
+ def imagedata; end
34
+ def initialize; end
35
+ def metadata; end
36
+ def other_chunks; end
37
+ def other_chunks=(arg0); end
38
+ def palette_chunk; end
39
+ def palette_chunk=(arg0); end
40
+ def physical_chunk; end
41
+ def physical_chunk=(arg0); end
42
+ def save(filename); end
43
+ def self.empty_bytearray; end
44
+ def self.from_blob(str); end
45
+ def self.from_file(filename); end
46
+ def self.from_io(io); end
47
+ def self.from_string(str); end
48
+ def self.verify_signature!(io); end
49
+ def to_blob; end
50
+ def to_s; end
51
+ def to_string; end
52
+ def transparency_chunk; end
53
+ def transparency_chunk=(arg0); end
54
+ def write(io); end
55
+ end
56
+ module ChunkyPNG::Chunk
57
+ def self.read(io); end
58
+ def self.read_bytes(io, length); end
59
+ def self.verify_crc!(type, content, found_crc); end
60
+ end
61
+ class ChunkyPNG::Chunk::Base
62
+ def initialize(type, attributes = nil); end
63
+ def type; end
64
+ def type=(arg0); end
65
+ def write(io); end
66
+ def write_with_crc(io, content); end
67
+ end
68
+ class ChunkyPNG::Chunk::Generic < ChunkyPNG::Chunk::Base
69
+ def content; end
70
+ def content=(arg0); end
71
+ def initialize(type, content = nil); end
72
+ def self.read(type, content); end
73
+ end
74
+ class ChunkyPNG::Chunk::Header < ChunkyPNG::Chunk::Base
75
+ def color; end
76
+ def color=(arg0); end
77
+ def compression; end
78
+ def compression=(arg0); end
79
+ def content; end
80
+ def depth; end
81
+ def depth=(arg0); end
82
+ def filtering; end
83
+ def filtering=(arg0); end
84
+ def height; end
85
+ def height=(arg0); end
86
+ def initialize(attrs = nil); end
87
+ def interlace; end
88
+ def interlace=(arg0); end
89
+ def self.read(type, content); end
90
+ def width; end
91
+ def width=(arg0); end
92
+ end
93
+ class ChunkyPNG::Chunk::End < ChunkyPNG::Chunk::Base
94
+ def content; end
95
+ def initialize; end
96
+ def self.read(type, content); end
97
+ end
98
+ class ChunkyPNG::Chunk::Palette < ChunkyPNG::Chunk::Generic
99
+ end
100
+ class ChunkyPNG::Chunk::Transparency < ChunkyPNG::Chunk::Generic
101
+ def grayscale_entry(bit_depth); end
102
+ def palette_alpha_channel; end
103
+ def truecolor_entry(bit_depth); end
104
+ end
105
+ class ChunkyPNG::Chunk::ImageData < ChunkyPNG::Chunk::Generic
106
+ def self.combine_chunks(data_chunks); end
107
+ def self.split_in_chunks(data, level = nil, chunk_size = nil); end
108
+ end
109
+ class ChunkyPNG::Chunk::Text < ChunkyPNG::Chunk::Base
110
+ def content; end
111
+ def initialize(keyword, value); end
112
+ def keyword; end
113
+ def keyword=(arg0); end
114
+ def self.read(type, content); end
115
+ def value; end
116
+ def value=(arg0); end
117
+ end
118
+ class ChunkyPNG::Chunk::CompressedText < ChunkyPNG::Chunk::Base
119
+ def content; end
120
+ def initialize(keyword, value); end
121
+ def keyword; end
122
+ def keyword=(arg0); end
123
+ def self.read(type, content); end
124
+ def value; end
125
+ def value=(arg0); end
126
+ end
127
+ class ChunkyPNG::Chunk::Physical < ChunkyPNG::Chunk::Base
128
+ def content; end
129
+ def dpix; end
130
+ def dpiy; end
131
+ def initialize(ppux, ppuy, unit = nil); end
132
+ def ppux; end
133
+ def ppux=(arg0); end
134
+ def ppuy; end
135
+ def ppuy=(arg0); end
136
+ def self.read(type, content); end
137
+ def unit; end
138
+ def unit=(arg0); end
139
+ end
140
+ class ChunkyPNG::Chunk::InternationalText < ChunkyPNG::Chunk::Base
141
+ def compressed; end
142
+ def compressed=(arg0); end
143
+ def compression; end
144
+ def compression=(arg0); end
145
+ def content; end
146
+ def initialize(keyword, text, language_tag = nil, translated_keyword = nil, compressed = nil, compression = nil); end
147
+ def keyword; end
148
+ def keyword=(arg0); end
149
+ def language_tag; end
150
+ def language_tag=(arg0); end
151
+ def self.read(type, content); end
152
+ def text; end
153
+ def text=(arg0); end
154
+ def translated_keyword; end
155
+ def translated_keyword=(arg0); end
156
+ end
157
+ class ChunkyPNG::Palette < SortedSet
158
+ def [](index); end
159
+ def best_color_settings; end
160
+ def black_and_white?; end
161
+ def can_decode?; end
162
+ def can_encode?; end
163
+ def determine_bit_depth; end
164
+ def grayscale?; end
165
+ def index(color); end
166
+ def indexable?; end
167
+ def initialize(enum, decoding_map = nil); end
168
+ def opaque?; end
169
+ def opaque_palette; end
170
+ def self.from_canvas(canvas); end
171
+ def self.from_chunks(palette_chunk, transparency_chunk = nil); end
172
+ def self.from_pixels(pixels); end
173
+ def to_plte_chunk; end
174
+ def to_trns_chunk; end
175
+ end
176
+ module ChunkyPNG::Color
177
+ def a(value); end
178
+ def alpha_decomposable?(color, mask, bg, tolerance = nil); end
179
+ def b(value); end
180
+ def blend(fg, bg); end
181
+ def compose(fg, bg); end
182
+ def compose_precise(fg, bg); end
183
+ def compose_quick(fg, bg); end
184
+ def cylindrical_to_cubic(hue, saturation, y_component, chroma); end
185
+ def decompose_alpha(color, mask, bg); end
186
+ def decompose_alpha_component(channel, color, mask, bg); end
187
+ def decompose_alpha_components(color, mask, bg); end
188
+ def decompose_color(color, mask, bg, tolerance = nil); end
189
+ def euclidean_distance_rgba(pixel_after, pixel_before); end
190
+ def fade(color, factor); end
191
+ def from_hex(hex_value, opacity = nil); end
192
+ def from_hsb(hue, saturation, value, alpha = nil); end
193
+ def from_hsl(hue, saturation, lightness, alpha = nil); end
194
+ def from_hsv(hue, saturation, value, alpha = nil); end
195
+ def from_rgb_stream(stream, pos = nil); end
196
+ def from_rgba_stream(stream, pos = nil); end
197
+ def fully_transparent?(value); end
198
+ def g(value); end
199
+ def grayscale(teint); end
200
+ def grayscale?(value); end
201
+ def grayscale_alpha(teint, a); end
202
+ def grayscale_teint(color); end
203
+ def html_color(color_name, opacity = nil); end
204
+ def hue_and_chroma(color); end
205
+ def int8_mult(a, b); end
206
+ def interpolate_quick(fg, bg, alpha); end
207
+ def opaque!(value); end
208
+ def opaque?(value); end
209
+ def parse(source); end
210
+ def pass_bytesize(color_mode, depth, width, height); end
211
+ def pixel_bitsize(color_mode, depth = nil); end
212
+ def pixel_bytesize(color_mode, depth = nil); end
213
+ def r(value); end
214
+ def rgb(r, g, b); end
215
+ def rgba(r, g, b, a); end
216
+ def samples_per_pixel(color_mode); end
217
+ def scanline_bytesize(color_mode, depth, width); end
218
+ def to_grayscale(color); end
219
+ def to_grayscale_alpha_bytes(color); end
220
+ def to_grayscale_bytes(color); end
221
+ def to_hex(color, include_alpha = nil); end
222
+ def to_hsb(color, include_alpha = nil); end
223
+ def to_hsl(color, include_alpha = nil); end
224
+ def to_hsv(color, include_alpha = nil); end
225
+ def to_truecolor_alpha_bytes(color); end
226
+ def to_truecolor_bytes(color); end
227
+ extend ChunkyPNG::Color
228
+ end
229
+ class ChunkyPNG::Point
230
+ def <=>(other); end
231
+ def ==(other); end
232
+ def eql?(other); end
233
+ def initialize(x, y); end
234
+ def to_a; end
235
+ def to_ary; end
236
+ def within_bounds?(*dimension_like); end
237
+ def x; end
238
+ def x=(arg0); end
239
+ def y; end
240
+ def y=(arg0); end
241
+ end
242
+ class ChunkyPNG::Vector
243
+ def ==(other); end
244
+ def [](index); end
245
+ def dimension; end
246
+ def each(&block); end
247
+ def each_edge(close = nil); end
248
+ def edges(close = nil); end
249
+ def eql?(other); end
250
+ def height; end
251
+ def initialize(points = nil); end
252
+ def length; end
253
+ def max_x; end
254
+ def max_y; end
255
+ def min_x; end
256
+ def min_y; end
257
+ def offset; end
258
+ def points; end
259
+ def self.multiple_from_array(source); end
260
+ def self.multiple_from_string(source_str); end
261
+ def width; end
262
+ def x_range; end
263
+ def y_range; end
264
+ include Enumerable
265
+ end
266
+ class ChunkyPNG::Dimension
267
+ def <=>(other); end
268
+ def ==(other); end
269
+ def area; end
270
+ def eql?(other); end
271
+ def height; end
272
+ def height=(arg0); end
273
+ def include?(*point_like); end
274
+ def initialize(width, height); end
275
+ def to_a; end
276
+ def to_ary; end
277
+ def width; end
278
+ def width=(arg0); end
279
+ end
280
+ class ChunkyPNG::Canvas
281
+ def ==(other); end
282
+ def [](x, y); end
283
+ def []=(x, y, color); end
284
+ def area; end
285
+ def assert_height!(vector_length); end
286
+ def assert_size!(matrix_width, matrix_height); end
287
+ def assert_width!(vector_length); end
288
+ def assert_x!(x); end
289
+ def assert_xy!(x, y); end
290
+ def assert_y!(y); end
291
+ def column(x); end
292
+ def dimension; end
293
+ def eql?(other); end
294
+ def get_pixel(x, y); end
295
+ def height; end
296
+ def include?(*point_like); end
297
+ def include_point?(*point_like); end
298
+ def include_x?(x); end
299
+ def include_xy?(x, y); end
300
+ def include_y?(y); end
301
+ def initialize(width, height, initial = nil); end
302
+ def initialize_copy(other); end
303
+ def inspect; end
304
+ def palette; end
305
+ def pixels; end
306
+ def replace_canvas!(new_width, new_height, new_pixels); end
307
+ def replace_column!(x, vector); end
308
+ def replace_row!(y, vector); end
309
+ def row(y); end
310
+ def self.from_canvas(canvas); end
311
+ def set_pixel(x, y, color); end
312
+ def set_pixel_if_within_bounds(x, y, color); end
313
+ def to_image; end
314
+ def width; end
315
+ extend ChunkyPNG::Canvas::Adam7Interlacing
316
+ extend ChunkyPNG::Canvas::DataUrlImporting
317
+ extend ChunkyPNG::Canvas::PNGDecoding
318
+ extend ChunkyPNG::Canvas::StreamImporting
319
+ include ChunkyPNG::Canvas::DataUrlExporting
320
+ include ChunkyPNG::Canvas::Drawing
321
+ include ChunkyPNG::Canvas::Masking
322
+ include ChunkyPNG::Canvas::Operations
323
+ include ChunkyPNG::Canvas::PNGEncoding
324
+ include ChunkyPNG::Canvas::Resampling
325
+ include ChunkyPNG::Canvas::StreamExporting
326
+ end
327
+ module ChunkyPNG::Canvas::PNGEncoding
328
+ def determine_png_encoding(constraints = nil); end
329
+ def encode_png_image_pass_to_stream(stream, color_mode, bit_depth, filtering); end
330
+ def encode_png_image_with_interlacing(color_mode, bit_depth = nil, filtering = nil); end
331
+ def encode_png_image_without_interlacing(color_mode, bit_depth = nil, filtering = nil); end
332
+ def encode_png_pixels_to_scanline_grayscale_1bit(pixels); end
333
+ def encode_png_pixels_to_scanline_grayscale_2bit(pixels); end
334
+ def encode_png_pixels_to_scanline_grayscale_4bit(pixels); end
335
+ def encode_png_pixels_to_scanline_grayscale_8bit(pixels); end
336
+ def encode_png_pixels_to_scanline_grayscale_alpha_8bit(pixels); end
337
+ def encode_png_pixels_to_scanline_indexed_1bit(pixels); end
338
+ def encode_png_pixels_to_scanline_indexed_2bit(pixels); end
339
+ def encode_png_pixels_to_scanline_indexed_4bit(pixels); end
340
+ def encode_png_pixels_to_scanline_indexed_8bit(pixels); end
341
+ def encode_png_pixels_to_scanline_method(color_mode, depth); end
342
+ def encode_png_pixels_to_scanline_truecolor_8bit(pixels); end
343
+ def encode_png_pixels_to_scanline_truecolor_alpha_8bit(pixels); end
344
+ def encode_png_pixelstream(color_mode = nil, bit_depth = nil, interlace = nil, filtering = nil); end
345
+ def encode_png_str_scanline_average(stream, pos, prev_pos, line_width, pixel_size); end
346
+ def encode_png_str_scanline_none(stream, pos, prev_pos, line_width, pixel_size); end
347
+ def encode_png_str_scanline_paeth(stream, pos, prev_pos, line_width, pixel_size); end
348
+ def encode_png_str_scanline_sub(stream, pos, prev_pos, line_width, pixel_size); end
349
+ def encode_png_str_scanline_up(stream, pos, prev_pos, line_width, pixel_size); end
350
+ def encoding_palette; end
351
+ def encoding_palette=(arg0); end
352
+ def save(filename, constraints = nil); end
353
+ def to_blob(constraints = nil); end
354
+ def to_datastream(constraints = nil); end
355
+ def to_s(constraints = nil); end
356
+ def to_string(constraints = nil); end
357
+ def write(io, constraints = nil); end
358
+ end
359
+ module ChunkyPNG::Canvas::PNGDecoding
360
+ def decode_png_extract_1bit_value(byte, index); end
361
+ def decode_png_extract_2bit_value(byte, index); end
362
+ def decode_png_extract_4bit_value(byte, index); end
363
+ def decode_png_image_pass(stream, width, height, color_mode, depth, start_pos, decoding_palette); end
364
+ def decode_png_pixels_from_scanline_grayscale_16bit(stream, pos, width, _decoding_palette); end
365
+ def decode_png_pixels_from_scanline_grayscale_1bit(stream, pos, width, _decoding_palette); end
366
+ def decode_png_pixels_from_scanline_grayscale_2bit(stream, pos, width, _decoding_palette); end
367
+ def decode_png_pixels_from_scanline_grayscale_4bit(stream, pos, width, _decoding_palette); end
368
+ def decode_png_pixels_from_scanline_grayscale_8bit(stream, pos, width, _decoding_palette); end
369
+ def decode_png_pixels_from_scanline_grayscale_alpha_16bit(stream, pos, width, _decoding_palette); end
370
+ def decode_png_pixels_from_scanline_grayscale_alpha_8bit(stream, pos, width, _decoding_palette); end
371
+ def decode_png_pixels_from_scanline_indexed_1bit(stream, pos, width, decoding_palette); end
372
+ def decode_png_pixels_from_scanline_indexed_2bit(stream, pos, width, decoding_palette); end
373
+ def decode_png_pixels_from_scanline_indexed_4bit(stream, pos, width, decoding_palette); end
374
+ def decode_png_pixels_from_scanline_indexed_8bit(stream, pos, width, decoding_palette); end
375
+ def decode_png_pixels_from_scanline_method(color_mode, depth); end
376
+ def decode_png_pixels_from_scanline_truecolor_16bit(stream, pos, width, _decoding_palette); end
377
+ def decode_png_pixels_from_scanline_truecolor_8bit(stream, pos, width, _decoding_palette); end
378
+ def decode_png_pixels_from_scanline_truecolor_alpha_16bit(stream, pos, width, _decoding_palette); end
379
+ def decode_png_pixels_from_scanline_truecolor_alpha_8bit(stream, pos, width, _decoding_palette); end
380
+ def decode_png_pixelstream(stream, width, height, color_mode, depth, interlace, decoding_palette, transparent_color); end
381
+ def decode_png_resample_16bit_value(value); end
382
+ def decode_png_resample_1bit_value(value); end
383
+ def decode_png_resample_2bit_value(value); end
384
+ def decode_png_resample_4bit_value(value); end
385
+ def decode_png_resample_8bit_value(value); end
386
+ def decode_png_str_scanline(stream, pos, prev_pos, line_length, pixel_size); end
387
+ def decode_png_str_scanline_average(stream, pos, prev_pos, line_length, pixel_size); end
388
+ def decode_png_str_scanline_paeth(stream, pos, prev_pos, line_length, pixel_size); end
389
+ def decode_png_str_scanline_sub(stream, pos, prev_pos, line_length, pixel_size); end
390
+ def decode_png_str_scanline_sub_none(stream, pos, prev_pos, line_length, pixel_size); end
391
+ def decode_png_str_scanline_up(stream, pos, prev_pos, line_length, pixel_size); end
392
+ def decode_png_with_adam7_interlacing(stream, width, height, color_mode, depth, decoding_palette); end
393
+ def decode_png_without_interlacing(stream, width, height, color_mode, depth, decoding_palette); end
394
+ def from_blob(str); end
395
+ def from_datastream(ds); end
396
+ def from_file(filename); end
397
+ def from_io(io); end
398
+ def from_stream(io); end
399
+ def from_string(str); end
400
+ end
401
+ module ChunkyPNG::Canvas::Adam7Interlacing
402
+ def adam7_extract_pass(pass, canvas); end
403
+ def adam7_merge_pass(pass, canvas, subcanvas); end
404
+ def adam7_multiplier_offset(pass); end
405
+ def adam7_pass_size(pass, original_width, original_height); end
406
+ def adam7_pass_sizes(original_width, original_height); end
407
+ end
408
+ module ChunkyPNG::Canvas::StreamExporting
409
+ def to_abgr_stream; end
410
+ def to_alpha_channel_stream; end
411
+ def to_grayscale_stream; end
412
+ def to_rgb_stream; end
413
+ def to_rgba_stream; end
414
+ end
415
+ module ChunkyPNG::Canvas::StreamImporting
416
+ def from_abgr_stream(width, height, stream); end
417
+ def from_bgr_stream(width, height, stream); end
418
+ def from_rgb_stream(width, height, stream); end
419
+ def from_rgba_stream(width, height, stream); end
420
+ end
421
+ module ChunkyPNG::Canvas::DataUrlExporting
422
+ def to_data_url; end
423
+ end
424
+ module ChunkyPNG::Canvas::DataUrlImporting
425
+ def from_data_url(string); end
426
+ end
427
+ module ChunkyPNG::Canvas::Operations
428
+ def border!(size, color = nil); end
429
+ def border(size, color = nil); end
430
+ def check_size_constraints!(other, offset_x, offset_y); end
431
+ def compose!(other, offset_x = nil, offset_y = nil); end
432
+ def compose(other, offset_x = nil, offset_y = nil); end
433
+ def crop!(x, y, crop_width, crop_height); end
434
+ def crop(x, y, crop_width, crop_height); end
435
+ def flip!; end
436
+ def flip; end
437
+ def flip_horizontally!; end
438
+ def flip_horizontally; end
439
+ def flip_vertically!; end
440
+ def flip_vertically; end
441
+ def grayscale!; end
442
+ def grayscale; end
443
+ def mirror!; end
444
+ def mirror; end
445
+ def replace!(other, offset_x = nil, offset_y = nil); end
446
+ def replace(other, offset_x = nil, offset_y = nil); end
447
+ def rotate_180!; end
448
+ def rotate_180; end
449
+ def rotate_clockwise!; end
450
+ def rotate_clockwise; end
451
+ def rotate_counter_clockwise!; end
452
+ def rotate_counter_clockwise; end
453
+ def rotate_left!; end
454
+ def rotate_left; end
455
+ def rotate_right!; end
456
+ def rotate_right; end
457
+ def trim!(border = nil); end
458
+ def trim(border = nil); end
459
+ end
460
+ module ChunkyPNG::Canvas::Drawing
461
+ def bezier_curve(points, stroke_color = nil); end
462
+ def binomial_coefficient(n, k); end
463
+ def circle(x0, y0, radius, stroke_color = nil, fill_color = nil); end
464
+ def compose_pixel(x, y, color); end
465
+ def compose_pixel_unsafe(x, y, color); end
466
+ def line(x0, y0, x1, y1, stroke_color, inclusive = nil); end
467
+ def line_xiaolin_wu(x0, y0, x1, y1, stroke_color, inclusive = nil); end
468
+ def polygon(path, stroke_color = nil, fill_color = nil); end
469
+ def rect(x0, y0, x1, y1, stroke_color = nil, fill_color = nil); end
470
+ end
471
+ module ChunkyPNG::Canvas::Resampling
472
+ def resample(new_width, new_height); end
473
+ def resample_bilinear!(new_width, new_height); end
474
+ def resample_bilinear(new_width, new_height); end
475
+ def resample_nearest_neighbor!(new_width, new_height); end
476
+ def resample_nearest_neighbor(new_width, new_height); end
477
+ def resize(new_width, new_height); end
478
+ def steps(width, new_width); end
479
+ def steps_residues(width, new_width); end
480
+ end
481
+ module ChunkyPNG::Canvas::Masking
482
+ def change_mask_color!(new_color); end
483
+ def change_theme_color!(old_theme_color, new_theme_color, bg_color = nil, tolerance = nil); end
484
+ def extract_mask(mask_color, bg_color = nil, tolerance = nil); end
485
+ end
486
+ class ChunkyPNG::Image < ChunkyPNG::Canvas
487
+ def initialize(width, height, bg_color = nil, metadata = nil); end
488
+ def initialize_copy(other); end
489
+ def metadata; end
490
+ def metadata=(arg0); end
491
+ def metadata_chunks; end
492
+ def self.from_datastream(ds); end
493
+ def to_datastream(constraints = nil); end
494
+ end
495
+ class ChunkyPNG::Exception < StandardError
496
+ end
497
+ class ChunkyPNG::NotSupported < ChunkyPNG::Exception
498
+ end
499
+ class ChunkyPNG::SignatureMismatch < ChunkyPNG::Exception
500
+ end
501
+ class ChunkyPNG::CRCMismatch < ChunkyPNG::Exception
502
+ end
503
+ class ChunkyPNG::InvalidUTF8 < ChunkyPNG::Exception
504
+ end
505
+ class ChunkyPNG::ExpectationFailed < ChunkyPNG::Exception
506
+ end
507
+ class ChunkyPNG::OutOfBounds < ChunkyPNG::ExpectationFailed
508
+ end
509
+ class ChunkyPNG::UnitsUnknown < ChunkyPNG::Exception
510
+ end
@@ -0,0 +1,45 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strong
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/climate_control/all/climate_control.rbi
9
+ #
10
+ # climate_control-0.2.0
11
+ module ClimateControl
12
+ def self.env; end
13
+ def self.modify(environment_overrides, &block); end
14
+ end
15
+ class ClimateControl::Environment
16
+ def [](*args, &block); end
17
+ def []=(*args, &block); end
18
+ def delete(*args, &block); end
19
+ def env; end
20
+ def initialize; end
21
+ def synchronize; end
22
+ def to_hash(*args, &block); end
23
+ extend Forwardable
24
+ end
25
+ class ClimateControl::UnassignableValueError < ArgumentError
26
+ end
27
+ class ClimateControl::Modifier
28
+ def cache_environment_after_block; end
29
+ def clone_environment; end
30
+ def copy_overrides_to_environment; end
31
+ def delete_keys_that_do_not_belong; end
32
+ def initialize(env, environment_overrides = nil, &block); end
33
+ def keys_changed_by_block; end
34
+ def keys_to_remove; end
35
+ def prepare_environment_for_block; end
36
+ def process; end
37
+ def revert_changed_keys; end
38
+ def run_block; end
39
+ def stringify_keys(env); end
40
+ end
41
+ class ClimateControl::Modifier::OverlappingKeysWithChangedValues
42
+ def initialize(hash_1, hash_2); end
43
+ def keys; end
44
+ def overlapping_keys; end
45
+ end
@@ -0,0 +1,91 @@
1
+ # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
+ # srb rbi gems
3
+
4
+ # typed: strong
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/coderay/all/coderay.rbi
9
+ #
10
+ # coderay-1.1.2
11
+ module CodeRay
12
+ def self.coderay_path(*path); end
13
+ def self.encode(code, lang, format, options = nil); end
14
+ def self.encode_file(filename, format, options = nil); end
15
+ def self.encode_tokens(tokens, format, options = nil); end
16
+ def self.encoder(format, options = nil); end
17
+ def self.get_scanner_options(options); end
18
+ def self.highlight(code, lang, options = nil, format = nil); end
19
+ def self.highlight_file(filename, options = nil, format = nil); end
20
+ def self.scan(code, lang, options = nil, &block); end
21
+ def self.scan_file(filename, lang = nil, options = nil, &block); end
22
+ def self.scanner(lang, options = nil, &block); end
23
+ end
24
+ module CodeRay::PluginHost
25
+ def [](id, *args, &blk); end
26
+ def all_plugins; end
27
+ def const_missing(const); end
28
+ def default(id = nil); end
29
+ def list; end
30
+ def load(id, *args, &blk); end
31
+ def load_all; end
32
+ def load_plugin_map; end
33
+ def make_plugin_hash; end
34
+ def map(hash); end
35
+ def path_to(plugin_id); end
36
+ def plugin_hash; end
37
+ def plugin_path(*args); end
38
+ def register(plugin, id); end
39
+ def self.extended(mod); end
40
+ def validate_id(id); end
41
+ end
42
+ class CodeRay::PluginHost::PluginNotFound < LoadError
43
+ end
44
+ class CodeRay::PluginHost::HostNotFound < LoadError
45
+ end
46
+ module CodeRay::Encoders
47
+ extend CodeRay::PluginHost
48
+ end
49
+ module CodeRay::Plugin
50
+ def aliases; end
51
+ def plugin_host(host = nil); end
52
+ def plugin_id; end
53
+ def register_for(id); end
54
+ def title(title = nil); end
55
+ end
56
+ class CodeRay::Encoders::Encoder
57
+ def <<(token); end
58
+ def begin_group(kind); end
59
+ def begin_line(kind); end
60
+ def compile(tokens, options = nil); end
61
+ def encode(code, lang, options = nil); end
62
+ def encode_tokens(tokens, options = nil); end
63
+ def end_group(kind); end
64
+ def end_line(kind); end
65
+ def file_extension; end
66
+ def finish(options); end
67
+ def get_output(options); end
68
+ def highlight(code, lang, options = nil); end
69
+ def initialize(options = nil); end
70
+ def options; end
71
+ def options=(arg0); end
72
+ def output(data); end
73
+ def scanner; end
74
+ def scanner=(arg0); end
75
+ def self.const_missing(sym); end
76
+ def self.file_extension; end
77
+ def setup(options); end
78
+ def text_token(text, kind); end
79
+ def token(content, kind); end
80
+ def tokens(tokens, options = nil); end
81
+ extend CodeRay::Plugin
82
+ end
83
+ class CodeRay::Encoders::Terminal < CodeRay::Encoders::Encoder
84
+ def begin_group(kind); end
85
+ def begin_line(kind); end
86
+ def end_group(kind); end
87
+ def end_line(kind); end
88
+ def open_token(kind); end
89
+ def setup(options); end
90
+ def text_token(text, kind); end
91
+ end