{"pviz_slice":true,"schema_version":"pviz-slice@v1","tool":"blast_radius","generated_at":"2026-11-03T17:29:46.480281+00:00","bundle":{"path":"/b/bundle.json","repo":"lobsters","node_count":508,"edge_count":849},"params":{"command":"blast-radius","target":"app/models/user.rb","direction":"incoming","depth":2,"max_nodes":300,"max_edges":1500},"result":{"schema":"pviz.slice.blast_radius.v1","target":{"input":"app/models/user.rb","resolved":"app/models/user.rb","found":true,"node":{"id":"app/models/user.rb","directory":"app/models","file":"app/models/user.rb","name":"user.rb","language":"ruby","loc":651,"sloc":518,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32}},"params":{"direction":"incoming","depth":2,"max_nodes":300,"max_edges":1500},"summary":{"reachable_nodes":237,"reachable_edges":483,"max_depth_reached":2,"touched_directories":29,"touched_sccs":205,"touched_nontrivial_sccs":2,"touched_runtime_sccs":205,"touched_nontrivial_runtime_sccs":2,"truncated":false,"reachable_nodes_total":237,"reachable_nodes_truncated":false,"reachable_edges_total":483,"reachable_edges_truncated":false},"layers":{"0":[{"id":"app/models/user.rb","directory":"app/models","file":"app/models/user.rb","name":"user.rb","language":"ruby","loc":651,"sloc":518,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32}],"1":[{"id":"app/controllers/application_controller.rb","directory":"app/controllers","file":"app/controllers/application_controller.rb","name":"application_controller.rb","language":"ruby","loc":195,"sloc":158,"scc_id":"app/controllers/application_controller.rb","scc_size":2,"scc_id_runtime":"app/controllers/application_controller.rb","scc_size_runtime":2},{"id":"app/controllers/avatars_controller.rb","directory":"app/controllers","file":"app/controllers/avatars_controller.rb","name":"avatars_controller.rb","language":"ruby","loc":55,"sloc":37,"scc_id":"app/controllers/avatars_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/avatars_controller.rb","scc_size_runtime":1},{"id":"app/controllers/comments_controller.rb","directory":"app/controllers","file":"app/controllers/comments_controller.rb","name":"comments_controller.rb","language":"ruby","loc":464,"sloc":373,"scc_id":"app/controllers/comments_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/comments_controller.rb","scc_size_runtime":1},{"id":"app/controllers/concerns/authenticatable.rb","directory":"app/controllers/concerns","file":"app/controllers/concerns/authenticatable.rb","name":"authenticatable.rb","language":"ruby","loc":72,"sloc":59,"scc_id":"app/controllers/concerns/authenticatable.rb","scc_size":1,"scc_id_runtime":"app/controllers/concerns/authenticatable.rb","scc_size_runtime":1},{"id":"app/controllers/home_controller.rb","directory":"app/controllers","file":"app/controllers/home_controller.rb","name":"home_controller.rb","language":"ruby","loc":387,"sloc":308,"scc_id":"app/controllers/home_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/home_controller.rb","scc_size_runtime":1},{"id":"app/controllers/login_controller.rb","directory":"app/controllers","file":"app/controllers/login_controller.rb","name":"login_controller.rb","language":"ruby","loc":225,"sloc":183,"scc_id":"app/controllers/login_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/login_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/mails_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/mails_controller.rb","name":"mails_controller.rb","language":"ruby","loc":60,"sloc":46,"scc_id":"app/controllers/mod/mails_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/mails_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/reparents_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/reparents_controller.rb","name":"reparents_controller.rb","language":"ruby","loc":37,"sloc":31,"scc_id":"app/controllers/mod/reparents_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/reparents_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/stories_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/stories_controller.rb","name":"stories_controller.rb","language":"ruby","loc":79,"sloc":63,"scc_id":"app/controllers/mod/stories_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/stories_controller.rb","scc_size_runtime":1},{"id":"app/controllers/moderations_controller.rb","directory":"app/controllers","file":"app/controllers/moderations_controller.rb","name":"moderations_controller.rb","language":"ruby","loc":71,"sloc":55,"scc_id":"app/controllers/moderations_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/moderations_controller.rb","scc_size_runtime":1},{"id":"app/controllers/settings_controller.rb","directory":"app/controllers","file":"app/controllers/settings_controller.rb","name":"settings_controller.rb","language":"ruby","loc":299,"sloc":244,"scc_id":"app/controllers/settings_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/settings_controller.rb","scc_size_runtime":1},{"id":"app/controllers/signup_controller.rb","directory":"app/controllers","file":"app/controllers/signup_controller.rb","name":"signup_controller.rb","language":"ruby","loc":99,"sloc":79,"scc_id":"app/controllers/signup_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/signup_controller.rb","scc_size_runtime":1},{"id":"app/controllers/users_controller.rb","directory":"app/controllers","file":"app/controllers/users_controller.rb","name":"users_controller.rb","language":"ruby","loc":199,"sloc":164,"scc_id":"app/controllers/users_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/users_controller.rb","scc_size_runtime":1},{"id":"app/jobs/mastodon_sync_list_job.rb","directory":"app/jobs","file":"app/jobs/mastodon_sync_list_job.rb","name":"mastodon_sync_list_job.rb","language":"ruby","loc":56,"sloc":34,"scc_id":"app/jobs/mastodon_sync_list_job.rb","scc_size":1,"scc_id_runtime":"app/jobs/mastodon_sync_list_job.rb","scc_size_runtime":1},{"id":"app/jobs/notify_comment_job.rb","directory":"app/jobs","file":"app/jobs/notify_comment_job.rb","name":"notify_comment_job.rb","language":"ruby","loc":91,"sloc":76,"scc_id":"app/jobs/notify_comment_job.rb","scc_size":1,"scc_id_runtime":"app/jobs/notify_comment_job.rb","scc_size_runtime":1},{"id":"app/mailboxes/inbox_mailbox.rb","directory":"app/mailboxes","file":"app/mailboxes/inbox_mailbox.rb","name":"inbox_mailbox.rb","language":"ruby","loc":97,"sloc":71,"scc_id":"app/mailboxes/inbox_mailbox.rb","scc_size":1,"scc_id_runtime":"app/mailboxes/inbox_mailbox.rb","scc_size_runtime":1},{"id":"app/models/comment.rb","directory":"app/models","file":"app/models/comment.rb","name":"comment.rb","language":"ruby","loc":618,"sloc":468,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/flagged_commenters.rb","directory":"app/models","file":"app/models/flagged_commenters.rb","name":"flagged_commenters.rb","language":"ruby","loc":91,"sloc":78,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/hat.rb","directory":"app/models","file":"app/models/hat.rb","name":"hat.rb","language":"ruby","loc":61,"sloc":48,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/hat_request.rb","directory":"app/models","file":"app/models/hat_request.rb","name":"hat_request.rb","language":"ruby","loc":46,"sloc":36,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/hidden_story.rb","directory":"app/models","file":"app/models/hidden_story.rb","name":"hidden_story.rb","language":"ruby","loc":25,"sloc":18,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/inactive_user.rb","directory":"app/models","file":"app/models/inactive_user.rb","name":"inactive_user.rb","language":"ruby","loc":26,"sloc":19,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/invitation.rb","directory":"app/models","file":"app/models/invitation.rb","name":"invitation.rb","language":"ruby","loc":35,"sloc":26,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/message.rb","directory":"app/models","file":"app/models/message.rb","name":"message.rb","language":"ruby","loc":111,"sloc":91,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/mod_mail.rb","directory":"app/models","file":"app/models/mod_mail.rb","name":"mod_mail.rb","language":"ruby","loc":45,"sloc":35,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/mod_mail_message.rb","directory":"app/models","file":"app/models/mod_mail_message.rb","name":"mod_mail_message.rb","language":"ruby","loc":18,"sloc":14,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/mod_mail_recipient.rb","directory":"app/models","file":"app/models/mod_mail_recipient.rb","name":"mod_mail_recipient.rb","language":"ruby","loc":4,"sloc":4,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/mod_note.rb","directory":"app/models","file":"app/models/mod_note.rb","name":"mod_note.rb","language":"ruby","loc":201,"sloc":167,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/moderation.rb","directory":"app/models","file":"app/models/moderation.rb","name":"moderation.rb","language":"ruby","loc":134,"sloc":110,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/notification.rb","directory":"app/models","file":"app/models/notification.rb","name":"notification.rb","language":"ruby","loc":74,"sloc":57,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/read_ribbon.rb","directory":"app/models","file":"app/models/read_ribbon.rb","name":"read_ribbon.rb","language":"ruby","loc":50,"sloc":34,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/saved_story.rb","directory":"app/models","file":"app/models/saved_story.rb","name":"saved_story.rb","language":"ruby","loc":16,"sloc":10,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/stats.rb","directory":"app/models","file":"app/models/stats.rb","name":"stats.rb","language":"ruby","loc":105,"sloc":93,"scc_id":"app/models/stats.rb","scc_size":1,"scc_id_runtime":"app/models/stats.rb","scc_size_runtime":1},{"id":"app/models/story.rb","directory":"app/models","file":"app/models/story.rb","name":"story.rb","language":"ruby","loc":1395,"sloc":1107,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/suggested_tagging.rb","directory":"app/models","file":"app/models/suggested_tagging.rb","name":"suggested_tagging.rb","language":"ruby","loc":9,"sloc":5,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/suggested_title.rb","directory":"app/models","file":"app/models/suggested_title.rb","name":"suggested_title.rb","language":"ruby","loc":8,"sloc":5,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/tag_filter.rb","directory":"app/models","file":"app/models/tag_filter.rb","name":"tag_filter.rb","language":"ruby","loc":6,"sloc":4,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/username.rb","directory":"app/models","file":"app/models/username.rb","name":"username.rb","language":"ruby","loc":50,"sloc":44,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/vote.rb","directory":"app/models","file":"app/models/vote.rb","name":"vote.rb","language":"ruby","loc":182,"sloc":138,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"config/initializers/console_methods.rb","directory":"config/initializers","file":"config/initializers/console_methods.rb","name":"console_methods.rb","language":"ruby","loc":9,"sloc":7,"scc_id":"config/initializers/console_methods.rb","scc_size":1,"scc_id_runtime":"config/initializers/console_methods.rb","scc_size_runtime":1},{"id":"db/migrate/20260216202600_clean_up_null_bytes.rb","directory":"db/migrate","file":"db/migrate/20260216202600_clean_up_null_bytes.rb","name":"20260216202600_clean_up_null_bytes.rb","language":"ruby","loc":33,"sloc":25,"scc_id":"db/migrate/20260216202600_clean_up_null_bytes.rb","scc_size":1,"scc_id_runtime":"db/migrate/20260216202600_clean_up_null_bytes.rb","scc_size_runtime":1},{"id":"db/migrate/20260219183300_create_system_user.rb","directory":"db/migrate","file":"db/migrate/20260219183300_create_system_user.rb","name":"20260219183300_create_system_user.rb","language":"ruby","loc":9,"sloc":8,"scc_id":"db/migrate/20260219183300_create_system_user.rb","scc_size":1,"scc_id_runtime":"db/migrate/20260219183300_create_system_user.rb","scc_size_runtime":1},{"id":"db/old_migrations/20140101202252_add_karma_to_users.rb","directory":"db/old_migrations","file":"db/old_migrations/20140101202252_add_karma_to_users.rb","name":"20140101202252_add_karma_to_users.rb","language":"ruby","loc":23,"sloc":19,"scc_id":"db/old_migrations/20140101202252_add_karma_to_users.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20140101202252_add_karma_to_users.rb","scc_size_runtime":1},{"id":"db/old_migrations/20170119172852_move_user_settings.rb","directory":"db/old_migrations","file":"db/old_migrations/20170119172852_move_user_settings.rb","name":"20170119172852_move_user_settings.rb","language":"ruby","loc":58,"sloc":53,"scc_id":"db/old_migrations/20170119172852_move_user_settings.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20170119172852_move_user_settings.rb","scc_size_runtime":1},{"id":"db/old_migrations/20220806200248_set_is_tracker_as_banned_to_domains.rb","directory":"db/old_migrations","file":"db/old_migrations/20220806200248_set_is_tracker_as_banned_to_domains.rb","name":"20220806200248_set_is_tracker_as_banned_to_domains.rb","language":"ruby","loc":10,"sloc":9,"scc_id":"db/old_migrations/20220806200248_set_is_tracker_as_banned_to_domains.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20220806200248_set_is_tracker_as_banned_to_domains.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240208024935_remove_twitter.rb","directory":"db/old_migrations","file":"db/old_migrations/20240208024935_remove_twitter.rb","name":"20240208024935_remove_twitter.rb","language":"ruby","loc":11,"sloc":11,"scc_id":"db/old_migrations/20240208024935_remove_twitter.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240208024935_remove_twitter.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250206172739_fix_prefers_contrast.rb","directory":"db/old_migrations","file":"db/old_migrations/20250206172739_fix_prefers_contrast.rb","name":"20250206172739_fix_prefers_contrast.rb","language":"ruby","loc":9,"sloc":9,"scc_id":"db/old_migrations/20250206172739_fix_prefers_contrast.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250206172739_fix_prefers_contrast.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250605141223_remove_keybase.rb","directory":"db/old_migrations","file":"db/old_migrations/20250605141223_remove_keybase.rb","name":"20250605141223_remove_keybase.rb","language":"ruby","loc":8,"sloc":8,"scc_id":"db/old_migrations/20250605141223_remove_keybase.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250605141223_remove_keybase.rb","scc_size_runtime":1},{"id":"db/old_migrations/20251013204007_create_usernames.rb","directory":"db/old_migrations","file":"db/old_migrations/20251013204007_create_usernames.rb","name":"20251013204007_create_usernames.rb","language":"ruby","loc":66,"sloc":57,"scc_id":"db/old_migrations/20251013204007_create_usernames.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20251013204007_create_usernames.rb","scc_size_runtime":1},{"id":"db/seeds.rb","directory":"db","file":"db/seeds.rb","name":"seeds.rb","language":"ruby","loc":42,"sloc":39,"scc_id":"db/seeds.rb","scc_size":1,"scc_id_runtime":"db/seeds.rb","scc_size_runtime":1},{"id":"lib/tasks/bulk_create_test_data.rake","directory":"lib/tasks","file":"lib/tasks/bulk_create_test_data.rake","name":"bulk_create_test_data.rake","language":"ruby","loc":169,"sloc":141,"scc_id":"lib/tasks/bulk_create_test_data.rake","scc_size":1,"scc_id_runtime":"lib/tasks/bulk_create_test_data.rake","scc_size_runtime":1},{"id":"lib/tasks/fake_data.rake","directory":"lib/tasks","file":"lib/tasks/fake_data.rake","name":"fake_data.rake","language":"ruby","loc":388,"sloc":340,"scc_id":"lib/tasks/fake_data.rake","scc_size":1,"scc_id_runtime":"lib/tasks/fake_data.rake","scc_size_runtime":1},{"id":"lib/tasks/update_banned_url_shorteners.rake","directory":"lib/tasks","file":"lib/tasks/update_banned_url_shorteners.rake","name":"update_banned_url_shorteners.rake","language":"ruby","loc":37,"sloc":27,"scc_id":"lib/tasks/update_banned_url_shorteners.rake","scc_size":1,"scc_id_runtime":"lib/tasks/update_banned_url_shorteners.rake","scc_size_runtime":1},{"id":"script/mail_new_activity.rb","directory":"script","file":"script/mail_new_activity.rb","name":"mail_new_activity.rb","language":"ruby","loc":231,"sloc":164,"scc_id":"script/mail_new_activity.rb","scc_size":1,"scc_id_runtime":"script/mail_new_activity.rb","scc_size_runtime":1},{"id":"spec/models/story_spec.rb","directory":"spec/models","file":"spec/models/story_spec.rb","name":"story_spec.rb","language":"ruby","loc":840,"sloc":648,"scc_id":"spec/models/story_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/story_spec.rb","scc_size_runtime":1},{"id":"spec/models/user_spec.rb","directory":"spec/models","file":"spec/models/user_spec.rb","name":"user_spec.rb","language":"ruby","loc":227,"sloc":172,"scc_id":"spec/models/user_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/user_spec.rb","scc_size_runtime":1},{"id":"spec/rails_helper.rb","directory":"spec","file":"spec/rails_helper.rb","name":"rails_helper.rb","language":"ruby","loc":98,"sloc":55,"scc_id":"spec/rails_helper.rb","scc_size":1,"scc_id_runtime":"spec/rails_helper.rb","scc_size_runtime":1},{"id":"spec/requests/login_spec.rb","directory":"spec/requests","file":"spec/requests/login_spec.rb","name":"login_spec.rb","language":"ruby","loc":189,"sloc":164,"scc_id":"spec/requests/login_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/login_spec.rb","scc_size_runtime":1},{"id":"spec/tasks/fake_data_spec.rb","directory":"spec/tasks","file":"spec/tasks/fake_data_spec.rb","name":"fake_data_spec.rb","language":"ruby","loc":17,"sloc":10,"scc_id":"spec/tasks/fake_data_spec.rb","scc_size":1,"scc_id_runtime":"spec/tasks/fake_data_spec.rb","scc_size_runtime":1}],"2":[{"id":"app/controllers/about_controller.rb","directory":"app/controllers","file":"app/controllers/about_controller.rb","name":"about_controller.rb","language":"ruby","loc":40,"sloc":34,"scc_id":"app/controllers/about_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/about_controller.rb","scc_size_runtime":1},{"id":"app/controllers/banned_ips_controller.rb","directory":"app/controllers","file":"app/controllers/banned_ips_controller.rb","name":"banned_ips_controller.rb","language":"ruby","loc":32,"sloc":28,"scc_id":"app/controllers/banned_ips_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/banned_ips_controller.rb","scc_size_runtime":1},{"id":"app/controllers/cabinet_controller.rb","directory":"app/controllers","file":"app/controllers/cabinet_controller.rb","name":"cabinet_controller.rb","language":"ruby","loc":5,"sloc":5,"scc_id":"app/controllers/cabinet_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/cabinet_controller.rb","scc_size_runtime":1},{"id":"app/controllers/categories_controller.rb","directory":"app/controllers","file":"app/controllers/categories_controller.rb","name":"categories_controller.rb","language":"ruby","loc":48,"sloc":40,"scc_id":"app/controllers/categories_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/categories_controller.rb","scc_size_runtime":1},{"id":"app/controllers/concerns/story_finder.rb","directory":"app/controllers/concerns","file":"app/controllers/concerns/story_finder.rb","name":"story_finder.rb","language":"ruby","loc":26,"sloc":21,"scc_id":"app/controllers/concerns/story_finder.rb","scc_size":1,"scc_id_runtime":"app/controllers/concerns/story_finder.rb","scc_size_runtime":1},{"id":"app/controllers/filters_controller.rb","directory":"app/controllers","file":"app/controllers/filters_controller.rb","name":"filters_controller.rb","language":"ruby","loc":38,"sloc":25,"scc_id":"app/controllers/filters_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/filters_controller.rb","scc_size_runtime":1},{"id":"app/controllers/hat_requests_controller.rb","directory":"app/controllers","file":"app/controllers/hat_requests_controller.rb","name":"hat_requests_controller.rb","language":"ruby","loc":53,"sloc":40,"scc_id":"app/controllers/hat_requests_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/hat_requests_controller.rb","scc_size_runtime":1},{"id":"app/controllers/hats_controller.rb","directory":"app/controllers","file":"app/controllers/hats_controller.rb","name":"hats_controller.rb","language":"ruby","loc":96,"sloc":78,"scc_id":"app/controllers/hats_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/hats_controller.rb","scc_size_runtime":1},{"id":"app/controllers/inbox_controller.rb","directory":"app/controllers","file":"app/controllers/inbox_controller.rb","name":"inbox_controller.rb","language":"ruby","loc":71,"sloc":58,"scc_id":"app/controllers/inbox_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/inbox_controller.rb","scc_size_runtime":1},{"id":"app/controllers/invitations_controller.rb","directory":"app/controllers","file":"app/controllers/invitations_controller.rb","name":"invitations_controller.rb","language":"ruby","loc":132,"sloc":108,"scc_id":"app/controllers/invitations_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/invitations_controller.rb","scc_size_runtime":1},{"id":"app/controllers/jobs_mod_controller.rb","directory":"app/controllers","file":"app/controllers/jobs_mod_controller.rb","name":"jobs_mod_controller.rb","language":"ruby","loc":7,"sloc":4,"scc_id":"app/controllers/jobs_mod_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/jobs_mod_controller.rb","scc_size_runtime":1},{"id":"app/controllers/messages_controller.rb","directory":"app/controllers","file":"app/controllers/messages_controller.rb","name":"messages_controller.rb","language":"ruby","loc":174,"sloc":137,"scc_id":"app/controllers/messages_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/messages_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/comments_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/comments_controller.rb","name":"comments_controller.rb","language":"ruby","loc":29,"sloc":24,"scc_id":"app/controllers/mod/comments_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/comments_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/flagged_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/flagged_controller.rb","name":"flagged_controller.rb","language":"ruby","loc":36,"sloc":28,"scc_id":"app/controllers/mod/flagged_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/flagged_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/mail_messages_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/mail_messages_controller.rb","name":"mail_messages_controller.rb","language":"ruby","loc":19,"sloc":15,"scc_id":"app/controllers/mod/mail_messages_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/mail_messages_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/mod_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/mod_controller.rb","name":"mod_controller.rb","language":"ruby","loc":17,"sloc":12,"scc_id":"app/controllers/mod/mod_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/mod_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod/notes_controller.rb","directory":"app/controllers/mod","file":"app/controllers/mod/notes_controller.rb","name":"notes_controller.rb","language":"ruby","loc":22,"sloc":17,"scc_id":"app/controllers/mod/notes_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod/notes_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod_mail_messages_controller.rb","directory":"app/controllers","file":"app/controllers/mod_mail_messages_controller.rb","name":"mod_mail_messages_controller.rb","language":"ruby","loc":22,"sloc":17,"scc_id":"app/controllers/mod_mail_messages_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod_mail_messages_controller.rb","scc_size_runtime":1},{"id":"app/controllers/mod_mails_controller.rb","directory":"app/controllers","file":"app/controllers/mod_mails_controller.rb","name":"mod_mails_controller.rb","language":"ruby","loc":16,"sloc":13,"scc_id":"app/controllers/mod_mails_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/mod_mails_controller.rb","scc_size_runtime":1},{"id":"app/controllers/origins_controller.rb","directory":"app/controllers","file":"app/controllers/origins_controller.rb","name":"origins_controller.rb","language":"ruby","loc":6,"sloc":6,"scc_id":"app/controllers/origins_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/origins_controller.rb","scc_size_runtime":1},{"id":"app/controllers/search_controller.rb","directory":"app/controllers","file":"app/controllers/search_controller.rb","name":"search_controller.rb","language":"ruby","loc":46,"sloc":34,"scc_id":"app/controllers/search_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/search_controller.rb","scc_size_runtime":1},{"id":"app/controllers/stats_controller.rb","directory":"app/controllers","file":"app/controllers/stats_controller.rb","name":"stats_controller.rb","language":"ruby","loc":7,"sloc":5,"scc_id":"app/controllers/stats_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/stats_controller.rb","scc_size_runtime":1},{"id":"app/controllers/stories_controller.rb","directory":"app/controllers","file":"app/controllers/stories_controller.rb","name":"stories_controller.rb","language":"ruby","loc":518,"sloc":421,"scc_id":"app/controllers/stories_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/stories_controller.rb","scc_size_runtime":1},{"id":"app/controllers/story_image_controller.rb","directory":"app/controllers","file":"app/controllers/story_image_controller.rb","name":"story_image_controller.rb","language":"ruby","loc":22,"sloc":19,"scc_id":"app/controllers/story_image_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/story_image_controller.rb","scc_size_runtime":1},{"id":"app/controllers/story_urls_controller.rb","directory":"app/controllers","file":"app/controllers/story_urls_controller.rb","name":"story_urls_controller.rb","language":"ruby","loc":26,"sloc":21,"scc_id":"app/controllers/story_urls_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/story_urls_controller.rb","scc_size_runtime":1},{"id":"app/controllers/suggestions_controller.rb","directory":"app/controllers","file":"app/controllers/suggestions_controller.rb","name":"suggestions_controller.rb","language":"ruby","loc":81,"sloc":72,"scc_id":"app/controllers/suggestions_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/suggestions_controller.rb","scc_size_runtime":1},{"id":"app/controllers/tags_controller.rb","directory":"app/controllers","file":"app/controllers/tags_controller.rb","name":"tags_controller.rb","language":"ruby","loc":19,"sloc":13,"scc_id":"app/controllers/tags_controller.rb","scc_size":1,"scc_id_runtime":"app/controllers/tags_controller.rb","scc_size_runtime":1},{"id":"app/helpers/application_helper.rb","directory":"app/helpers","file":"app/helpers/application_helper.rb","name":"application_helper.rb","language":"ruby","loc":232,"sloc":184,"scc_id":"app/helpers/application_helper.rb","scc_size":1,"scc_id_runtime":"app/helpers/application_helper.rb","scc_size_runtime":1},{"id":"app/helpers/stories_helper.rb","directory":"app/helpers","file":"app/helpers/stories_helper.rb","name":"stories_helper.rb","language":"ruby","loc":24,"sloc":19,"scc_id":"app/helpers/stories_helper.rb","scc_size":1,"scc_id_runtime":"app/helpers/stories_helper.rb","scc_size_runtime":1},{"id":"app/jobs/cache_page_job.rb","directory":"app/jobs","file":"app/jobs/cache_page_job.rb","name":"cache_page_job.rb","language":"ruby","loc":25,"sloc":19,"scc_id":"app/controllers/application_controller.rb","scc_size":2,"scc_id_runtime":"app/controllers/application_controller.rb","scc_size_runtime":2},{"id":"app/jobs/prefill_page_cache_job.rb","directory":"app/jobs","file":"app/jobs/prefill_page_cache_job.rb","name":"prefill_page_cache_job.rb","language":"ruby","loc":19,"sloc":14,"scc_id":"app/jobs/prefill_page_cache_job.rb","scc_size":1,"scc_id_runtime":"app/jobs/prefill_page_cache_job.rb","scc_size_runtime":1},{"id":"app/jobs/refill_story_page_cache_job.rb","directory":"app/jobs","file":"app/jobs/refill_story_page_cache_job.rb","name":"refill_story_page_cache_job.rb","language":"ruby","loc":16,"sloc":12,"scc_id":"app/jobs/refill_story_page_cache_job.rb","scc_size":1,"scc_id_runtime":"app/jobs/refill_story_page_cache_job.rb","scc_size_runtime":1},{"id":"app/models/category.rb","directory":"app/models","file":"app/models/category.rb","name":"category.rb","language":"ruby","loc":41,"sloc":32,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/comment_stat.rb","directory":"app/models","file":"app/models/comment_stat.rb","name":"comment_stat.rb","language":"ruby","loc":28,"sloc":19,"scc_id":"app/models/comment_stat.rb","scc_size":1,"scc_id_runtime":"app/models/comment_stat.rb","scc_size_runtime":1},{"id":"app/models/comment_vote_hydrator.rb","directory":"app/models","file":"app/models/comment_vote_hydrator.rb","name":"comment_vote_hydrator.rb","language":"ruby","loc":33,"sloc":28,"scc_id":"app/models/comment_vote_hydrator.rb","scc_size":1,"scc_id_runtime":"app/models/comment_vote_hydrator.rb","scc_size_runtime":1},{"id":"app/models/domain.rb","directory":"app/models","file":"app/models/domain.rb","name":"domain.rb","language":"ruby","loc":166,"sloc":124,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/link.rb","directory":"app/models","file":"app/models/link.rb","name":"link.rb","language":"ruby","loc":95,"sloc":64,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/mod_mail_reference.rb","directory":"app/models","file":"app/models/mod_mail_reference.rb","name":"mod_mail_reference.rb","language":"ruby","loc":6,"sloc":5,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/origin.rb","directory":"app/models","file":"app/models/origin.rb","name":"origin.rb","language":"ruby","loc":100,"sloc":74,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/search.rb","directory":"app/models","file":"app/models/search.rb","name":"search.rb","language":"ruby","loc":343,"sloc":269,"scc_id":"app/models/search.rb","scc_size":1,"scc_id_runtime":"app/models/search.rb","scc_size_runtime":1},{"id":"app/models/stories_paginator.rb","directory":"app/models","file":"app/models/stories_paginator.rb","name":"stories_paginator.rb","language":"ruby","loc":50,"sloc":39,"scc_id":"app/models/stories_paginator.rb","scc_size":1,"scc_id_runtime":"app/models/stories_paginator.rb","scc_size_runtime":1},{"id":"app/models/story_text.rb","directory":"app/models","file":"app/models/story_text.rb","name":"story_text.rb","language":"ruby","loc":37,"sloc":26,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/tag.rb","directory":"app/models","file":"app/models/tag.rb","name":"tag.rb","language":"ruby","loc":118,"sloc":98,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"app/models/tagging.rb","directory":"app/models","file":"app/models/tagging.rb","name":"tagging.rb","language":"ruby","loc":8,"sloc":5,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"config/sitemap.rb","directory":"config","file":"config/sitemap.rb","name":"sitemap.rb","language":"ruby","loc":31,"sloc":21,"scc_id":"config/sitemap.rb","scc_size":1,"scc_id_runtime":"config/sitemap.rb","scc_size_runtime":1},{"id":"db/migrate/20251214043426_messages_short_id_non_nullable_and_default_value.rb","directory":"db/migrate","file":"db/migrate/20251214043426_messages_short_id_non_nullable_and_default_value.rb","name":"20251214043426_messages_short_id_non_nullable_and_default_value.rb","language":"ruby","loc":10,"sloc":9,"scc_id":"db/migrate/20251214043426_messages_short_id_non_nullable_and_default_value.rb","scc_size":1,"scc_id_runtime":"db/migrate/20251214043426_messages_short_id_non_nullable_and_default_value.rb","scc_size_runtime":1},{"id":"db/old_migrations/20120703184957_integrated_story_hotness.rb","directory":"db/old_migrations","file":"db/old_migrations/20120703184957_integrated_story_hotness.rb","name":"20120703184957_integrated_story_hotness.rb","language":"ruby","loc":20,"sloc":16,"scc_id":"db/old_migrations/20120703184957_integrated_story_hotness.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20120703184957_integrated_story_hotness.rb","scc_size_runtime":1},{"id":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","directory":"db/old_migrations","file":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","name":"20120705145520_move_markdown_into_sql.rb","language":"ruby","loc":23,"sloc":20,"scc_id":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","scc_size_runtime":1},{"id":"db/old_migrations/20140109034338_move_comment_counts_to_story.rb","directory":"db/old_migrations","file":"db/old_migrations/20140109034338_move_comment_counts_to_story.rb","name":"20140109034338_move_comment_counts_to_story.rb","language":"ruby","loc":26,"sloc":22,"scc_id":"db/old_migrations/20140109034338_move_comment_counts_to_story.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20140109034338_move_comment_counts_to_story.rb","scc_size_runtime":1},{"id":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","directory":"db/old_migrations","file":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","name":"20150211170052_move_hidden_votes_to_hidden_story.rb","language":"ruby","loc":19,"sloc":16,"scc_id":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","scc_size_runtime":1},{"id":"db/old_migrations/20180131203555_fix_doffed_at.rb","directory":"db/old_migrations","file":"db/old_migrations/20180131203555_fix_doffed_at.rb","name":"20180131203555_fix_doffed_at.rb","language":"ruby","loc":6,"sloc":6,"scc_id":"db/old_migrations/20180131203555_fix_doffed_at.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20180131203555_fix_doffed_at.rb","scc_size_runtime":1},{"id":"db/old_migrations/20191227234358_add_domain_to_stories.rb","directory":"db/old_migrations","file":"db/old_migrations/20191227234358_add_domain_to_stories.rb","name":"20191227234358_add_domain_to_stories.rb","language":"ruby","loc":30,"sloc":24,"scc_id":"db/old_migrations/20191227234358_add_domain_to_stories.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20191227234358_add_domain_to_stories.rb","scc_size_runtime":1},{"id":"db/old_migrations/20220128133226_fix_story_mod_notes.rb","directory":"db/old_migrations","file":"db/old_migrations/20220128133226_fix_story_mod_notes.rb","name":"20220128133226_fix_story_mod_notes.rb","language":"ruby","loc":31,"sloc":28,"scc_id":"db/old_migrations/20220128133226_fix_story_mod_notes.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20220128133226_fix_story_mod_notes.rb","scc_size_runtime":1},{"id":"db/old_migrations/20220331165136_message_author_nullable.rb","directory":"db/old_migrations","file":"db/old_migrations/20220331165136_message_author_nullable.rb","name":"20220331165136_message_author_nullable.rb","language":"ruby","loc":11,"sloc":10,"scc_id":"db/old_migrations/20220331165136_message_author_nullable.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20220331165136_message_author_nullable.rb","scc_size_runtime":1},{"id":"db/old_migrations/20230828195756_normalize_url.rb","directory":"db/old_migrations","file":"db/old_migrations/20230828195756_normalize_url.rb","name":"20230828195756_normalize_url.rb","language":"ruby","loc":26,"sloc":15,"scc_id":"db/old_migrations/20230828195756_normalize_url.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20230828195756_normalize_url.rb","scc_size_runtime":1},{"id":"db/old_migrations/20230912160752_story_text_searching.rb","directory":"db/old_migrations","file":"db/old_migrations/20230912160752_story_text_searching.rb","name":"20230912160752_story_text_searching.rb","language":"ruby","loc":36,"sloc":28,"scc_id":"db/old_migrations/20230912160752_story_text_searching.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20230912160752_story_text_searching.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240315143804_coalesce_vote_reason.rb","directory":"db/old_migrations","file":"db/old_migrations/20240315143804_coalesce_vote_reason.rb","name":"20240315143804_coalesce_vote_reason.rb","language":"ruby","loc":9,"sloc":8,"scc_id":"db/old_migrations/20240315143804_coalesce_vote_reason.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240315143804_coalesce_vote_reason.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240717155412_hydrate_links.rb","directory":"db/old_migrations","file":"db/old_migrations/20240717155412_hydrate_links.rb","name":"20240717155412_hydrate_links.rb","language":"ruby","loc":14,"sloc":13,"scc_id":"db/old_migrations/20240717155412_hydrate_links.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240717155412_hydrate_links.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240822174547_add_short_id_hats.rb","directory":"db/old_migrations","file":"db/old_migrations/20240822174547_add_short_id_hats.rb","name":"20240822174547_add_short_id_hats.rb","language":"ruby","loc":14,"sloc":13,"scc_id":"db/old_migrations/20240822174547_add_short_id_hats.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240822174547_add_short_id_hats.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240907171330_fix_links_in_invite_notes.rb","directory":"db/old_migrations","file":"db/old_migrations/20240907171330_fix_links_in_invite_notes.rb","name":"20240907171330_fix_links_in_invite_notes.rb","language":"ruby","loc":14,"sloc":12,"scc_id":"db/old_migrations/20240907171330_fix_links_in_invite_notes.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240907171330_fix_links_in_invite_notes.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240909220644_recalculate_comment_confidences.rb","directory":"db/old_migrations","file":"db/old_migrations/20240909220644_recalculate_comment_confidences.rb","name":"20240909220644_recalculate_comment_confidences.rb","language":"ruby","loc":20,"sloc":12,"scc_id":"db/old_migrations/20240909220644_recalculate_comment_confidences.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240909220644_recalculate_comment_confidences.rb","scc_size_runtime":1},{"id":"db/old_migrations/20240926150737_add_origin.rb","directory":"db/old_migrations","file":"db/old_migrations/20240926150737_add_origin.rb","name":"20240926150737_add_origin.rb","language":"ruby","loc":75,"sloc":62,"scc_id":"db/old_migrations/20240926150737_add_origin.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20240926150737_add_origin.rb","scc_size_runtime":1},{"id":"db/old_migrations/20241104215430_add_comment_stats.rb","directory":"db/old_migrations","file":"db/old_migrations/20241104215430_add_comment_stats.rb","name":"20241104215430_add_comment_stats.rb","language":"ruby","loc":18,"sloc":16,"scc_id":"db/old_migrations/20241104215430_add_comment_stats.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20241104215430_add_comment_stats.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250203223624_count_merged_stories.rb","directory":"db/old_migrations","file":"db/old_migrations/20250203223624_count_merged_stories.rb","name":"20250203223624_count_merged_stories.rb","language":"ruby","loc":10,"sloc":9,"scc_id":"db/old_migrations/20250203223624_count_merged_stories.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250203223624_count_merged_stories.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250206170347_materialize_comments_depth_reply_count.rb","directory":"db/old_migrations","file":"db/old_migrations/20250206170347_materialize_comments_depth_reply_count.rb","name":"20250206170347_materialize_comments_depth_reply_count.rb","language":"ruby","loc":28,"sloc":25,"scc_id":"db/old_migrations/20250206170347_materialize_comments_depth_reply_count.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250206170347_materialize_comments_depth_reply_count.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250208222418_add_edit_timestamps.rb","directory":"db/old_migrations","file":"db/old_migrations/20250208222418_add_edit_timestamps.rb","name":"20250208222418_add_edit_timestamps.rb","language":"ruby","loc":24,"sloc":17,"scc_id":"db/old_migrations/20250208222418_add_edit_timestamps.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250208222418_add_edit_timestamps.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","directory":"db/old_migrations","file":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","name":"20250210214901_fix_last_x_at_timestamps.rb","language":"ruby","loc":6,"sloc":6,"scc_id":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250521131204_temporal_tokens.rb","directory":"db/old_migrations","file":"db/old_migrations/20250521131204_temporal_tokens.rb","name":"20250521131204_temporal_tokens.rb","language":"ruby","loc":55,"sloc":47,"scc_id":"db/old_migrations/20250521131204_temporal_tokens.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250521131204_temporal_tokens.rb","scc_size_runtime":1},{"id":"db/old_migrations/20250807160046_create_mod_activities.rb","directory":"db/old_migrations","file":"db/old_migrations/20250807160046_create_mod_activities.rb","name":"20250807160046_create_mod_activities.rb","language":"ruby","loc":16,"sloc":13,"scc_id":"db/old_migrations/20250807160046_create_mod_activities.rb","scc_size":1,"scc_id_runtime":"db/old_migrations/20250807160046_create_mod_activities.rb","scc_size_runtime":1},{"id":"extras/markdowner.rb","directory":"extras","file":"extras/markdowner.rb","name":"markdowner.rb","language":"ruby","loc":156,"sloc":113,"scc_id":"app/models/category.rb","scc_size":32,"scc_id_runtime":"app/models/category.rb","scc_size_runtime":32},{"id":"lib/tasks/backfill_notifications.rake","directory":"lib/tasks","file":"lib/tasks/backfill_notifications.rake","name":"backfill_notifications.rake","language":"ruby","loc":42,"sloc":38,"scc_id":"lib/tasks/backfill_notifications.rake","scc_size":1,"scc_id_runtime":"lib/tasks/backfill_notifications.rake","scc_size_runtime":1},{"id":"script/mastodon_post.rb","directory":"script","file":"script/mastodon_post.rb","name":"mastodon_post.rb","language":"ruby","loc":58,"sloc":42,"scc_id":"script/mastodon_post.rb","scc_size":1,"scc_id_runtime":"script/mastodon_post.rb","scc_size_runtime":1},{"id":"spec/controllers/comments_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/comments_controller_spec.rb","name":"comments_controller_spec.rb","language":"ruby","loc":24,"sloc":18,"scc_id":"spec/controllers/comments_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/comments_controller_spec.rb","scc_size_runtime":1},{"id":"spec/controllers/home_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/home_controller_spec.rb","name":"home_controller_spec.rb","language":"ruby","loc":309,"sloc":250,"scc_id":"spec/controllers/home_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/home_controller_spec.rb","scc_size_runtime":1},{"id":"spec/controllers/inbox_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/inbox_controller_spec.rb","name":"inbox_controller_spec.rb","language":"ruby","loc":64,"sloc":47,"scc_id":"spec/controllers/inbox_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/inbox_controller_spec.rb","scc_size_runtime":1},{"id":"spec/controllers/messages_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/messages_controller_spec.rb","name":"messages_controller_spec.rb","language":"ruby","loc":45,"sloc":37,"scc_id":"spec/controllers/messages_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/messages_controller_spec.rb","scc_size_runtime":1},{"id":"spec/controllers/settings_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/settings_controller_spec.rb","name":"settings_controller_spec.rb","language":"ruby","loc":23,"sloc":21,"scc_id":"spec/controllers/settings_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/settings_controller_spec.rb","scc_size_runtime":1},{"id":"spec/controllers/story_image_controller_spec.rb","directory":"spec/controllers","file":"spec/controllers/story_image_controller_spec.rb","name":"story_image_controller_spec.rb","language":"ruby","loc":47,"sloc":39,"scc_id":"spec/controllers/story_image_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/controllers/story_image_controller_spec.rb","scc_size_runtime":1},{"id":"spec/css_widely_available_spec.rb","directory":"spec","file":"spec/css_widely_available_spec.rb","name":"css_widely_available_spec.rb","language":"ruby","loc":239,"sloc":174,"scc_id":"spec/css_widely_available_spec.rb","scc_size":1,"scc_id_runtime":"spec/css_widely_available_spec.rb","scc_size_runtime":1},{"id":"spec/extras/bitpacking_spec.rb","directory":"spec/extras","file":"spec/extras/bitpacking_spec.rb","name":"bitpacking_spec.rb","language":"ruby","loc":22,"sloc":18,"scc_id":"spec/extras/bitpacking_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/bitpacking_spec.rb","scc_size_runtime":1},{"id":"spec/extras/github_spec.rb","directory":"spec/extras","file":"spec/extras/github_spec.rb","name":"github_spec.rb","language":"ruby","loc":18,"sloc":13,"scc_id":"spec/extras/github_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/github_spec.rb","scc_size_runtime":1},{"id":"spec/extras/html_encoder_spec.rb","directory":"spec/extras","file":"spec/extras/html_encoder_spec.rb","name":"html_encoder_spec.rb","language":"ruby","loc":13,"sloc":9,"scc_id":"spec/extras/html_encoder_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/html_encoder_spec.rb","scc_size_runtime":1},{"id":"spec/extras/markdowner_spec.rb","directory":"spec/extras","file":"spec/extras/markdowner_spec.rb","name":"markdowner_spec.rb","language":"ruby","loc":261,"sloc":187,"scc_id":"spec/extras/markdowner_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/markdowner_spec.rb","scc_size_runtime":1},{"id":"spec/extras/normalize_url_spec.rb","directory":"spec/extras","file":"spec/extras/normalize_url_spec.rb","name":"normalize_url_spec.rb","language":"ruby","loc":67,"sloc":59,"scc_id":"spec/extras/normalize_url_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/normalize_url_spec.rb","scc_size_runtime":1},{"id":"spec/extras/page_caching_spec.rb","directory":"spec/extras","file":"spec/extras/page_caching_spec.rb","name":"page_caching_spec.rb","language":"ruby","loc":95,"sloc":71,"scc_id":"spec/extras/page_caching_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/page_caching_spec.rb","scc_size_runtime":1},{"id":"spec/extras/routes_spec.rb","directory":"spec/extras","file":"spec/extras/routes_spec.rb","name":"routes_spec.rb","language":"ruby","loc":25,"sloc":19,"scc_id":"spec/extras/routes_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/routes_spec.rb","scc_size_runtime":1},{"id":"spec/extras/sponge_spec.rb","directory":"spec/extras","file":"spec/extras/sponge_spec.rb","name":"sponge_spec.rb","language":"ruby","loc":17,"sloc":13,"scc_id":"spec/extras/sponge_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/sponge_spec.rb","scc_size_runtime":1},{"id":"spec/extras/utils_spec.rb","directory":"spec/extras","file":"spec/extras/utils_spec.rb","name":"utils_spec.rb","language":"ruby","loc":36,"sloc":32,"scc_id":"spec/extras/utils_spec.rb","scc_size":1,"scc_id_runtime":"spec/extras/utils_spec.rb","scc_size_runtime":1},{"id":"spec/features/comment_spec.rb","directory":"spec/features","file":"spec/features/comment_spec.rb","name":"comment_spec.rb","language":"ruby","loc":150,"sloc":120,"scc_id":"spec/features/comment_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/comment_spec.rb","scc_size_runtime":1},{"id":"spec/features/doff_hat_spec.rb","directory":"spec/features","file":"spec/features/doff_hat_spec.rb","name":"doff_hat_spec.rb","language":"ruby","loc":27,"sloc":20,"scc_id":"spec/features/doff_hat_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/doff_hat_spec.rb","scc_size_runtime":1},{"id":"spec/features/edit_hat_spec.rb","directory":"spec/features","file":"spec/features/edit_hat_spec.rb","name":"edit_hat_spec.rb","language":"ruby","loc":58,"sloc":43,"scc_id":"spec/features/edit_hat_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/edit_hat_spec.rb","scc_size_runtime":1},{"id":"spec/features/filter_spec.rb","directory":"spec/features","file":"spec/features/filter_spec.rb","name":"filter_spec.rb","language":"ruby","loc":92,"sloc":65,"scc_id":"spec/features/filter_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/filter_spec.rb","scc_size_runtime":1},{"id":"spec/features/hat_request_spec.rb","directory":"spec/features","file":"spec/features/hat_request_spec.rb","name":"hat_request_spec.rb","language":"ruby","loc":48,"sloc":37,"scc_id":"spec/features/hat_request_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/hat_request_spec.rb","scc_size_runtime":1},{"id":"spec/features/hats_spec.rb","directory":"spec/features","file":"spec/features/hats_spec.rb","name":"hats_spec.rb","language":"ruby","loc":29,"sloc":21,"scc_id":"spec/features/hats_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/hats_spec.rb","scc_size_runtime":1},{"id":"spec/features/homepage_spec.rb","directory":"spec/features","file":"spec/features/homepage_spec.rb","name":"homepage_spec.rb","language":"ruby","loc":122,"sloc":92,"scc_id":"spec/features/homepage_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/homepage_spec.rb","scc_size_runtime":1},{"id":"spec/features/mod_domains_spec.rb","directory":"spec/features","file":"spec/features/mod_domains_spec.rb","name":"mod_domains_spec.rb","language":"ruby","loc":90,"sloc":75,"scc_id":"spec/features/mod_domains_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/mod_domains_spec.rb","scc_size_runtime":1},{"id":"spec/features/mod_origins_spec.rb","directory":"spec/features","file":"spec/features/mod_origins_spec.rb","name":"mod_origins_spec.rb","language":"ruby","loc":63,"sloc":51,"scc_id":"spec/features/mod_origins_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/mod_origins_spec.rb","scc_size_runtime":1},{"id":"spec/features/newest_spec.rb","directory":"spec/features","file":"spec/features/newest_spec.rb","name":"newest_spec.rb","language":"ruby","loc":100,"sloc":79,"scc_id":"spec/features/newest_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/newest_spec.rb","scc_size_runtime":1},{"id":"spec/features/preferred_color_scheme_spec.rb","directory":"spec/features","file":"spec/features/preferred_color_scheme_spec.rb","name":"preferred_color_scheme_spec.rb","language":"ruby","loc":171,"sloc":148,"scc_id":"spec/features/preferred_color_scheme_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/preferred_color_scheme_spec.rb","scc_size_runtime":1},{"id":"spec/features/read_story_spec.rb","directory":"spec/features","file":"spec/features/read_story_spec.rb","name":"read_story_spec.rb","language":"ruby","loc":132,"sloc":105,"scc_id":"spec/features/read_story_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/read_story_spec.rb","scc_size_runtime":1},{"id":"spec/features/settings_spec.rb","directory":"spec/features","file":"spec/features/settings_spec.rb","name":"settings_spec.rb","language":"ruby","loc":78,"sloc":60,"scc_id":"spec/features/settings_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/settings_spec.rb","scc_size_runtime":1},{"id":"spec/features/story_spec.rb","directory":"spec/features","file":"spec/features/story_spec.rb","name":"story_spec.rb","language":"ruby","loc":57,"sloc":42,"scc_id":"spec/features/story_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/story_spec.rb","scc_size_runtime":1},{"id":"spec/features/submit_story_spec.rb","directory":"spec/features","file":"spec/features/submit_story_spec.rb","name":"submit_story_spec.rb","language":"ruby","loc":218,"sloc":178,"scc_id":"spec/features/submit_story_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/submit_story_spec.rb","scc_size_runtime":1},{"id":"spec/features/user_administration_spec.rb","directory":"spec/features","file":"spec/features/user_administration_spec.rb","name":"user_administration_spec.rb","language":"ruby","loc":77,"sloc":68,"scc_id":"spec/features/user_administration_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/user_administration_spec.rb","scc_size_runtime":1},{"id":"spec/features/user_threads_spec.rb","directory":"spec/features","file":"spec/features/user_threads_spec.rb","name":"user_threads_spec.rb","language":"ruby","loc":77,"sloc":52,"scc_id":"spec/features/user_threads_spec.rb","scc_size":1,"scc_id_runtime":"spec/features/user_threads_spec.rb","scc_size_runtime":1},{"id":"spec/helpers/application_helper_spec.rb","directory":"spec/helpers","file":"spec/helpers/application_helper_spec.rb","name":"application_helper_spec.rb","language":"ruby","loc":177,"sloc":146,"scc_id":"spec/helpers/application_helper_spec.rb","scc_size":1,"scc_id_runtime":"spec/helpers/application_helper_spec.rb","scc_size_runtime":1},{"id":"spec/helpers/interval_helper_spec.rb","directory":"spec/helpers","file":"spec/helpers/interval_helper_spec.rb","name":"interval_helper_spec.rb","language":"ruby","loc":24,"sloc":18,"scc_id":"spec/helpers/interval_helper_spec.rb","scc_size":1,"scc_id_runtime":"spec/helpers/interval_helper_spec.rb","scc_size_runtime":1},{"id":"spec/helpers/users_helper_spec.rb","directory":"spec/helpers","file":"spec/helpers/users_helper_spec.rb","name":"users_helper_spec.rb","language":"ruby","loc":87,"sloc":70,"scc_id":"spec/helpers/users_helper_spec.rb","scc_size":1,"scc_id_runtime":"spec/helpers/users_helper_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/cache_page_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/cache_page_job_spec.rb","name":"cache_page_job_spec.rb","language":"ruby","loc":85,"sloc":63,"scc_id":"spec/jobs/cache_page_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/cache_page_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/create_story_card_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/create_story_card_job_spec.rb","name":"create_story_card_job_spec.rb","language":"ruby","loc":18,"sloc":15,"scc_id":"spec/jobs/create_story_card_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/create_story_card_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/notify_comment_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/notify_comment_job_spec.rb","name":"notify_comment_job_spec.rb","language":"ruby","loc":124,"sloc":91,"scc_id":"spec/jobs/notify_comment_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/notify_comment_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/notify_message_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/notify_message_job_spec.rb","name":"notify_message_job_spec.rb","language":"ruby","loc":17,"sloc":16,"scc_id":"spec/jobs/notify_message_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/notify_message_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/notify_mod_mail_message_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/notify_mod_mail_message_job_spec.rb","name":"notify_mod_mail_message_job_spec.rb","language":"ruby","loc":19,"sloc":17,"scc_id":"spec/jobs/notify_mod_mail_message_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/notify_mod_mail_message_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/prefill_page_cache_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/prefill_page_cache_job_spec.rb","name":"prefill_page_cache_job_spec.rb","language":"ruby","loc":19,"sloc":13,"scc_id":"spec/jobs/prefill_page_cache_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/prefill_page_cache_job_spec.rb","scc_size_runtime":1},{"id":"spec/jobs/refill_story_page_cache_job_spec.rb","directory":"spec/jobs","file":"spec/jobs/refill_story_page_cache_job_spec.rb","name":"refill_story_page_cache_job_spec.rb","language":"ruby","loc":18,"sloc":13,"scc_id":"spec/jobs/refill_story_page_cache_job_spec.rb","scc_size":1,"scc_id_runtime":"spec/jobs/refill_story_page_cache_job_spec.rb","scc_size_runtime":1},{"id":"spec/mailboxes/inbox_mailbox_spec.rb","directory":"spec/mailboxes","file":"spec/mailboxes/inbox_mailbox_spec.rb","name":"inbox_mailbox_spec.rb","language":"ruby","loc":126,"sloc":97,"scc_id":"spec/mailboxes/inbox_mailbox_spec.rb","scc_size":1,"scc_id_runtime":"spec/mailboxes/inbox_mailbox_spec.rb","scc_size_runtime":1},{"id":"spec/mailers/ban_notification_mailer_spec.rb","directory":"spec/mailers","file":"spec/mailers/ban_notification_mailer_spec.rb","name":"ban_notification_mailer_spec.rb","language":"ruby","loc":13,"sloc":9,"scc_id":"spec/mailers/ban_notification_mailer_spec.rb","scc_size":1,"scc_id_runtime":"spec/mailers/ban_notification_mailer_spec.rb","scc_size_runtime":1},{"id":"spec/mailers/email_reply_mailer_spec.rb","directory":"spec/mailers","file":"spec/mailers/email_reply_mailer_spec.rb","name":"email_reply_mailer_spec.rb","language":"ruby","loc":76,"sloc":59,"scc_id":"spec/mailers/email_reply_mailer_spec.rb","scc_size":1,"scc_id_runtime":"spec/mailers/email_reply_mailer_spec.rb","scc_size_runtime":1},{"id":"spec/models/category_spec.rb","directory":"spec/models","file":"spec/models/category_spec.rb","name":"category_spec.rb","language":"ruby","loc":48,"sloc":39,"scc_id":"spec/models/category_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/category_spec.rb","scc_size_runtime":1},{"id":"spec/models/comment_redirect_cache_spec.rb","directory":"spec/models","file":"spec/models/comment_redirect_cache_spec.rb","name":"comment_redirect_cache_spec.rb","language":"ruby","loc":31,"sloc":23,"scc_id":"spec/models/comment_redirect_cache_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/comment_redirect_cache_spec.rb","scc_size_runtime":1},{"id":"spec/models/comment_spec.rb","directory":"spec/models","file":"spec/models/comment_spec.rb","name":"comment_spec.rb","language":"ruby","loc":270,"sloc":224,"scc_id":"spec/models/comment_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/comment_spec.rb","scc_size_runtime":1},{"id":"spec/models/comment_stat_spec.rb","directory":"spec/models","file":"spec/models/comment_stat_spec.rb","name":"comment_stat_spec.rb","language":"ruby","loc":14,"sloc":10,"scc_id":"spec/models/comment_stat_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/comment_stat_spec.rb","scc_size_runtime":1},{"id":"spec/models/domain_spec.rb","directory":"spec/models","file":"spec/models/domain_spec.rb","name":"domain_spec.rb","language":"ruby","loc":253,"sloc":200,"scc_id":"spec/models/domain_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/domain_spec.rb","scc_size_runtime":1},{"id":"spec/models/hat_request_spec.rb","directory":"spec/models","file":"spec/models/hat_request_spec.rb","name":"hat_request_spec.rb","language":"ruby","loc":20,"sloc":15,"scc_id":"spec/models/hat_request_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/hat_request_spec.rb","scc_size_runtime":1},{"id":"spec/models/hat_spec.rb","directory":"spec/models","file":"spec/models/hat_spec.rb","name":"hat_spec.rb","language":"ruby","loc":30,"sloc":23,"scc_id":"spec/models/hat_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/hat_spec.rb","scc_size_runtime":1},{"id":"spec/models/invitation_request_spec.rb","directory":"spec/models","file":"spec/models/invitation_request_spec.rb","name":"invitation_request_spec.rb","language":"ruby","loc":42,"sloc":34,"scc_id":"spec/models/invitation_request_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/invitation_request_spec.rb","scc_size_runtime":1},{"id":"spec/models/invitation_spec.rb","directory":"spec/models","file":"spec/models/invitation_spec.rb","name":"invitation_spec.rb","language":"ruby","loc":29,"sloc":23,"scc_id":"spec/models/invitation_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/invitation_spec.rb","scc_size_runtime":1},{"id":"spec/models/keystore_spec.rb","directory":"spec/models","file":"spec/models/keystore_spec.rb","name":"keystore_spec.rb","language":"ruby","loc":31,"sloc":24,"scc_id":"spec/models/keystore_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/keystore_spec.rb","scc_size_runtime":1},{"id":"spec/models/link_spec.rb","directory":"spec/models","file":"spec/models/link_spec.rb","name":"link_spec.rb","language":"ruby","loc":118,"sloc":99,"scc_id":"spec/models/link_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/link_spec.rb","scc_size_runtime":1},{"id":"spec/models/mastodon_app_spec.rb","directory":"spec/models","file":"spec/models/mastodon_app_spec.rb","name":"mastodon_app_spec.rb","language":"ruby","loc":22,"sloc":17,"scc_id":"spec/models/mastodon_app_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/mastodon_app_spec.rb","scc_size_runtime":1},{"id":"spec/models/message_spec.rb","directory":"spec/models","file":"spec/models/message_spec.rb","name":"message_spec.rb","language":"ruby","loc":32,"sloc":26,"scc_id":"spec/models/message_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/message_spec.rb","scc_size_runtime":1},{"id":"spec/models/mod_mail_spec.rb","directory":"spec/models","file":"spec/models/mod_mail_spec.rb","name":"mod_mail_spec.rb","language":"ruby","loc":19,"sloc":16,"scc_id":"spec/models/mod_mail_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/mod_mail_spec.rb","scc_size_runtime":1},{"id":"spec/models/mod_note_spec.rb","directory":"spec/models","file":"spec/models/mod_note_spec.rb","name":"mod_note_spec.rb","language":"ruby","loc":48,"sloc":41,"scc_id":"spec/models/mod_note_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/mod_note_spec.rb","scc_size_runtime":1},{"id":"spec/models/moderation_spec.rb","directory":"spec/models","file":"spec/models/moderation_spec.rb","name":"moderation_spec.rb","language":"ruby","loc":52,"sloc":44,"scc_id":"spec/models/moderation_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/moderation_spec.rb","scc_size_runtime":1},{"id":"spec/models/notification_spec.rb","directory":"spec/models","file":"spec/models/notification_spec.rb","name":"notification_spec.rb","language":"ruby","loc":199,"sloc":179,"scc_id":"spec/models/notification_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/notification_spec.rb","scc_size_runtime":1},{"id":"spec/models/search_parser_spec.rb","directory":"spec/models","file":"spec/models/search_parser_spec.rb","name":"search_parser_spec.rb","language":"ruby","loc":216,"sloc":168,"scc_id":"spec/models/search_parser_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/search_parser_spec.rb","scc_size_runtime":1},{"id":"spec/models/search_spec.rb","directory":"spec/models","file":"spec/models/search_spec.rb","name":"search_spec.rb","language":"ruby","loc":368,"sloc":280,"scc_id":"spec/models/search_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/search_spec.rb","scc_size_runtime":1},{"id":"spec/models/story_image_spec.rb","directory":"spec/models","file":"spec/models/story_image_spec.rb","name":"story_image_spec.rb","language":"ruby","loc":30,"sloc":24,"scc_id":"spec/models/story_image_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/story_image_spec.rb","scc_size_runtime":1},{"id":"spec/models/story_text_spec.rb","directory":"spec/models","file":"spec/models/story_text_spec.rb","name":"story_text_spec.rb","language":"ruby","loc":11,"sloc":8,"scc_id":"spec/models/story_text_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/story_text_spec.rb","scc_size_runtime":1},{"id":"spec/models/tag_spec.rb","directory":"spec/models","file":"spec/models/tag_spec.rb","name":"tag_spec.rb","language":"ruby","loc":67,"sloc":54,"scc_id":"spec/models/tag_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/tag_spec.rb","scc_size_runtime":1},{"id":"spec/models/username_spec.rb","directory":"spec/models","file":"spec/models/username_spec.rb","name":"username_spec.rb","language":"ruby","loc":19,"sloc":15,"scc_id":"spec/models/username_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/username_spec.rb","scc_size_runtime":1},{"id":"spec/models/vote_spec.rb","directory":"spec/models","file":"spec/models/vote_spec.rb","name":"vote_spec.rb","language":"ruby","loc":181,"sloc":142,"scc_id":"spec/models/vote_spec.rb","scc_size":1,"scc_id_runtime":"spec/models/vote_spec.rb","scc_size_runtime":1},{"id":"spec/requests/authenticatable_spec.rb","directory":"spec/requests","file":"spec/requests/authenticatable_spec.rb","name":"authenticatable_spec.rb","language":"ruby","loc":31,"sloc":23,"scc_id":"spec/requests/authenticatable_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/authenticatable_spec.rb","scc_size_runtime":1},{"id":"spec/requests/banned_ips_spec.rb","directory":"spec/requests","file":"spec/requests/banned_ips_spec.rb","name":"banned_ips_spec.rb","language":"ruby","loc":10,"sloc":9,"scc_id":"spec/requests/banned_ips_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/banned_ips_spec.rb","scc_size_runtime":1},{"id":"spec/requests/cabinet_spec.rb","directory":"spec/requests","file":"spec/requests/cabinet_spec.rb","name":"cabinet_spec.rb","language":"ruby","loc":8,"sloc":7,"scc_id":"spec/requests/cabinet_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/cabinet_spec.rb","scc_size_runtime":1},{"id":"spec/requests/comments_spec.rb","directory":"spec/requests","file":"spec/requests/comments_spec.rb","name":"comments_spec.rb","language":"ruby","loc":159,"sloc":130,"scc_id":"spec/requests/comments_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/comments_spec.rb","scc_size_runtime":1},{"id":"spec/requests/hat_requests_spec.rb","directory":"spec/requests","file":"spec/requests/hat_requests_spec.rb","name":"hat_requests_spec.rb","language":"ruby","loc":14,"sloc":10,"scc_id":"spec/requests/hat_requests_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/hat_requests_spec.rb","scc_size_runtime":1},{"id":"spec/requests/home_spec.rb","directory":"spec/requests","file":"spec/requests/home_spec.rb","name":"home_spec.rb","language":"ruby","loc":93,"sloc":72,"scc_id":"spec/requests/home_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/home_spec.rb","scc_size_runtime":1},{"id":"spec/requests/merge_stories_spec.rb","directory":"spec/requests","file":"spec/requests/merge_stories_spec.rb","name":"merge_stories_spec.rb","language":"ruby","loc":36,"sloc":26,"scc_id":"spec/requests/merge_stories_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/merge_stories_spec.rb","scc_size_runtime":1},{"id":"spec/requests/messages_spec.rb","directory":"spec/requests","file":"spec/requests/messages_spec.rb","name":"messages_spec.rb","language":"ruby","loc":43,"sloc":36,"scc_id":"spec/requests/messages_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/messages_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod/activities_spec.rb","directory":"spec/requests/mod","file":"spec/requests/mod/activities_spec.rb","name":"activities_spec.rb","language":"ruby","loc":25,"sloc":19,"scc_id":"spec/requests/mod/activities_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod/activities_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod/mail_messages_spec.rb","directory":"spec/requests/mod","file":"spec/requests/mod/mail_messages_spec.rb","name":"mail_messages_spec.rb","language":"ruby","loc":31,"sloc":27,"scc_id":"spec/requests/mod/mail_messages_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod/mail_messages_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod/mails_spec.rb","directory":"spec/requests/mod","file":"spec/requests/mod/mails_spec.rb","name":"mails_spec.rb","language":"ruby","loc":79,"sloc":67,"scc_id":"spec/requests/mod/mails_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod/mails_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod/reparents_spec.rb","directory":"spec/requests/mod","file":"spec/requests/mod/reparents_spec.rb","name":"reparents_spec.rb","language":"ruby","loc":27,"sloc":23,"scc_id":"spec/requests/mod/reparents_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod/reparents_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod/stories_spec.rb","directory":"spec/requests/mod","file":"spec/requests/mod/stories_spec.rb","name":"stories_spec.rb","language":"ruby","loc":64,"sloc":50,"scc_id":"spec/requests/mod/stories_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod/stories_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod_mail_messages_spec.rb","directory":"spec/requests","file":"spec/requests/mod_mail_messages_spec.rb","name":"mod_mail_messages_spec.rb","language":"ruby","loc":65,"sloc":55,"scc_id":"spec/requests/mod_mail_messages_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod_mail_messages_spec.rb","scc_size_runtime":1},{"id":"spec/requests/mod_mails_spec.rb","directory":"spec/requests","file":"spec/requests/mod_mails_spec.rb","name":"mod_mails_spec.rb","language":"ruby","loc":33,"sloc":26,"scc_id":"spec/requests/mod_mails_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/mod_mails_spec.rb","scc_size_runtime":1},{"id":"spec/requests/moderations_spec.rb","directory":"spec/requests","file":"spec/requests/moderations_spec.rb","name":"moderations_spec.rb","language":"ruby","loc":136,"sloc":104,"scc_id":"spec/requests/moderations_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/moderations_spec.rb","scc_size_runtime":1},{"id":"spec/requests/reject_spoofed_ips_spec.rb","directory":"spec/requests","file":"spec/requests/reject_spoofed_ips_spec.rb","name":"reject_spoofed_ips_spec.rb","language":"ruby","loc":16,"sloc":12,"scc_id":"spec/requests/reject_spoofed_ips_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/reject_spoofed_ips_spec.rb","scc_size_runtime":1},{"id":"spec/requests/search_spec.rb","directory":"spec/requests","file":"spec/requests/search_spec.rb","name":"search_spec.rb","language":"ruby","loc":89,"sloc":64,"scc_id":"spec/requests/search_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/search_spec.rb","scc_size_runtime":1},{"id":"spec/requests/settings_spec.rb","directory":"spec/requests","file":"spec/requests/settings_spec.rb","name":"settings_spec.rb","language":"ruby","loc":50,"sloc":42,"scc_id":"spec/requests/settings_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/settings_spec.rb","scc_size_runtime":1},{"id":"spec/requests/signup_spec.rb","directory":"spec/requests","file":"spec/requests/signup_spec.rb","name":"signup_spec.rb","language":"ruby","loc":28,"sloc":21,"scc_id":"spec/requests/signup_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/signup_spec.rb","scc_size_runtime":1},{"id":"spec/requests/stories_check_url_dupe_xss_spec.rb","directory":"spec/requests","file":"spec/requests/stories_check_url_dupe_xss_spec.rb","name":"stories_check_url_dupe_xss_spec.rb","language":"ruby","loc":25,"sloc":16,"scc_id":"spec/requests/stories_check_url_dupe_xss_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/stories_check_url_dupe_xss_spec.rb","scc_size_runtime":1},{"id":"spec/requests/stories_spec.rb","directory":"spec/requests","file":"spec/requests/stories_spec.rb","name":"stories_spec.rb","language":"ruby","loc":452,"sloc":341,"scc_id":"spec/requests/stories_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/stories_spec.rb","scc_size_runtime":1},{"id":"spec/requests/story_urls_spec.rb","directory":"spec/requests","file":"spec/requests/story_urls_spec.rb","name":"story_urls_spec.rb","language":"ruby","loc":56,"sloc":45,"scc_id":"spec/requests/story_urls_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/story_urls_spec.rb","scc_size_runtime":1},{"id":"spec/requests/tags_spec.rb","directory":"spec/requests","file":"spec/requests/tags_spec.rb","name":"tags_spec.rb","language":"ruby","loc":76,"sloc":65,"scc_id":"spec/requests/tags_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/tags_spec.rb","scc_size_runtime":1},{"id":"spec/requests/users_controller_spec.rb","directory":"spec/requests","file":"spec/requests/users_controller_spec.rb","name":"users_controller_spec.rb","language":"ruby","loc":155,"sloc":116,"scc_id":"spec/requests/users_controller_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/users_controller_spec.rb","scc_size_runtime":1},{"id":"spec/requests/x_request_token_spec.rb","directory":"spec/requests","file":"spec/requests/x_request_token_spec.rb","name":"x_request_token_spec.rb","language":"ruby","loc":11,"sloc":8,"scc_id":"spec/requests/x_request_token_spec.rb","scc_size":1,"scc_id_runtime":"spec/requests/x_request_token_spec.rb","scc_size_runtime":1},{"id":"spec/routing/controller_public_methods_spec.rb","directory":"spec/routing","file":"spec/routing/controller_public_methods_spec.rb","name":"controller_public_methods_spec.rb","language":"ruby","loc":43,"sloc":28,"scc_id":"spec/routing/controller_public_methods_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/controller_public_methods_spec.rb","scc_size_runtime":1},{"id":"spec/routing/home_spec.rb","directory":"spec/routing","file":"spec/routing/home_spec.rb","name":"home_spec.rb","language":"ruby","loc":59,"sloc":46,"scc_id":"spec/routing/home_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/home_spec.rb","scc_size_runtime":1},{"id":"spec/routing/mod_domains_spec.rb","directory":"spec/routing","file":"spec/routing/mod_domains_spec.rb","name":"mod_domains_spec.rb","language":"ruby","loc":46,"sloc":39,"scc_id":"spec/routing/mod_domains_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/mod_domains_spec.rb","scc_size_runtime":1},{"id":"spec/routing/mod_origins_spec.rb","directory":"spec/routing","file":"spec/routing/mod_origins_spec.rb","name":"mod_origins_spec.rb","language":"ruby","loc":31,"sloc":26,"scc_id":"spec/routing/mod_origins_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/mod_origins_spec.rb","scc_size_runtime":1},{"id":"spec/routing/origin_spec.rb","directory":"spec/routing","file":"spec/routing/origin_spec.rb","name":"origin_spec.rb","language":"ruby","loc":14,"sloc":10,"scc_id":"spec/routing/origin_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/origin_spec.rb","scc_size_runtime":1},{"id":"spec/routing/tag_spec.rb","directory":"spec/routing","file":"spec/routing/tag_spec.rb","name":"tag_spec.rb","language":"ruby","loc":50,"sloc":40,"scc_id":"spec/routing/tag_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/tag_spec.rb","scc_size_runtime":1},{"id":"spec/routing/user_spec.rb","directory":"spec/routing","file":"spec/routing/user_spec.rb","name":"user_spec.rb","language":"ruby","loc":57,"sloc":46,"scc_id":"spec/routing/user_spec.rb","scc_size":1,"scc_id_runtime":"spec/routing/user_spec.rb","scc_size_runtime":1},{"id":"spec/scripts/mail_new_activity_spec.rb","directory":"spec/scripts","file":"spec/scripts/mail_new_activity_spec.rb","name":"mail_new_activity_spec.rb","language":"ruby","loc":49,"sloc":26,"scc_id":"spec/scripts/mail_new_activity_spec.rb","scc_size":1,"scc_id_runtime":"spec/scripts/mail_new_activity_spec.rb","scc_size_runtime":1},{"id":"spec/sqlite3_cli_spec.rb","directory":"spec","file":"spec/sqlite3_cli_spec.rb","name":"sqlite3_cli_spec.rb","language":"ruby","loc":26,"sloc":19,"scc_id":"spec/sqlite3_cli_spec.rb","scc_size":1,"scc_id_runtime":"spec/sqlite3_cli_spec.rb","scc_size_runtime":1}]},"edges":[{"src":"app/controllers/application_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"app/controllers/avatars_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"app/controllers/comments_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by!","traversal_direction":"incoming","depth":1},{"src":"app/controllers/concerns/authenticatable.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"app/controllers/home_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by!","traversal_direction":"incoming","depth":1},{"src":"app/controllers/login_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"app/controllers/mod/mails_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"app/controllers/mod/reparents_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.transaction","traversal_direction":"incoming","depth":1},{"src":"app/controllers/mod/stories_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.update_counters","traversal_direction":"incoming","depth":1},{"src":"app/controllers/moderations_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.moderators","traversal_direction":"incoming","depth":1},{"src":"app/controllers/signup_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.new","traversal_direction":"incoming","depth":1},{"src":"app/controllers/users_controller.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"app/jobs/mastodon_sync_list_job.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.active","traversal_direction":"incoming","depth":1},{"src":"app/jobs/notify_comment_job.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.active","traversal_direction":"incoming","depth":1},{"src":"app/mailboxes/inbox_mailbox.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"app/models/comment.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.update_counters","traversal_direction":"incoming","depth":1},{"src":"app/models/flagged_commenters.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.active","traversal_direction":"incoming","depth":1},{"src":"app/models/inactive_user.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by!","traversal_direction":"incoming","depth":1},{"src":"app/models/message.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"app/models/mod_mail.rb","dst":"app/models/user.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":1},{"src":"app/models/mod_note.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"app/models/stats.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.pluck","traversal_direction":"incoming","depth":1},{"src":"app/models/vote.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.update_counters","traversal_direction":"incoming","depth":1},{"src":"config/initializers/console_methods.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by!","traversal_direction":"incoming","depth":1},{"src":"db/migrate/20260216202600_clean_up_null_bytes.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"db/migrate/20260219183300_create_system_user.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20140101202252_add_karma_to_users.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.select","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20170119172852_move_user_settings.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_each","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20220806200248_set_is_tracker_as_banned_to_domains.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20240208024935_remove_twitter.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20250206172739_fix_prefers_contrast.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_each","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20250605141223_remove_keybase.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"db/old_migrations/20251013204007_create_usernames.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.order","traversal_direction":"incoming","depth":1},{"src":"db/seeds.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.create!","traversal_direction":"incoming","depth":1},{"src":"lib/tasks/bulk_create_test_data.rake","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.create!","traversal_direction":"incoming","depth":1},{"src":"lib/tasks/fake_data.rake","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.count","traversal_direction":"incoming","depth":1},{"src":"lib/tasks/update_banned_url_shorteners.rake","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"script/mail_new_activity.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.where","traversal_direction":"incoming","depth":1},{"src":"spec/models/story_spec.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"spec/models/user_spec.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"spec/rails_helper.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.create!","traversal_direction":"incoming","depth":1},{"src":"spec/requests/login_spec.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find","traversal_direction":"incoming","depth":1},{"src":"spec/tasks/fake_data_spec.rb","dst":"app/models/user.rb","reason":"ruby_constant_receiver_exact:User.find_by","traversal_direction":"incoming","depth":1},{"src":"app/controllers/settings_controller.rb","dst":"app/models/user.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":1},{"src":"app/controllers/signup_controller.rb","dst":"app/models/user.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":1},{"src":"app/models/comment.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/hat.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/hat_request.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/hidden_story.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/invitation.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/mod_mail_message.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/mod_mail_recipient.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/mod_note.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/moderation.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/notification.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/read_ribbon.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/saved_story.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/story.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/suggested_tagging.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/suggested_title.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/tag_filter.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/username.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/models/vote.rb","dst":"app/models/user.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":1},{"src":"app/jobs/cache_page_job.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_constant_receiver_exact:ApplicationController.cache_page","traversal_direction":"incoming","depth":2},{"src":"app/controllers/about_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/avatars_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/banned_ips_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/cabinet_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/categories_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/filters_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hat_requests_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hats_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/home_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/inbox_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/invitations_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/login_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/messages_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mod_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod_mail_messages_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod_mails_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/moderations_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/origins_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/search_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/settings_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/signup_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stats_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/story_image_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/story_urls_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/suggestions_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/tags_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/users_controller.rb","dst":"app/controllers/application_controller.rb","reason":"ruby_superclass_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/application_controller.rb","dst":"app/controllers/concerns/authenticatable.rb","reason":"ruby_include_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/jobs_mod_controller.rb","dst":"app/controllers/concerns/authenticatable.rb","reason":"ruby_include_exact","traversal_direction":"incoming","depth":2},{"src":"spec/requests/home_spec.rb","dst":"app/controllers/home_controller.rb","reason":"ruby_constant_receiver_exact:HomeController.caches_page","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/jobs/notify_comment_job.rb","reason":"ruby_constant_receiver_exact:NotifyCommentJob.perform_later","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/notify_comment_job_spec.rb","dst":"app/jobs/notify_comment_job.rb","reason":"ruby_constant_receiver_exact:NotifyCommentJob.perform_now","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.find_by","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/comments_controller.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.find_by","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/flagged_controller.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.eager_load","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mails_controller.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"app/mailboxes/inbox_mailbox.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"app/models/comment_stat.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.connection","traversal_direction":"incoming","depth":2},{"src":"app/models/link.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/search.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.accessible_to_user","traversal_direction":"incoming","depth":2},{"src":"app/models/stats.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.pluck","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.none","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.joins","traversal_direction":"incoming","depth":2},{"src":"app/models/vote.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.find","traversal_direction":"incoming","depth":2},{"src":"db/migrate/20260216202600_clean_up_null_bytes.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20120703184957_integrated_story_hotness.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240717155412_hydrate_links.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240909220644_recalculate_comment_confidences.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20241104215430_add_comment_stats.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.connection","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250206170347_materialize_comments_depth_reply_count.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.update_all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250208222418_add_edit_timestamps.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.update_all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.update_all","traversal_direction":"incoming","depth":2},{"src":"extras/markdowner.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.all","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/backfill_notifications.rake","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.includes","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/bulk_create_test_data.rake","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.create!","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/fake_data.rake","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.count","traversal_direction":"incoming","depth":2},{"src":"script/mail_new_activity.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.last","traversal_direction":"incoming","depth":2},{"src":"spec/extras/routes_spec.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.new","traversal_direction":"incoming","depth":2},{"src":"spec/mailboxes/inbox_mailbox_spec.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.where","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_spec.rb","dst":"app/models/comment.rb","reason":"ruby_constant_receiver_exact:Comment.new","traversal_direction":"incoming","depth":2},{"src":"app/models/moderation.rb","dst":"app/models/comment.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/comment.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/comment.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/vote.rb","dst":"app/models/comment.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/flagged_controller.rb","dst":"app/models/flagged_commenters.rb","reason":"ruby_constant_receiver_exact:FlaggedCommenters.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/users_controller.rb","dst":"app/models/flagged_commenters.rb","reason":"ruby_constant_receiver_exact:FlaggedCommenters.new","traversal_direction":"incoming","depth":2},{"src":"app/helpers/application_helper.rb","dst":"app/models/flagged_commenters.rb","reason":"ruby_constant_receiver_exact:FlaggedCommenters.new","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/flagged_commenters.rb","reason":"ruby_constant_receiver_exact:FlaggedCommenters.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/models/inactive_user.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/settings_controller.rb","dst":"app/models/inactive_user.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/inactive_user.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_note.rb","dst":"app/models/inactive_user.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/rails_helper.rb","dst":"app/models/inactive_user.rb","reason":"ruby_constant_receiver_exact:InactiveUser.instance_variable_set","traversal_direction":"incoming","depth":2},{"src":"app/controllers/messages_controller.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.where","traversal_direction":"incoming","depth":2},{"src":"app/models/hat_request.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.new","traversal_direction":"incoming","depth":2},{"src":"app/models/moderation.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.new","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.new","traversal_direction":"incoming","depth":2},{"src":"db/migrate/20251214043426_messages_short_id_non_nullable_and_default_value.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.where","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/backfill_notifications.rake","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.includes","traversal_direction":"incoming","depth":2},{"src":"spec/features/hat_request_spec.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.last","traversal_direction":"incoming","depth":2},{"src":"spec/requests/messages_spec.rb","dst":"app/models/message.rb","reason":"ruby_constant_receiver_exact:Message.count","traversal_direction":"incoming","depth":2},{"src":"app/controllers/messages_controller.rb","dst":"app/models/message.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mails_controller.rb","dst":"app/models/mod_mail.rb","reason":"ruby_constant_receiver_exact:ModMail.all","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/mod_mail.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/features/submit_story_spec.rb","dst":"app/models/mod_mail.rb","reason":"ruby_constant_receiver_exact:ModMail.last","traversal_direction":"incoming","depth":2},{"src":"spec/models/mod_mail_spec.rb","dst":"app/models/mod_mail.rb","reason":"ruby_constant_receiver_exact:ModMail.create","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/mails_spec.rb","dst":"app/models/mod_mail.rb","reason":"ruby_constant_receiver_exact:ModMail.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail_message.rb","dst":"app/models/mod_mail.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail_recipient.rb","dst":"app/models/mod_mail.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail_reference.rb","dst":"app/models/mod_mail.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/mod_mail.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/login_controller.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/messages_controller.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/notes_controller.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/reparents_controller.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/signup_controller.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/users_controller.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.new","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/mod_note.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20220128133226_fix_story_mod_notes.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240907171330_fix_links_in_invite_notes.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250807160046_create_mod_activities.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.find_each","traversal_direction":"incoming","depth":2},{"src":"extras/markdowner.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.all","traversal_direction":"incoming","depth":2},{"src":"spec/features/submit_story_spec.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.last","traversal_direction":"incoming","depth":2},{"src":"spec/models/mod_note_spec.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.new","traversal_direction":"incoming","depth":2},{"src":"spec/requests/login_spec.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.count","traversal_direction":"incoming","depth":2},{"src":"spec/requests/signup_spec.rb","dst":"app/models/mod_note.rb","reason":"ruby_constant_receiver_exact:ModNote.count","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/notes_controller.rb","dst":"app/models/mod_note.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/mod_note.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"app/controllers/concerns/story_finder.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.find_by","traversal_direction":"incoming","depth":2},{"src":"app/controllers/search_controller.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.comments_flags","traversal_direction":"incoming","depth":2},{"src":"app/models/comment_vote_hydrator.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/hidden_story.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"app/models/stats.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.pluck","traversal_direction":"incoming","depth":2},{"src":"app/models/stories_paginator.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240315143804_coalesce_vote_reason.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/bulk_create_test_data.rake","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/fake_data.rake","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/notification_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/vote_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/requests/comments_spec.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"spec/requests/search_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/requests/stories_spec.rb","dst":"app/models/vote.rb","reason":"ruby_constant_receiver_exact:Vote.where","traversal_direction":"incoming","depth":2},{"src":"spec/requests/users_controller_spec.rb","dst":"app/models/vote.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/vote.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/vote.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/vote.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"spec/tasks/fake_data_spec.rb","dst":"lib/tasks/fake_data.rake","reason":"ruby_constant_receiver_exact:FakeDataGenerator.new","traversal_direction":"incoming","depth":2},{"src":"spec/scripts/mail_new_activity_spec.rb","dst":"script/mail_new_activity.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/comments_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/home_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/inbox_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/messages_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/settings_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/story_image_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/css_widely_available_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/bitpacking_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/github_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/html_encoder_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/markdowner_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/normalize_url_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/page_caching_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/routes_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/sponge_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/extras/utils_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/comment_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/doff_hat_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/edit_hat_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/filter_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/hat_request_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/hats_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/homepage_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/mod_domains_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/mod_origins_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/newest_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/preferred_color_scheme_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/read_story_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/settings_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/story_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/submit_story_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/user_administration_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/features/user_threads_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/helpers/application_helper_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/helpers/interval_helper_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/helpers/users_helper_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/cache_page_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/create_story_card_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/notify_comment_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/notify_message_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/notify_mod_mail_message_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/prefill_page_cache_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/refill_story_page_cache_job_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/mailboxes/inbox_mailbox_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/mailers/ban_notification_mailer_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/mailers/email_reply_mailer_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/category_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_redirect_cache_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_stat_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/domain_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/hat_request_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/hat_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/invitation_request_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/invitation_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/keystore_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/link_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/mastodon_app_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/message_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/mod_mail_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/mod_note_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/moderation_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/notification_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/search_parser_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/search_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_image_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_text_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/tag_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/user_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/username_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/models/vote_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/authenticatable_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/banned_ips_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/cabinet_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/comments_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/hat_requests_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/home_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/login_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/merge_stories_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/messages_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/activities_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/mail_messages_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/mails_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/reparents_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/stories_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod_mail_messages_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod_mails_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/moderations_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/reject_spoofed_ips_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/search_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/settings_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/signup_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/stories_check_url_dupe_xss_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/stories_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/story_urls_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/tags_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/users_controller_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/requests/x_request_token_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/controller_public_methods_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/home_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/mod_domains_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/mod_origins_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/origin_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/tag_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/routing/user_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/sqlite3_cli_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"spec/tasks/fake_data_spec.rb","dst":"spec/rails_helper.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hats_controller.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/hat_request.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.new","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.where","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.new","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20180131203555_fix_doffed_at.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240822174547_add_short_id_hats.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.find_each","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/fake_data.rake","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.create!","traversal_direction":"incoming","depth":2},{"src":"spec/features/edit_hat_spec.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.last","traversal_direction":"incoming","depth":2},{"src":"spec/features/hat_request_spec.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.last","traversal_direction":"incoming","depth":2},{"src":"spec/models/hat_spec.rb","dst":"app/models/hat.rb","reason":"ruby_constant_receiver_exact:Hat.new","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/hat.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/message.rb","dst":"app/models/hat.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/hat.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hat_requests_controller.rb","dst":"app/models/hat_request.rb","reason":"ruby_constant_receiver_exact:HatRequest.find","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hat_requests_controller.rb","dst":"app/models/hat_request.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/hat_request.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/hidden_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/jobs/notify_comment_job.rb","dst":"app/models/hidden_story.rb","reason":"ruby_constant_receiver_exact:HiddenStory.where","traversal_direction":"incoming","depth":2},{"src":"app/models/stories_paginator.rb","dst":"app/models/hidden_story.rb","reason":"ruby_constant_receiver_exact:HiddenStory.where","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/hidden_story.rb","reason":"ruby_constant_receiver_exact:HiddenStory.exists?","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20150211170052_move_hidden_votes_to_hidden_story.rb","dst":"app/models/hidden_story.rb","reason":"ruby_constant_receiver_exact:HiddenStory.new","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/home_controller_spec.rb","dst":"app/models/hidden_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/jobs/notify_comment_job_spec.rb","dst":"app/models/hidden_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"app/models/hidden_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/controllers/invitations_controller.rb","dst":"app/models/invitation.rb","reason":"ruby_constant_receiver_exact:Invitation.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/signup_controller.rb","dst":"app/models/invitation.rb","reason":"ruby_constant_receiver_exact:Invitation.unused","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_note.rb","dst":"app/models/invitation.rb","reason":"ruby_constant_receiver_exact:Invitation.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/invitation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mail_messages_controller.rb","dst":"app/models/mod_mail_message.rb","reason":"ruby_constant_receiver_exact:ModMailMessage.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mails_controller.rb","dst":"app/models/mod_mail_message.rb","reason":"ruby_constant_receiver_exact:ModMailMessage.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod_mails_controller.rb","dst":"app/models/mod_mail_message.rb","reason":"ruby_constant_receiver_exact:ModMailMessage.new","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail.rb","dst":"app/models/mod_mail_message.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/mod_mail_message.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail.rb","dst":"app/models/mod_mail_recipient.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/mod_mail_recipient.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/hats_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/login_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/reparents_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"app/controllers/moderations_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.all","traversal_direction":"incoming","depth":2},{"src":"app/controllers/settings_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.where","traversal_direction":"incoming","depth":2},{"src":"app/helpers/stories_helper.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.joins","traversal_direction":"incoming","depth":2},{"src":"app/models/category.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/domain.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/hat.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/origin.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"app/models/username.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"db/migrate/20260216202600_clean_up_null_bytes.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250521131204_temporal_tokens.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250807160046_create_mod_activities.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.find_each","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20251013204007_create_usernames.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.where","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/settings_controller_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/features/doff_hat_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/features/edit_hat_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/features/read_story_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"spec/features/settings_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/features/user_administration_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.order","traversal_direction":"incoming","depth":2},{"src":"spec/models/category_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.count","traversal_direction":"incoming","depth":2},{"src":"spec/models/comment_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.count","traversal_direction":"incoming","depth":2},{"src":"spec/models/domain_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.find_by!","traversal_direction":"incoming","depth":2},{"src":"spec/models/moderation_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.new","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/models/tag_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.count","traversal_direction":"incoming","depth":2},{"src":"spec/models/username_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/requests/mod/reparents_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/requests/moderations_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.create!","traversal_direction":"incoming","depth":2},{"src":"spec/requests/stories_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.last","traversal_direction":"incoming","depth":2},{"src":"spec/requests/tags_spec.rb","dst":"app/models/moderation.rb","reason":"ruby_constant_receiver_exact:Moderation.order","traversal_direction":"incoming","depth":2},{"src":"app/models/category.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/domain.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/origin.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/moderation.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/backfill_notifications.rake","dst":"app/models/notification.rb","reason":"ruby_constant_receiver_exact:Notification.transaction","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/notification.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/message.rb","dst":"app/models/notification.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/mod_mail_message.rb","dst":"app/models/notification.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/notification.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/read_ribbon.rb","reason":"ruby_constant_receiver_exact:ReadRibbon.where","traversal_direction":"incoming","depth":2},{"src":"app/models/hidden_story.rb","dst":"app/models/read_ribbon.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/read_ribbon.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/read_ribbon.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/saved_story.rb","reason":"ruby_constant_receiver_exact:SavedStory.where","traversal_direction":"incoming","depth":2},{"src":"app/models/stories_paginator.rb","dst":"app/models/saved_story.rb","reason":"ruby_constant_receiver_exact:SavedStory.where","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/saved_story.rb","reason":"ruby_constant_receiver_exact:SavedStory.exists?","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/fake_data.rake","dst":"app/models/saved_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/controllers/home_controller_spec.rb","dst":"app/models/saved_story.rb","reason":"ruby_constant_receiver_exact:SavedStory.create!","traversal_direction":"incoming","depth":2},{"src":"spec/features/read_story_spec.rb","dst":"app/models/saved_story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"app/models/saved_story.rb","reason":"ruby_constant_receiver_exact:SavedStory.create!","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/saved_story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/saved_story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/comments_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"app/controllers/concerns/story_finder.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.find_by","traversal_direction":"incoming","depth":2},{"src":"app/controllers/home_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.active","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/flagged_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.base","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/mails_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/story_image_controller.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"app/controllers/story_urls_controller.rb","dst":"app/models/story.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/jobs/prefill_page_cache_job.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.hottest","traversal_direction":"incoming","depth":2},{"src":"app/jobs/refill_story_page_cache_job.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.unmerged","traversal_direction":"incoming","depth":2},{"src":"app/mailboxes/inbox_mailbox.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"app/models/link.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.find_by","traversal_direction":"incoming","depth":2},{"src":"app/models/search.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.search","traversal_direction":"incoming","depth":2},{"src":"app/models/stats.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.pluck","traversal_direction":"incoming","depth":2},{"src":"app/models/vote.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.find","traversal_direction":"incoming","depth":2},{"src":"config/sitemap.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20120703184957_integrated_story_hotness.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20120705145520_move_markdown_into_sql.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20140109034338_move_comment_counts_to_story.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.select","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20191227234358_add_domain_to_stories.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.find_each","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20220331165136_message_author_nullable.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.connection","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20230828195756_normalize_url.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20230912160752_story_text_searching.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240717155412_hydrate_links.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20240926150737_add_origin.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.find_by","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250203223624_count_merged_stories.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.update_all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250208222418_add_edit_timestamps.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.update_all","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20250210214901_fix_last_x_at_timestamps.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.update_all","traversal_direction":"incoming","depth":2},{"src":"extras/markdowner.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.where","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/bulk_create_test_data.rake","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.create!","traversal_direction":"incoming","depth":2},{"src":"lib/tasks/fake_data.rake","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.count","traversal_direction":"incoming","depth":2},{"src":"script/mail_new_activity.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.last","traversal_direction":"incoming","depth":2},{"src":"script/mastodon_post.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.to_mastodon","traversal_direction":"incoming","depth":2},{"src":"spec/extras/routes_spec.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.new","traversal_direction":"incoming","depth":2},{"src":"spec/features/submit_story_spec.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.count","traversal_direction":"incoming","depth":2},{"src":"spec/models/story_spec.rb","dst":"app/models/story.rb","reason":"ruby_constant_receiver_exact:Story.new","traversal_direction":"incoming","depth":2},{"src":"app/controllers/mod/stories_controller.rb","dst":"app/models/story.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/controllers/stories_controller.rb","dst":"app/models/story.rb","reason":"ruby_require_internal:provider_index","traversal_direction":"incoming","depth":2},{"src":"app/models/category.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/comment.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/domain.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/hidden_story.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/moderation.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/origin.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/read_ribbon.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/saved_story.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story_text.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/suggested_tagging.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/suggested_title.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/tagging.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/vote.rb","dst":"app/models/story.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/suggested_tagging.rb","reason":"ruby_constant_receiver_exact:SuggestedTagging.create!","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/suggested_tagging.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/suggested_tagging.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/suggested_tagging.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/story.rb","dst":"app/models/suggested_title.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/suggested_title.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/filters_controller.rb","dst":"app/models/tag_filter.rb","reason":"ruby_constant_receiver_exact:TagFilter.group","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/tag_filter.rb","reason":"ruby_constant_receiver_exact:TagFilter.where","traversal_direction":"incoming","depth":2},{"src":"spec/models/notification_spec.rb","dst":"app/models/tag_filter.rb","reason":"ruby_constant_receiver_exact:TagFilter.create!","traversal_direction":"incoming","depth":2},{"src":"app/models/tag.rb","dst":"app/models/tag_filter.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/tag_filter.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2},{"src":"app/controllers/settings_controller.rb","dst":"app/models/username.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/username.rb","reason":"ruby_constant_receiver_exact:Username.where","traversal_direction":"incoming","depth":2},{"src":"db/old_migrations/20251013204007_create_usernames.rb","dst":"app/models/username.rb","reason":"ruby_constant_receiver_exact:Username.insert!","traversal_direction":"incoming","depth":2},{"src":"extras/markdowner.rb","dst":"app/models/username.rb","reason":"ruby_constant_receiver_exact:Username.where","traversal_direction":"incoming","depth":2},{"src":"spec/extras/markdowner_spec.rb","dst":"app/models/username.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/user_spec.rb","dst":"app/models/username.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/models/username_spec.rb","dst":"app/models/username.rb","reason":"constant_receiver_method_match","traversal_direction":"incoming","depth":2},{"src":"spec/requests/signup_spec.rb","dst":"app/models/username.rb","reason":"ruby_constant_receiver_exact:Username.last","traversal_direction":"incoming","depth":2},{"src":"app/models/user.rb","dst":"app/models/username.rb","reason":"rails_association_decl_exact","traversal_direction":"incoming","depth":2}],"aggregates":{"directories":{"app/models":36,"app/controllers":30,"db/old_migrations":30,"spec/models":26,"spec/requests":22,"spec/features":17,"spec/extras":9,"app/controllers/mod":8,"spec/jobs":7,"spec/routing":7,"spec/controllers":6,"app/jobs":5,"spec/requests/mod":5,"lib/tasks":4,"db/migrate":3,"spec":3,"spec/helpers":3,"app/controllers/concerns":2,"app/helpers":2,"script":2,"spec/mailers":2,"app/mailboxes":1,"config":1,"config/initializers":1,"db":1,"extras":1,"spec/mailboxes":1,"spec/scripts":1,"spec/tasks":1},"directories_total":29,"directories_truncated":false,"languages":{"ruby":237},"languages_total":1,"languages_truncated":false,"reasons":{"ruby_require_internal:provider_index":116,"rails_association_decl_exact":77,"constant_receiver_method_match":36,"ruby_superclass_exact":29,"ruby_constant_receiver_exact:User.where":10,"ruby_constant_receiver_exact:Story.where":9,"ruby_constant_receiver_exact:User.find_by":9,"ruby_constant_receiver_exact:Moderation.last":8,"ruby_constant_receiver_exact:Moderation.new":8,"ruby_constant_receiver_exact:Moderation.create!":7,"ruby_constant_receiver_exact:Comment.where":6,"ruby_constant_receiver_exact:Vote.where":6,"ruby_constant_receiver_exact:Comment.all":4,"ruby_constant_receiver_exact:FlaggedCommenters.new":4,"ruby_constant_receiver_exact:User.find_by!":4,"ruby_constant_receiver_exact:Comment.find_by":3,"ruby_constant_receiver_exact:Comment.update_all":3,"ruby_constant_receiver_exact:Hat.new":3,"ruby_constant_receiver_exact:Message.new":3,"ruby_constant_receiver_exact:ModMailMessage.new":3,"ruby_constant_receiver_exact:ModNote.new":3,"ruby_constant_receiver_exact:Moderation.count":3,"ruby_constant_receiver_exact:Moderation.where":3,"ruby_constant_receiver_exact:Story.all":3,"ruby_constant_receiver_exact:Story.find_by":3,"ruby_constant_receiver_exact:Story.new":3,"ruby_constant_receiver_exact:Story.update_all":3,"ruby_constant_receiver_exact:User.active":3,"ruby_constant_receiver_exact:User.create!":3,"ruby_constant_receiver_exact:User.update_counters":3,"ruby_constant_receiver_exact:Comment.connection":2,"ruby_constant_receiver_exact:Comment.new":2,"ruby_constant_receiver_exact:Hat.last":2,"ruby_constant_receiver_exact:Hat.where":2,"ruby_constant_receiver_exact:HiddenStory.where":2,"ruby_constant_receiver_exact:Message.where":2,"ruby_constant_receiver_exact:ModNote.count":2,"ruby_constant_receiver_exact:ModNote.where":2,"ruby_constant_receiver_exact:Moderation.create":2,"ruby_constant_receiver_exact:Moderation.order":2,"ruby_constant_receiver_exact:SavedStory.create!":2,"ruby_constant_receiver_exact:SavedStory.where":2,"ruby_constant_receiver_exact:Story.count":2,"ruby_constant_receiver_exact:User.find_each":2,"ruby_constant_receiver_exact:Username.where":2,"ruby_constant_receiver_exact:Vote.find_by":2,"ruby_include_exact":2,"ruby_constant_receiver_exact:ApplicationController.cache_page":1,"ruby_constant_receiver_exact:Comment.accessible_to_user":1,"ruby_constant_receiver_exact:Comment.count":1,"ruby_constant_receiver_exact:Comment.create!":1,"ruby_constant_receiver_exact:Comment.eager_load":1,"ruby_constant_receiver_exact:Comment.find":1,"ruby_constant_receiver_exact:Comment.includes":1,"ruby_constant_receiver_exact:Comment.joins":1,"ruby_constant_receiver_exact:Comment.last":1,"ruby_constant_receiver_exact:Comment.none":1,"ruby_constant_receiver_exact:Comment.pluck":1,"ruby_constant_receiver_exact:FakeDataGenerator.new":1,"ruby_constant_receiver_exact:Hat.create!":1,"ruby_constant_receiver_exact:Hat.find_by":1,"ruby_constant_receiver_exact:Hat.find_each":1,"ruby_constant_receiver_exact:HatRequest.find":1,"ruby_constant_receiver_exact:HiddenStory.exists?":1,"ruby_constant_receiver_exact:HiddenStory.new":1,"ruby_constant_receiver_exact:HomeController.caches_page":1,"ruby_constant_receiver_exact:InactiveUser.instance_variable_set":1,"ruby_constant_receiver_exact:Invitation.find_by":1,"ruby_constant_receiver_exact:Invitation.new":1,"ruby_constant_receiver_exact:Invitation.unused":1,"ruby_constant_receiver_exact:Message.count":1,"ruby_constant_receiver_exact:Message.includes":1,"ruby_constant_receiver_exact:Message.last":1,"ruby_constant_receiver_exact:ModMail.all":1,"ruby_constant_receiver_exact:ModMail.create":1,"ruby_constant_receiver_exact:ModMail.find_by":1,"ruby_constant_receiver_exact:ModMail.last":1,"ruby_constant_receiver_exact:ModNote.all":1,"ruby_constant_receiver_exact:ModNote.find_each":1,"ruby_constant_receiver_exact:ModNote.last":1,"ruby_constant_receiver_exact:Moderation.all":1,"ruby_constant_receiver_exact:Moderation.find_by!":1,"ruby_constant_receiver_exact:Moderation.find_each":1,"ruby_constant_receiver_exact:Moderation.joins":1,"ruby_constant_receiver_exact:Notification.transaction":1,"ruby_constant_receiver_exact:NotifyCommentJob.perform_later":1,"ruby_constant_receiver_exact:NotifyCommentJob.perform_now":1,"ruby_constant_receiver_exact:ReadRibbon.where":1,"ruby_constant_receiver_exact:SavedStory.exists?":1,"ruby_constant_receiver_exact:Story.active":1,"ruby_constant_receiver_exact:Story.base":1,"ruby_constant_receiver_exact:Story.connection":1,"ruby_constant_receiver_exact:Story.create!":1,"ruby_constant_receiver_exact:Story.find":1,"ruby_constant_receiver_exact:Story.find_each":1,"ruby_constant_receiver_exact:Story.hottest":1,"ruby_constant_receiver_exact:Story.last":1,"ruby_constant_receiver_exact:Story.pluck":1,"ruby_constant_receiver_exact:Story.search":1,"ruby_constant_receiver_exact:Story.select":1,"ruby_constant_receiver_exact:Story.to_mastodon":1,"ruby_constant_receiver_exact:Story.unmerged":1,"ruby_constant_receiver_exact:SuggestedTagging.create!":1,"ruby_constant_receiver_exact:TagFilter.create!":1,"ruby_constant_receiver_exact:TagFilter.group":1,"ruby_constant_receiver_exact:TagFilter.where":1,"ruby_constant_receiver_exact:User.count":1,"ruby_constant_receiver_exact:User.find":1,"ruby_constant_receiver_exact:User.moderators":1,"ruby_constant_receiver_exact:User.new":1,"ruby_constant_receiver_exact:User.order":1,"ruby_constant_receiver_exact:User.pluck":1,"ruby_constant_receiver_exact:User.select":1,"ruby_constant_receiver_exact:User.transaction":1,"ruby_constant_receiver_exact:Username.insert!":1,"ruby_constant_receiver_exact:Username.last":1,"ruby_constant_receiver_exact:Vote.comments_flags":1,"ruby_constant_receiver_exact:Vote.pluck":1},"reasons_total":118,"reasons_truncated":false,"nontrivial_sccs_touched":{"app/models/category.rb":32,"app/controllers/application_controller.rb":2},"nontrivial_runtime_sccs_touched":{"app/models/category.rb":32,"app/controllers/application_controller.rb":2}}}}