AO3-5243 Use AJAX to delete invitation requests #3151
sarken wants to merge
sarken:AO3-5243 into otwcode:masterFailed
1 issue to fix.
Complex method in #destroy New
def destroy
@invite_request = InviteRequest.find(params[:id])
if @invite_request.destroy
success_message = ts("Request for %{email} was removed from the queue.", email: @invite_request.email)
respond_to do |format|- Read upRead up
Long or complex methods can make code harder to understand. In most circumstances, methods are best as a small chunk of code (the "how") with a clear, understandable name (the "what"). Long methods can also lead to duplication, as it's harder to reuse logic that is tightly coupled to surrounding code.
Refactorings
- Extract Method
- Replace Temp With Query
- Replace Conditional with Polymorphism
- Replace Method with Method Object
- Decompose Conditional
- Preserve Whole Object
- Introduce Parameter Object
Read More
- Long Method on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Long Method, p76
- Smalltalk Best Practice Patterns by Kent Beck, Composed Method, p21
Category
| File | Maintainability |
| script/seed_dump.rb | |
| lib/autocomplete_source.rb | |
| app/controllers/collection_items_controller.rb | |
| app/controllers/application_controller.rb | |
| app/controllers/owned_tag_sets_controller.rb | |
| app/models/bookmark_search.rb | |
| app/controllers/admin/skins_controller.rb | |
| app/helpers/comments_helper.rb | |
| lib/taggable.rb | |
| lib/css_cleaner.rb | |
| app/models/comment.rb | |
| app/controllers/bookmarks_controller.rb | |
| app/models/story_parser.rb | |
| app/models/challenge_signup.rb | |
| app/models/potential_match.rb | |
| app/models/prompt.rb | |
| app/controllers/tag_set_nominations_controller.rb | |
| app/controllers/collection_participants_controller.rb | |
| app/controllers/chapters_controller.rb | |
| app/models/user.rb | |
| app/models/pseud.rb | |
| app/controllers/admin/admin_users_controller.rb | |
| app/models/search_result.rb | |
| app/helpers/application_helper.rb | |
| lib/logfile_reader.rb | |
| app/controllers/challenge_claims_controller.rb | |
| app/controllers/series_controller.rb | |
| app/models/work_search.rb | |
| app/controllers/skins_controller.rb | |
| app/controllers/kudos_controller.rb | |
| app/controllers/tag_wranglers_controller.rb | |
| app/models/tagset_models/tag_set.rb | |
| app/controllers/tag_wranglings_controller.rb | |
| app/controllers/user_sessions_controller.rb | |
| app/models/work.rb | |
| app/models/collection_item.rb | |
| app/controllers/users_controller.rb | |
| app/mailers/user_mailer.rb | |
| app/helpers/translation_helper.rb | |
| app/models/challenge_assignment.rb | |
| lib/skin_wizard.rb | |
| app/controllers/pseuds_controller.rb | |
| app/helpers/users_helper.rb | |
| app/models/tag.rb | |
| app/models/tagset_models/owned_tag_set.rb | |
| app/controllers/challenge_signups_controller.rb | |
| app/models/bookmark.rb | |
| app/controllers/gifts_controller.rb | |
| app/helpers/prompt_restrictions_helper.rb | |
| app/models/series.rb | |
| app/models/skin.rb | |
| app/helpers/tag_sets_helper.rb | |
| app/controllers/tags_controller.rb | |
| app/mailers/kudo_mailer.rb | |
| features/support/paths.rb | |
| lib/creatable.rb | |
| app/controllers/collections_controller.rb | |
| features/step_definitions/web_steps.rb | |
| app/controllers/challenge_assignments_controller.rb | |
| app/helpers/tags_helper.rb | |
| app/controllers/stats_controller.rb | |
| app/models/collection.rb | |
| spec/helpers/works_helper_spec.rb | |
| config/initializers/authlogic.rb | |
| spec/controllers/works/default_rails_actions_spec.rb | |
| features/step_definitions/email_custom_steps.rb | |
| config/initializers/archive_config/time_formats.rb | |
| config/initializers/gem-plugin_config/webmock.rb | |
| public/javascripts/jquery.timeago.min.js | |
| public/javascripts/jquery-ui.min.js | |
| config/initializers/copycopter.rb | |
| spec/models/index_queue_spec.rb | |
| public/javascripts/tinymce/plugins/save/plugin.min.js | |
| public/javascripts/tinymce/plugins/autoresize/plugin.min.js | |
| db/migrate/20171030201300_add_simplified_email_to_invite_requests.rb | |
| features/step_definitions/tag_set_steps.rb | |
| public/javascripts/jquery.min.js | |
| features/step_definitions/archivist_steps.rb | |
| public/javascripts/jquery-shuffle.js | |
| spec/helpers/tag_sets_helper_spec.rb | |
| config/initializers/filter_parameter_logging.rb | |
| config/environment.rb | |
| spec/lib/string_cleaner_spec.rb | |
| spec/lib/collectible_spec.rb | |
| config/initializers/mime_types.rb | |
| spec/controllers/tag_set_associations_controller_spec.rb | |
| config/initializers/gem-plugin_config/acts_as_commentable.rb | |
| db/migrate/20141127004302_create_fannish_next_of_kins.rb | |
| public/javascripts/jquery.livequery.min.js | |
| features/step_definitions/series_steps.rb | |
| config/deploy/staging.rb | |
| public/javascripts/tinymce/plugins/colorpicker/plugin.min.js | |
| spec/controllers/chapters_controller_spec.rb | |
| db/migrate/20170615090455_remove_admin_emails_off_from_preferences.rb | |
| features/support/sphinx.rb | |
| features/step_definitions/comment_steps.rb | |
| spec/models/admin_spec.rb | |
| spec/models/potential_match_spec.rb | |
| public/javascripts/tinymce/plugins/tabfocus/plugin.min.js | |
| spec/api/api_base_controller_spec.rb | |
| public/javascripts/tinymce/plugins/charmap/plugin.min.js | |
| factories/abuse_reports.rb | |
| public/javascripts/filters.js | |
| public/javascripts/jquery.js | |
| db/migrate/20150901132832_add_unreviewed_to_comments.rb | |
| public/javascripts/tinymce/plugins/hr/plugin.min.js | |
| spec/support/matchers/be_valid_verbose.rb | |
| factories/tags.rb | |
| features/step_definitions/fixtures_steps.rb | |
| spec/helpers/exports_helper_spec.rb | |
| features/step_definitions/bookmark_steps.rb | |
| spec/controllers/autocomplete_controller_spec.rb | |
| config/initializers/wrap_parameters.rb | |
| spec/models/work_search_spec.rb | |
| config/initializers/rollout_init.rb | |
| public/javascripts/rails.js | |
| config/environments/staging.rb | |
| public/javascripts/livevalidation_standalone.js | |
| config/routes.rb | |
| factories/kudos.rb | |
| features/step_definitions/challenge_steps.rb | |
| config/schedule_web.rb | |
| features/step_definitions/work_steps.rb | |
| config/deploy/production.rb | |
| public/javascripts/tinymce/plugins/textpattern/plugin.min.js | |
| public/javascripts/jquery.qtip.min.js | |
| features/support/database_cleaner.rb | |
| spec/models/story_parser_spec.rb | |
| public/javascripts/tinymce/plugins/paste/plugin.min.js | |
| features/step_definitions/skin_steps.rb | |
| config/initializers/archive_config/archive_config.rb | |
| spec/controllers/collection_profile_controller_spec.rb | |
| config/initializers/gem-plugin_config/will_paginate_config.rb | |
| features/step_definitions/kudos_steps.rb | |
| spec/models/tag_spec.rb | |
| config/environments/development.rb | |
| public/javascripts/tinymce/plugins/code/plugin.min.js | |
| features/support/vcr.rb | |
| db/migrate/20170321202522_add_index_to_tag_nominations.rb | |
| public/javascripts/tinymce/plugins/table/plugin.min.js | |
| config/initializers/inflections.rb | |
| public/javascripts/tinymce/plugins/image/plugin.min.js | |
| config/deploy.rb | |
| features/support/pickle.rb | |
| public/javascripts/mce_editor.js | |
| config/initializers/backtrace_silencers.rb | |
| config/initializers/new_framework_defaults.rb | |
| db/migrate/20170414154143_add_request_uuid_to_audits.rb | |
| config/initializers/session_store.rb | |
| config/initializers/assets.rb | |
| public/javascripts/tinymce/plugins/insertdatetime/plugin.min.js | |
| config/initializers/gem-plugin_config/phusion_passenger_config.rb | |
| spec/controllers/prompt_meme_controller_spec.rb | |
| config/initializers/gem-plugin_config/resque_mailer.rb | |
| config/initializers/gem-plugin_config/newrelic.rb | |
| factories/wrangling_guideline.rb | |
| spec/models/spam_report_spec.rb | |
| config/initializers/gem-plugin_config/tire.rb | |
| spec/controllers/works/multiple_actions_spec.rb | |
| config/initializers/gem-plugin_config/elasticsearch.rb | |
| config/initializers/devise.rb | |
| config/schedule_production.rb | |
| config/environments/test.rb | |
| spec/api/api_helper.rb | |
| features/step_definitions/icon_steps.rb | |
| spec/models/challenge_assignment_spec.rb | |
| spec/models/user_invitation_spec.rb | |
| public/javascripts/tinymce/plugins/searchreplace/plugin.min.js | |
| public/javascripts/tinymce/plugins/nonbreaking/plugin.min.js | |
| spec/controllers/external_authors_controller_spec.rb | |
| public/javascripts/tinymce/plugins/example/plugin.min.js | |
| public/javascripts/jquery-ui.js | |
| spec/models/user_spec.rb | |
| config/environments/production.rb | |
| spec/helpers/home_helper_spec.rb | |
| config/initializers/cookies_serializer.rb | |
| spec/models/collection_spec.rb | |
| public/javascripts/tinymce/plugins/link/plugin.min.js | |
| public/javascripts/filters.min.js | |
| spec/models/chapter_spec.rb | |
| config/initializers/phraseapp_in_context_editor.rb | |
| spec/models/external_work_spec.rb | |
| public/javascripts/select_all.js | |
| config/locales/fun/gibberish.rb | |
| public/javascripts/mce_editor.min.js | |
| features/step_definitions/preferences_steps.rb | |
| spec/api/api_bookmarks_spec.rb | |
| db/migrate/20160706031054_move_admins_to_devise.rb | |
| features/step_definitions/challenge_promptmeme_steps.rb | |
| spec/api/api_works_spec.rb | |
| spec/spec_helper.rb | |
| spec/mailers/abuse_mailer_spec.rb | |
| db/migrate/20170919143944_add_indexes_to_nominations.rb | |
| spec/mailers/collection_mailer_spec.rb | |
| spec/helpers/user_invite_requests_helper_spec.rb | |
| spec/helpers/inbox_helper_spec.rb | |
| spec/helpers/share_helper_spec.rb | |
| spec/models/locale_spec.rb | |
| spec/controllers/challenge_claims_controller_spec.rb | |
| public/javascripts/jquery.tokeninput.js | |
| spec/controllers/challenge_signups_controller_spec.rb | |
| spec/controllers/wrangling_guidelines_controller_spec.rb | |
| spec/controllers/owned_tag_sets_controller_spec.rb | |
| spec/controllers/collection_items_controller_spec.rb | |
| spec/models/abuse_report_spec.rb | |
| public/javascripts/tinymce/plugins/importcss/plugin.min.js | |
| features/step_definitions/work_import_steps.rb | |
| spec/controllers/related_works_controller_spec.rb | |
| spec/models/admin_blacklisted_email_spec.rb | |
| public/javascripts/tinymce/plugins/advlist/plugin.min.js | |
| spec/controllers/inbox_controller_spec.rb | |
| spec/controllers/challenges_controller_spec.rb | |
| config/initializers/transaction_retry.rb | |
| spec/models/index_subqueue_spec.rb | |
| spec/controllers/collection_participants_controller_spec.rb | |
| spec/controllers/prompts_controller_spec.rb | |
| spec/controllers/comments_controller_spec.rb | |
| spec/support/login_macros.rb | |
| spec/controllers/works/miscellaneous_spec.rb | |
| spec/controllers/works/drafts_spec.rb | |
| spec/controllers/works/importing_spec.rb | |
| spec/support/redirect_expectation_helper.rb | |
| config/initializers/application_controller_renderer.rb | |
| spec/models/invite_request_spec.rb | |
| config/initializers/resque_mailer.rb | |
| spec/models/cache_master_spec.rb | |
| spec/models/invitation_spec.rb | |
| spec/models/stat_counter_spec.rb | |
| spec/models/gift_spec.rb | |
| factories/series.rb | |
| spec/models/tag_set_nomination_spec.rb | |
| public/javascripts/bootstrap/bootstrap-dropdown.js | |
| spec/models/pseud_spec.rb | |
| public/javascripts/tinymce/plugins/autosave/plugin.min.js | |
| spec/lib/xhtml_splitter_spec.rb | |
| spec/lib/html_cleaner_spec.rb | |
| spec/lib/tasks/resque.rake_spec.rb | |
| public/dispatch.rb | |
| spec/models/gift_exchange_spec.rb | |
| public/javascripts/jquery.scrollTo.js | |
| public/javascripts/jquery.purr.js | |
| public/javascripts/jquery.timeago.js | |
| factories/challenge_claims.rb | |
| public/javascripts/jquery.cookie.js | |
| public/javascripts/jquery.scrollTo.min.js | |
| public/javascripts/ao3modal.js | |
| public/javascripts/unittest.js | |
| public/javascripts/tinymce/plugins/autolink/plugin.min.js | |
| public/javascripts/tinymce/plugins/visualblocks/plugin.min.js | |
| public/javascripts/jquery.intoViewport.min.js | |
| public/javascripts/tinymce/plugins/directionality/plugin.min.js | |
| public/javascripts/tinymce/plugins/wordcount/plugin.min.js | |
| public/javascripts/tinymce/plugins/emoticons/plugin.min.js | |
| public/javascripts/tinymce/plugins/bbcode/plugin.min.js | |
| public/javascripts/tinymce/plugins/fullpage/plugin.min.js | |
| public/javascripts/tinymce/plugins/print/plugin.min.js | |
| spec/lib/works_owner_spec.rb | |
| public/javascripts/tinymce/plugins/lists/plugin.min.js | |
| public/javascripts/tinymce/plugins/textcolor/plugin.min.js | |
| public/javascripts/tinymce/plugins/codesample/plugin.min.js | |
| config/boot.rb | |
| public/javascripts/tinymce/plugins/pagebreak/plugin.min.js | |
| factories/prompt_restriction.rb | |
| config/initializers/gem-plugin_config/livevalidation.rb | |
| spec/controllers/users_controller_spec.rb | |
| spec/controllers/admin_posts_controller_spec.rb | |
| public/javascripts/jquery.tokeninput.min.js | |
| public/javascripts/tinymce/plugins/example_dependency/plugin.min.js | |
| public/javascripts/tinymce/plugins/preview/plugin.min.js | |
| config/schedule.rb | |
| public/javascripts/tinymce/tinymce.min.js | |
| features/step_definitions/invite_steps.rb | |
| public/javascripts/translation_status.js | |
| spec/controllers/challenge_assignments_controller_spec.rb | |
| public/javascripts/tinymce/themes/modern/theme.min.js | |
| public/javascripts/application.js | |
| public/javascripts/jquery-ui-timepicker-addon.js | |
| public/javascripts/tinymce/plugins/imagetools/plugin.min.js | |
| spec/controllers/bookmarks_controller_spec.rb | |
| spec/lib/logfile_reader_spec.rb | |
| config/initializers/archive_config/settings_for_admin.rb | |
| spec/controllers/profile_controller_spec.rb | |
| spec/lib/url_formatter_spec.rb | |
| factories/prompt.rb | |
| public/javascripts/tinymce/plugins/fullscreen/plugin.min.js | |
| config/initializers/gem-plugin_config/redis.rb | |
| factories/bookmarks.rb | |
| factories/subscriptions.rb | |
| db/migrate/20141003204623_add_interface_enabled_to_locale.rb | |
| spec/models/series_spec.rb | |
| factories/invitations.rb | |
| features/step_definitions/page_title_steps.rb | |
| features/step_definitions/pickle_steps.rb | |
| db/migrate/20151129234505_add_rejected_to_gifts.rb | |
| spec/models/skin_parent_spec.rb | |
| spec/models/subscription_spec.rb | |
| public/javascripts/tinymce/plugins/anchor/plugin.min.js | |
| public/javascripts/tinymce/plugins/template/plugin.min.js | |
| spec/controllers/serial_works_controller_spec.rb | |
| config/initializers/archive_config/locale.rb | |
| features/support/minitest.rb | |
| features/support/factories.rb | |
| public/javascripts/builder.js | |
| spec/api/api_authorization_spec.rb | |
| factories/pseuds.rb | |
| features/support/hooks.rb | |
| app/controllers/works_controller.rb | |
| public/javascripts/sound.js | |
| features/step_definitions/request_header_steps.rb | |
| public/javascripts/bootstrap/bootstrap-dropdown.min.js | |
| lib/html_cleaner.rb | |
| features/step_definitions/orphan_steps.rb | |
| factories/faq.rb | |
| public/javascripts/tinymce/plugins/contextmenu/plugin.min.js | |
| config/initializers/archive_config/mail.rb | |
| factories/language.rb | |
| db/migrate/20150901024743_add_moderated_commenting_enabled_to_works.rb | |
| public/javascripts/tinymce/plugins/visualchars/plugin.min.js | |
| factories/locales.rb | |
| public/javascripts/tinymce/plugins/noneditable/plugin.min.js | |
| features/step_definitions/tag_steps.rb | |
| spec/models/skin_spec.rb | |
| features/step_definitions/challege_gift_exchange_steps.rb | |
| spec/models/external_author_spec.rb | |
| db/migrate/20171030220348_add_index_to_invite_queue_emails.rb | |
| db/migrate/20171006090901_add_index_to_preferences.rb | |
| db/migrate/20141004123421_add_locale_to_preferences.rb | |
| db/migrate/20170918172719_add_more_index_to_tag_nominations.rb | |
| features/step_definitions/work_search_steps.rb | |
| db/migrate/20170322092920_rename_taggings_count_to_taggings_count_cache.rb | |
| db/migrate/20151018165632_add_support_available_to_languages.rb | |
| factories/related_works.rb | |
| factories/collections.rb | |
| factories/admin_blacklisted_email.rb | |
| factories/chapters.rb | |
| factories/admin.rb | |
| factories/comments.rb | |
| spec/models/comment_spec.rb | |
| factories/admin_post.rb | |
| factories/user_invite_requests.rb | |
| factories/serial_work.rb | |
| public/javascripts/tinymce/plugins/layer/plugin.min.js | |
| features/step_definitions/email_steps.rb | |
| factories/challenges.rb | |
| factories/skins.rb | |
| spec/controllers/tag_set_nominations_controller_spec.rb | |
| spec/controllers/gift_exchange_controller_spec.rb | |
| spec/mailers/comment_mailer_spec.rb | |
| db/migrate/20160416163754_add_is_translated_check_to_questions.rb | |
| features/step_definitions/work_deletion_steps.rb | |
| spec/helpers/validation_helper_spec.rb | |
| spec/controllers/external_works_controller_spec.rb | |
| db/migrate/20170331170222_change_readings_id_type.rb | |
| public/javascripts/tinymce/plugins/legacyoutput/plugin.min.js | |
| public/javascripts/slider.js | |
| features/step_definitions/challenge_yuletide_steps.rb | |
| features/step_definitions/pseud_steps.rb | |
| features/step_definitions/profile_steps.rb | |
| factories/api_key.rb | |
| factories/users.rb | |
| features/step_definitions/autocomplete_steps.rb | |
| features/step_definitions/admin_steps.rb | |
| features/step_definitions/user_steps.rb | |
| features/step_definitions/search_steps.rb | |
| factories/feedback.rb | |
| features/step_definitions/external_work_steps.rb | |
| spec/support/mailer_macros.rb | |
| features/step_definitions/banner_steps.rb | |
| features/step_definitions/generic_steps.rb | |
| spec/requests/comments_spec.rb | |
| features/step_definitions/gift_steps.rb | |
| features/step_definitions/work_related_steps.rb | |
| public/javascripts/jquery.trap.min.js | |
| public/javascripts/ao3modal.min.js | |
| db/migrate/20160331005706_create_admin_blacklisted_emails.rb | |
| features/step_definitions/redis_mail_queue_steps.rb | |
| features/support/webmock.rb | |
| spec/lib/autocomplete_source_spec.rb | |
| spec/controllers/tags_controller_spec.rb | |
| features/support/env.rb | |
| app/controllers/comments_controller.rb | |
| features/step_definitions/subscription_steps.rb | |
| spec/mailers/feedback_mailer_spec.rb | |
| spec/lib/word_counter_spec.rb | |
| spec/models/unsorted_tag_spec.rb | |
| features/step_definitions/potential_match_steps.rb | |
| public/javascripts/tinymce/plugins/media/plugin.min.js | |
| factories/works.rb | |
| features/step_definitions/reading_steps.rb | |
| spec/mailers/user_mailer_spec.rb | |
| config/locales/fun/en-AU.rb | |
| spec/models/challenge_claim_spec.rb | |
| config/deploy/i18n.rb | |
| spec/controllers/admin/api_controller_spec.rb | |
| public/javascripts/tinymce/plugins/spellchecker/plugin.min.js | |
| spec/controllers/invite_requests_controller_spec.rb | |
| config/initializers/gem-plugin_config/resque.rb | |
| spec/controllers/series_controller_spec.rb | |
| features/step_definitions/collection_steps.rb | |
| db/migrate/20150725141326_install_audited.rb | |
| spec/controllers/opendoors/tools_controller_spec.rb | |
| db/schema.rb | |
| db/migrate/20141003205439_add_email_enabled_to_locale.rb | |
| spec/controllers/locales_controller_spec.rb | |
| spec/models/work_spec.rb | |
| app/validators/email_veracity_validator.rb |