Skip to content

Instantly share code, notes, and snippets.

@snasirca
Last active September 24, 2021 19:28
Show Gist options
  • Select an option

  • Save snasirca/7757948c1b715a1ca40ea8938374f3e7 to your computer and use it in GitHub Desktop.

Select an option

Save snasirca/7757948c1b715a1ca40ea8938374f3e7 to your computer and use it in GitHub Desktop.
Refactor from PrototypeJS to jQuery
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
#for filename in $(find ./modules -type f); do
for filename in $(rg -l --pcre2 --type "js" --type "erb" --type "ruby" '(?<!\.)\$?\$F?\(['"'"'"]?(\w|#{)' --glob '!vendor' --glob '!infrastructure' --glob '!docker' --glob '!modules/generic/legacy_javascript/app/assets/javascripts/jquery'); do
perl -p -i -e "s/(?<!\\$)\\$\(this\).show\(\)/jQuery(this).show()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).show\(\)/jQuery('#\$1').show()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).show\(\)/jQuery(\"#\$1\").show()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).hide\(\)/jQuery(this).hide()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).hide\(\)/jQuery('#\$1').hide()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).hide\(\)/jQuery(\"#\$1\").hide()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).toggle\(\)/jQuery(this).toggle()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).toggle\(\)/jQuery('#\$1').toggle()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).toggle\(\)/jQuery(\"#\$1\").toggle()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).serialize\(\)/jQuery(this).serialize()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).serialize\(\)/jQuery('#\$1').serialize()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).serialize\(\)/jQuery(\"#\$1\").serialize()/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).disable\(\)/jQuery(this).prop('disabled', true)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).disable\(\)/jQuery('#\$1').prop('disabled', true)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).disable\(\)/jQuery(\"#\$1\").prop('disabled', true)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).enable\(\)/jQuery(this).prop('disabled', false)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).enable\(\)/jQuery('#\$1').prop('disabled', false)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(\"(\w[^\(\)]*)\"\).enable\(\)/jQuery(\"#\$1\").prop('disabled', false)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).value = ('[\w ]*'|\"[\w ]*\"|'\<%=.*%\>')/jQuery('#\$1').val(\$2)/g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\(this\).value == /jQuery(this).val() == /g" "${filename}"
perl -p -i -e "s/(?<!\\$)\\$\('(\w[^\(\)]*)'\).innerHTML = ('.*'|\".*\")/jQuery('#\$1').html(\$2)/g" "${filename}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment