Skip to content

Instantly share code, notes, and snippets.

@wteuber
Last active November 18, 2024 17:36
Show Gist options
  • Save wteuber/c435bafcd79beb91b65e354fc907efe8 to your computer and use it in GitHub Desktop.
Save wteuber/c435bafcd79beb91b65e354fc907efe8 to your computer and use it in GitHub Desktop.
Apply Ruby's keyword argument and hash value omission in a git repo
# https://gist.github.com/wteuber/c435bafcd79beb91b65e354fc907efe8
# macOS/zsh
# Apply Ruby's keyword argument and hash value omission in a git repo
# First occurence only
git grep -lP '\b([A-Za-z0-9_]+): \1\b[,\)]' -- '*.rb' | head -1 | xargs -I {} sed -i -E 's/\b([A-Za-z0-9_]+): \1\b([,\)])/\1:\2/g' "{}"
# Apply for "<var>: <var>," and "<var>: <var>)"
git grep -lP '\b([A-Za-z0-9_]+): \1\b[,\)]' -- '*.rb' | xargs -I {} sed -i -E 's/\b([A-Za-z0-9_]+): \1\b([,\)])/\1:\2/g' "{}"
# Apply for "<var>: <var> }"
git grep -lP '\b([A-Za-z0-9_]+): \1\b \}' -- '*.rb' | xargs -I {} sed -i -E 's/\b([A-Za-z0-9_]+): \1\b \}/\1: }/g' "{}"
# List other occurences of "<var>: <var>" except "<var>: <var>.", "<var>: <var>(", "<var>: <var>?", "<var>: <var>&"
git grep -nP '\b([A-Za-z0-9_]+): \1\b[^.(?&]' -- '*.rb'
@wteuber
Copy link
Author

wteuber commented Nov 18, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment