Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/r/rubocop/rubocop_0.89.1+dfsg-3_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/rubocop-0.89.1+dfsg-304whbe_9/rubocop_0.89.1+dfsg-3_all.buildinfo Get source package info: rubocop=0.89.1+dfsg-3 Source URL: http://snapshot.notset.fr/mr/package/rubocop/0.89.1+dfsg-3/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=adduser=3.118 autoconf=2.71-2 automake=1:1.16.5-1.1 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=12 base-passwd=3.5.52 bash=5.1-5 binutils=2.37-10 binutils-common=2.37-10 binutils-x86-64-linux-gnu=2.37-10 bsdextrautils=2.37.2-4 bsdutils=1:2.37.2-4 build-essential=12.9 bzip2=1.0.8-5 ca-certificates=20211016 coreutils=8.32-4.1 cpp=4:11.2.0-2 cpp-11=11.2.0-12 dash=0.5.11+git20210903+057cd650a4ed-3 debconf=1.5.79 debhelper=13.5.2 debianutils=5.5-1 devscripts=2.21.6 dh-autoreconf=20 dh-strip-nondeterminism=1.12.1-1 diffutils=1:3.7-5 dirmngr=2.2.27-2 dpkg=1.21.1 dpkg-dev=1.21.1 dwz=0.14-1 fakeroot=1.26-1 file=1:5.41-2 findutils=4.8.0-1 g++=4:11.2.0-2 g++-11=11.2.0-12 gcc=4:11.2.0-2 gcc-11=11.2.0-12 gcc-11-base=11.2.0-12 gem2deb=1.8 gem2deb-test-runner=1.8 gettext=0.21-4 gettext-base=0.21-4 gnupg=2.2.27-2 gnupg-l10n=2.2.27-2 gnupg-utils=2.2.27-2 gpg=2.2.27-2 gpg-agent=2.2.27-2 gpg-wks-client=2.2.27-2 gpg-wks-server=2.2.27-2 gpgconf=2.2.27-2 gpgsm=2.2.27-2 gpgv=2.2.27-2 grep=3.7-1 groff-base=1.22.4-7 gzip=1.10-4 hostname=3.23 init-system-helpers=1.61 intltool-debian=0.35.0+20060710.5 javascript-common=11+nmu1 libacl1=2.3.1-1 libarchive-zip-perl=1.68-1 libasan6=11.2.0-12 libassuan0=2.5.5-1 libatomic1=11.2.0-12 libattr1=1:2.5.1-1 libaudit-common=1:3.0.6-1 libaudit1=1:3.0.6-1+b1 libb-hooks-op-check-perl=0.22-1+b3 libbinutils=2.37-10 libblkid1=2.37.2-4 libbsd0=0.11.3-1 libbz2-1.0=1.0.8-5 libc-bin=2.32-5 libc-dev-bin=2.32-5 libc6=2.32-5 libc6-dev=2.32-5 libcap-ng0=0.7.9-2.2+b1 libcap2=1:2.44-1 libcc1-0=11.2.0-12 libclass-method-modifiers-perl=2.13-1 libclass-xsaccessor-perl=1.19-3+b7 libcom-err2=1.46.4-1 libcrypt-dev=1:4.4.26-1 libcrypt1=1:4.4.26-1 libctf-nobfd0=2.37-10 libctf0=2.37-10 libdb5.3=5.3.28+dfsg1-0.8 libdebconfclient0=0.261 libdebhelper-perl=13.5.2 libdevel-callchecker-perl=0.008-1+b2 libdpkg-perl=1.21.1 libdynaloader-functions-perl=0.003-1.1 libedit2=3.1-20210910-1 libelf1=0.186-1 libencode-locale-perl=1.05-1.1 libexpat1=2.4.1-3 libfakeroot=1.26-1 libffi8=3.4.2-3 libfile-dirlist-perl=0.05-2 libfile-homedir-perl=1.006-1 libfile-listing-perl=6.14-1 libfile-stripnondeterminism-perl=1.12.1-1 libfile-touch-perl=0.12-1 libfile-which-perl=1.23-1 libgcc-11-dev=11.2.0-12 libgcc-s1=11.2.0-12 libgcrypt20=1.9.4-4 libgdbm-compat4=1.22-1 libgdbm6=1.22-1 libgmp-dev=2:6.2.1+dfsg-3 libgmp10=2:6.2.1+dfsg-3 libgmpxx4ldbl=2:6.2.1+dfsg-3 libgnutls30=3.7.2-2 libgomp1=11.2.0-12 libgpg-error0=1.42-3 libgssapi-krb5-2=1.18.3-7 libhogweed6=3.7.3-1 libhtml-parser-perl=3.76-1 libhtml-tagset-perl=3.20-4 libhtml-tree-perl=5.07-2 libhttp-cookies-perl=6.10-1 libhttp-date-perl=6.05-1 libhttp-message-perl=6.35-1 libhttp-negotiate-perl=6.01-1 libicu67=67.1-7 libidn2-0=2.3.2-2 libimport-into-perl=1.002005-1 libio-html-perl=1.004-2 libio-pty-perl=1:1.15-2 libio-socket-ssl-perl=2.072-1 libipc-run-perl=20200505.0-1 libisl23=0.24-2 libitm1=11.2.0-12 libjs-jquery=3.5.1+dfsg+~3.5.5-8 libjs-jquery-easing=12-3 libjs-jquery-fancybox=12-3 libjs-jquery-mousewheel=1:3.1.13-3.1 libjs-jquery-ui=1.13.0+dfsg-1 libk5crypto3=1.18.3-7 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-7 libkrb5support0=1.18.3-7 libksba8=1.6.0-2 libldap-2.4-2=2.4.59+dfsg-1 liblsan0=11.2.0-12 liblwp-mediatypes-perl=6.04-1 liblwp-protocol-https-perl=6.10-1 liblz4-1=1.9.3-2 liblzma5=5.2.5-2 libmagic-mgc=1:5.41-2 libmagic1=1:5.41-2 libmd0=1.0.4-1 libmodule-runtime-perl=0.016-1 libmoo-perl=2.005004-3 libmount1=2.37.2-4 libmpc3=1.2.1-1 libmpdec3=2.5.1-2 libmpfr6=4.1.0-3 libncursesw6=6.3-1 libnet-http-perl=6.21-1 libnet-ssleay-perl=1.90-1 libnettle8=3.7.3-1 libnpth0=1.6-3 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libp11-kit0=0.24.0-6 libpam-modules=1.4.0-11 libpam-modules-bin=1.4.0-11 libpam-runtime=1.4.0-11 libpam0g=1.4.0-11 libparams-classify-perl=0.015-1+b3 libpcre2-8-0=10.39-3 libpcre3=2:8.39-13 libperl5.32=5.32.1-6 libpipeline1=1.5.4-1 libpython3-stdlib=3.9.8-1 libpython3.9-minimal=3.9.9-1 libpython3.9-stdlib=3.9.9-1 libquadmath0=11.2.0-12 libreadline8=8.1-2 librole-tiny-perl=2.002004-1 libruby2.7=2.7.4-1+b1 libruby3.0=3.0.2-5 libsasl2-2=2.1.27+dfsg2-2 libsasl2-modules-db=2.1.27+dfsg2-2 libseccomp2=2.5.3-2 libselinux1=3.3-1+b1 libsemanage-common=3.3-1 libsemanage2=3.3-1+b1 libsepol2=3.3-1 libsigsegv2=2.13-1 libsmartcols1=2.37.2-4 libsqlite3-0=3.36.0-2 libssl1.1=1.1.1l-1 libstdc++-11-dev=11.2.0-12 libstdc++6=11.2.0-12 libsub-override-perl=0.09-2 libsub-quote-perl=2.006006-1 libsystemd0=249.7-1 libtasn1-6=4.18.0-4 libtimedate-perl=2.3300-2 libtinfo6=6.3-1 libtirpc-common=1.3.2-2 libtirpc-dev=1.3.2-2 libtirpc3=1.3.2-2 libtool=2.4.6-15 libtry-tiny-perl=0.31-1 libtsan0=11.2.0-12 libubsan1=11.2.0-12 libuchardet0=0.0.7-1 libudev1=249.7-1 libunistring2=0.9.10-6 liburi-perl=5.10-1 libuuid1=2.37.2-4 libwww-perl=6.59-1 libwww-robotrules-perl=6.02-1 libxml2=2.9.12+dfsg-5+b1 libyaml-0-2=0.2.2-1 libzstd1=1.4.8+dfsg-3 linux-libc-dev=5.15.5-1 login=1:4.8.1-2 lsb-base=11.1.0 m4=1.4.18-5 make=4.3-4.1 man-db=2.9.4-2 mawk=1.3.4.20200120-2 media-types=4.0.0 ncurses-base=6.3-1 ncurses-bin=6.3-1 netbase=6.3 openssl=1.1.1l-1 passwd=1:4.8.1-2 patch=2.7.6-7 patchutils=0.4.2-1 perl=5.32.1-6 perl-base=5.32.1-6 perl-modules-5.32=5.32.1-6 perl-openssl-defaults=5 pinentry-curses=1.1.0-4 po-debconf=1.0.21+nmu1 pry=0.13.1-2 publicsuffix=20211207.1025-1 python3=3.9.8-1 python3-minimal=3.9.8-1 python3.9=3.9.9-1 python3.9-minimal=3.9.9-1 rake=13.0.3-1 readline-common=8.1-2 rpcsvc-proto=1.4.2-4 rubocop=0.89.1+dfsg-2 ruby=1:2.7.6 ruby-addressable=2.8.0-1 ruby-all-dev=1:2.7.6 ruby-ast=2.4.1-1 ruby-coderay=1.1.3-5 ruby-crack=0.4.4-2 ruby-diff-lcs=1.4.4-1 ruby-docile=1.1.5-2 ruby-hashdiff=1.0.1-1 ruby-method-source=1.0.0-2 ruby-minitest=5.13.0-1 ruby-net-telnet=0.1.1-2 ruby-parallel=1.21.0-1 ruby-power-assert=1.1.7-2 ruby-progressbar=1.11.0-1 ruby-public-suffix=4.0.6+ds-1 ruby-rainbow=3.0.0-3 ruby-regexp-parser=2.1.1-2 ruby-rspec=3.10.0c1e1m2s3-1 ruby-rspec-core=3.10.0c1e1m2s3-1 ruby-rspec-expectations=3.10.0c1e1m2s3-1 ruby-rspec-mocks=3.10.0c1e1m2s3-1 ruby-rspec-support=3.10.0c1e1m2s3-1 ruby-rubocop-ast=0.6.0-1 ruby-rubocop-rspec=1.42.0-1 ruby-rubygems=3.2.27-3 ruby-safe-yaml=1.0.5-1 ruby-simplecov=0.19.1-1 ruby-simplecov-html=0.12.3-1 ruby-test-unit=3.3.9-1 ruby-unicode-display-width=1.6.1-1 ruby-webmock=3.8.3-1 ruby-whitequark-parser=3.0.2.0-3 ruby-xmlrpc=0.3.2-1 ruby2.7=2.7.4-1+b1 ruby2.7-dev=2.7.4-1+b1 ruby3.0=3.0.2-5 ruby3.0-dev=3.0.2-5 rubygems-integration=1.18 sed=4.8-1 sensible-utils=0.0.17 sysvinit-utils=3.00-1 tar=1.34+dfsg-1 tzdata=2021e-1 util-linux=2.37.2-4 wdiff=1.2.2-2+b1 xz-utils=5.2.5-2 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211212T031254Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211212T031254Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211209T150529Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d rubocop=0.89.1+dfsg-3 && mkdir -p /build/rubocop-9IY1LX && dpkg-source --no-check -x /*.dsc /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg && chown -R builduser:builduser /build/rubocop-9IY1LX" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1639066417" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/rubocop-9IY1LX /tmp/rubocop-0.89.1+dfsg-304whbe_9 bookworm /dev/null deb http://snapshot.notset.fr/archive/debian/20211209T150529Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.Fnk86iW8k3 as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.Fnk86iW8k3 Reading package lists... Building dependency tree... util-linux is already the newest version (2.37.2-4). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20211209T150529Z unstable/main amd64 libfakeroot amd64 1.26-1 [47.3 kB] Get:2 http://snapshot.notset.fr/archive/debian/20211209T150529Z unstable/main amd64 fakeroot amd64 1.26-1 [87.1 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (714 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4679 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.26-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.26-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.26-1_amd64.deb ... Unpacking fakeroot (1.26-1) ... Setting up libfakeroot:amd64 (1.26-1) ... Setting up fakeroot (1.26-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.32-5) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20211212T031254Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20211212T031254Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20211209T150529Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.Fnk86iW8k3 Get:1 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm InRelease [129 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20211209T150529Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main Sources [11.7 MB] Get:4 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main amd64 Packages [11.2 MB] Fetched 23.0 MB in 25s (932 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.Fnk86iW8k3 I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d rubocop=0.89.1+dfsg-3 && mkdir -p /build/rubocop-9IY1LX && dpkg-source --no-check -x /*.dsc /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg && chown -R builduser:builduser /build/rubocop-9IY1LX"' exec /tmp/mmdebstrap.Fnk86iW8k3 Reading package lists... NOTICE: 'rubocop' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/ruby-team/rubocop.git Please use: git clone https://salsa.debian.org/ruby-team/rubocop.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 770 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main rubocop 0.89.1+dfsg-3 (dsc) [2377 B] Get:2 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main rubocop 0.89.1+dfsg-3 (tar) [755 kB] Get:3 http://snapshot.notset.fr/archive/debian/20211212T031254Z bookworm/main rubocop 0.89.1+dfsg-3 (diff) [12.6 kB] Fetched 770 kB in 1s (1003 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'rubocop_0.89.1+dfsg-3.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting rubocop in /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg dpkg-source: info: unpacking rubocop_0.89.1+dfsg.orig.tar.xz dpkg-source: info: unpacking rubocop_0.89.1+dfsg-3.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying 02-disable-tests-relying-on-rubygems-features.diff dpkg-source: info: applying 04-adjust-tests-due-to-rubocop-logo-removal-from-package.diff dpkg-source: info: applying 05-fix-gemspec.diff dpkg-source: info: applying 07-skip-tests-requiring-rubocop-performance.diff dpkg-source: info: applying 08-simplify-style-mixinusage.patch dpkg-source: info: applying 09-skip-failing-test.patch I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1639066417" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.Fnk86iW8k3 dpkg-buildpackage: info: source package rubocop dpkg-buildpackage: info: source version 0.89.1+dfsg-3 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Daniel Leidert dpkg-source --before-build . debian/rules clean dh clean --buildsystem=ruby --with ruby dh_auto_clean -O--buildsystem=ruby dh_ruby --clean dh_ruby --clean dh_autoreconf_clean -O--buildsystem=ruby dh_clean -O--buildsystem=ruby debian/rules binary-indep dh binary-indep --buildsystem=ruby --with ruby dh_update_autotools_config -i -O--buildsystem=ruby dh_autoreconf -i -O--buildsystem=ruby dh_auto_configure -i -O--buildsystem=ruby dh_ruby --configure dh_auto_build -i -O--buildsystem=ruby dh_ruby --build dh_ruby --build dh_auto_test -i -O--buildsystem=ruby dh_ruby --test create-stamp debian/debhelper-build-stamp dh_testroot -i -O--buildsystem=ruby dh_prep -i -O--buildsystem=ruby dh_auto_install --destdir=debian/rubocop/ -i -O--buildsystem=ruby dh_ruby --install /build/rubocop-9IY1LX/rubocop-0.89.1\+dfsg/debian/rubocop dh_ruby --install /usr/bin/ruby2.7 -S gem build --config-file /dev/null --verbose /tmp/d20211222-1848681-1dv4nhx/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on parser (>= 2.7.1.1) is not recommended if parser is semantically versioned, use: add_runtime_dependency 'parser', '~> 2.7', '>= 2.7.1.1' WARNING: open-ended dependency on regexp_parser (>= 1.7) is not recommended if regexp_parser is semantically versioned, use: add_runtime_dependency 'regexp_parser', '~> 1.7' WARNING: open-ended dependency on rexml (>= 0) is not recommended use a bounded requirement, such as '~> x.y' WARNING: See https://guides.rubygems.org/specification-reference/ for help Successfully built RubyGem Name: rubocop Version: 0.89.1 File: rubocop-0.89.1.gem /usr/bin/ruby2.7 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/rubocop/usr/share/rubygems-integration/all /tmp/d20211222-1848681-1dv4nhx/rubocop-0.89.1.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/assets/output.html.erb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/config/default.yml /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/exe/rubocop /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/ast_aliases.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cached_data.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/auto_genenerate_config.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/base.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/execute_runner.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/init_dotfile.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/show_cops.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/command/version.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cli/environment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/comment_config.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config_loader.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config_loader_resolver.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config_obsoletion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config_store.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/config_validator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/autocorrect_logic.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/badge.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/base.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/bundler/duplicated_gem.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/bundler/gem_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/bundler/insecure_protocol_source.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/bundler/ordered_gems.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/commissioner.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/cop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/alignment_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/condition_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/each_to_for_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/empty_line_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/for_to_each_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/line_break_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/ordered_gem_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/parentheses_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/percent_literal_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/punctuation_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/space_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/string_literal_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/correctors/unused_arg_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/force.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/gemspec/duplicated_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/gemspec/ordered_dependencies.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/gemspec/required_ruby_version.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/generator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/generator/configuration_injector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/generator/require_file_injector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/ignored_node.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/method_name_equal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/node_destructuring.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/node_type_predicate.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/access_modifier_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/argument_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/array_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/assignment_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/block_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/block_end_newline.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/case_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/class_structure.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/closing_heredoc_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/comment_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/condition_position.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/def_end_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/dot_position.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/else_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_line_between_defs.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_arguments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_block_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_class_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_method_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/empty_lines_around_module_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/end_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/end_of_line.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/extra_spacing.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_argument_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_array_element_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_array_element_line_break.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_hash_element_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_hash_element_line_break.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_method_argument_line_break.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_method_parameter_line_break.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/first_parameter_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/hash_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/heredoc_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/indentation_consistency.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/indentation_style.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/indentation_width.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/initial_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/leading_comment_space.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/leading_empty_lines.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/line_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_array_brace_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_array_line_breaks.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_assignment_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_block_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_method_call_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/multiline_operation_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/parameter_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/rescue_ensure_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_after_colon.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_after_comma.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_after_method_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_after_not.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_after_semicolon.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_around_block_parameters.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_around_keyword.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_around_method_call_operator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_around_operators.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_before_block_braces.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_before_comma.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_before_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_before_first_arg.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_before_semicolon.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_in_lambda_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_block_braces.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_parens.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_range_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_reference_brackets.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/space_inside_string_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/trailing_empty_lines.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/layout/trailing_whitespace.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/legacy/corrections_proxy.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/legacy/corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ambiguous_block_association.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ambiguous_operator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/assignment_in_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/big_decimal_new.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/boolean_symbol.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/circular_argument_reference.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/constant_resolution.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/debugger.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/deprecated_class_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/duplicate_case_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/duplicate_elsif_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/duplicate_hash_key.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/duplicate_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/duplicate_rescue_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/each_with_object_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/else_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/empty_conditional_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/empty_ensure.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/empty_expression.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/empty_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/empty_when.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ensure_return.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/erb_new_arguments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/flip_flop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/float_comparison.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/float_out_of_range.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/format_parameter_mismatch.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/heredoc_method_call_position.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/implicit_string_concatenation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ineffective_access_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/inherit_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/interpolation_check.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/literal_as_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/literal_in_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/loop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/missing_cop_enable_directive.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/missing_super.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/multiple_comparison.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/nested_method_definition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/nested_percent_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/next_without_accumulator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/non_deterministic_require_order.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/number_conversion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/ordered_magic_comments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/percent_string_array.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/percent_symbol_array.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/raise_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/rand_one.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_require_statement.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_splat_expansion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_string_coercion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_with_index.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/redundant_with_object.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/regexp_as_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/require_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/rescue_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/rescue_type.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/return_in_void_context.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/safe_navigation_chain.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/safe_navigation_consistency.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/safe_navigation_with_empty.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/script_permission.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/self_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/send_with_mixin_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/shadowed_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/shadowed_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/struct_new_override.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/suppressed_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/syntax.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/to_json.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/top_level_return_with_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/unified_integer.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/unreachable_code.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/unreachable_loop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/unused_block_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/unused_method_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/uri_escape_unescape.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/uri_regexp.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/useless_access_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/useless_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/useless_else_without_rescue.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/useless_setter_call.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/lint/void.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/message_annotator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/abc_size.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/block_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/block_nesting.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/class_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/cyclomatic_complexity.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/method_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/module_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/parameter_lists.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/perceived_complexity.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/utils/code_length_calculator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/utils/iterating_block.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/migration/department_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/allowed_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/annotation_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/array_min_size.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/array_syntax.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/auto_corrector.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/check_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/check_line_breakable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/code_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/configurable_enforced_style.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/configurable_formatting.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/configurable_max.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/configurable_naming.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/configurable_numbering.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/def_node.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/documentation_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/duplication.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/empty_lines_around_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/empty_parameter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/end_keyword_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/enforce_superclass.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/first_element_line_break.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/frozen_string_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/hash_alignment_styles.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/hash_transform_method.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/heredoc.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/ignored_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/ignored_pattern.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/integer_node.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/line_length_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/match_range.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/method_complexity.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/method_preference.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/min_body_length.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/multiline_element_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/multiline_expression_indentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/negative_conditional.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/nil_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/on_normal_if_unless.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/ordered_gem_node.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/percent_array.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/percent_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/preceding_following_alignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/preferred_delimiters.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/range_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/rational_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/regexp_literal_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/rescue_node.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/safe_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/space_after_punctuation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/space_before_punctuation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/statement_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/string_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/string_literals_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/surrounding_space.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/target_ruby_version.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/trailing_body.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/trailing_comma.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/uncommunicative_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/unused_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/mixin/visibility_help.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/accessor_method_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/ascii_identifiers.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/binary_operator_parameter_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/block_parameter_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/class_and_module_camel_case.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/constant_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/file_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/heredoc_delimiter_case.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/memoized_instance_variable_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/method_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/method_parameter_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/predicate_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/variable_name.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/naming/variable_number.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/offense.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/registry.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/security/eval.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/security/json_load.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/security/marshal_load.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/security/open.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/security/yaml_load.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/severity.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/access_modifier_declarations.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/accessor_grouping.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/alias.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/and_or.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/array_coercion.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/array_join.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/ascii_comments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/attr.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/auto_resource_cleanup.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/bare_percent_literals.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/begin_block.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/bisected_attr_accessor.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/block_comments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/block_delimiters.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/case_equality.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/case_like_if.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/character_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/class_and_module_children.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/class_check.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/class_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/class_vars.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/collection_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/colon_method_call.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/colon_method_definition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/command_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/comment_annotation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/commented_keyword.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/conditional_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/constant_visibility.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/copyright.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/date_time.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/def_with_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/dir.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/documentation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/documentation_method.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/double_cop_disable_directive.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/double_negation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/each_for_simple_loop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/each_with_object.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_block_parameter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_case_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_else.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_lambda_parameter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/empty_method.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/encoding.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/end_block.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/eval_with_location.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/even_odd.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/expand_path_arguments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/explicit_block_argument.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/exponential_notation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/float_division.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/for.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/format_string.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/format_string_token.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/frozen_string_literal_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/global_std_stream.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/global_vars.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/guard_clause.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_as_last_array_item.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_each_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_like_case.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_syntax.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_transform_keys.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/hash_transform_values.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/identical_conditional_branches.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/if_inside_else.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/if_unless_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/if_with_semicolon.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/implicit_runtime_error.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/infinite_loop.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/inline_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/inverse_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/ip_addresses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/lambda.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/lambda_call.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/line_end_concatenation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_call_with_args_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_call_without_args_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_called_on_do_end_block.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/method_def_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/min_max.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/missing_else.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/missing_respond_to_missing.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/mixin_grouping.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/mixin_usage.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/module_function.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_block_chain.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_if_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_if_then.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_memoization.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_method_signature.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_ternary_operator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiline_when_then.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/multiple_comparison.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/mutable_constant.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/negated_if.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/negated_unless.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/negated_while.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/nested_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/nested_parenthesized_calls.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/nested_ternary_operator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/next.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/nil_comparison.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/non_nil_check.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/not.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/numeric_literal_prefix.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/numeric_literals.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/numeric_predicate.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/one_line_conditional.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/option_hash.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/optional_arguments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/optional_boolean_parameter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/or_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/parallel_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/parentheses_around_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/percent_literal_delimiters.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/percent_q_literals.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/perl_backrefs.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/preferred_hash_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/proc.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/raise_args.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/random_with_offset.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_begin.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_capital_w.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_conditional.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_fetch_block.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_file_extension_in_require.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_freeze.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_percent_q.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_regexp_character_class.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_regexp_escape.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_return.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_self.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_sort.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/redundant_sort_by.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/regexp_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/rescue_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/rescue_standard_error.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/return_nil.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/safe_navigation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/sample.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/self_assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/semicolon.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/send.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/signal_exception.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/single_argument_dig.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/single_line_block_params.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/single_line_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/slicing_with_range.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/special_global_vars.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/stabby_lambda_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/stderr_puts.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/string_concatenation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/string_hash_keys.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/string_literals.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/string_literals_in_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/string_methods.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/strip.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/struct_inheritance.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/symbol_array.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/symbol_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/symbol_proc.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/ternary_parentheses.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_body_on_class.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_body_on_method_definition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_body_on_module.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_comma_in_arguments.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_comma_in_block_args.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_method_end_statement.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trailing_underscore_variable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/trivial_accessors.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/unless_else.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/unpack_first.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/variable_interpolation.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/when_then.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/while_until_do.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/while_until_modifier.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/word_array.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/yoda_condition.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/style/zero_length_predicate.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/team.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/tokens_util.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/util.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/utils/format_string.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/assignment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/branch.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/branchable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/reference.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/scope.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/variable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cop/variable_force/variable_table.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/cops_documentation_generator.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/core_ext/string.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/error.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/ext/processed_source.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/file_finder.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/auto_gen_config_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/base_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/clang_style_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/colorizable.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/disabled_config_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/emacs_style_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/file_list_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/formatter_set.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/fuubar_style_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/html_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/json_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/junit_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/offense_count_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/pacman_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/progress_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/quiet_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/simple_text_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/tap_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/text_util.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/formatter/worst_offenders_formatter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/magic_comment.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/name_similarity.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/options.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/path_util.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/platform.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rake_task.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/remote_config.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/result_cache.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rspec/cop_helper.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rspec/expect_offense.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rspec/host_environment_simulation_helper.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rspec/shared_contexts.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/rspec/support.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/runner.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/string_interpreter.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/target_finder.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/target_ruby.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/version.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/warning.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/gems/rubocop-0.89.1/lib/rubocop/yaml_duplication_checker.rb /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all/bin/rubocop Successfully installed rubocop-0.89.1 1 gem installed mkdir -p debian/rubocop/usr/bin mv debian/rubocop/usr/share/rubygems-integration/all/bin/rubocop debian/rubocop/usr/bin cd debian/rubocop/usr/share/rubygems-integration/all rm -rf bin rm -rf build_info rm -rf cache rm -rf doc rm -rf extensions rmdir plugins cd gems/rubocop-0.89.1 rm -f chmod 644 lib/rubocop.rb lib/rubocop/ast_aliases.rb lib/rubocop/cached_data.rb lib/rubocop/cli.rb lib/rubocop/cli/command.rb lib/rubocop/cli/command/auto_genenerate_config.rb lib/rubocop/cli/command/base.rb lib/rubocop/cli/command/execute_runner.rb lib/rubocop/cli/command/init_dotfile.rb lib/rubocop/cli/command/show_cops.rb lib/rubocop/cli/command/version.rb lib/rubocop/cli/environment.rb lib/rubocop/comment_config.rb lib/rubocop/config.rb lib/rubocop/config_loader.rb lib/rubocop/config_loader_resolver.rb lib/rubocop/config_obsoletion.rb lib/rubocop/config_store.rb lib/rubocop/config_validator.rb lib/rubocop/cop/autocorrect_logic.rb lib/rubocop/cop/badge.rb lib/rubocop/cop/base.rb lib/rubocop/cop/bundler/duplicated_gem.rb lib/rubocop/cop/bundler/gem_comment.rb lib/rubocop/cop/bundler/insecure_protocol_source.rb lib/rubocop/cop/bundler/ordered_gems.rb lib/rubocop/cop/commissioner.rb lib/rubocop/cop/cop.rb lib/rubocop/cop/corrector.rb lib/rubocop/cop/correctors/alignment_corrector.rb lib/rubocop/cop/correctors/condition_corrector.rb lib/rubocop/cop/correctors/each_to_for_corrector.rb lib/rubocop/cop/correctors/empty_line_corrector.rb lib/rubocop/cop/correctors/for_to_each_corrector.rb lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb lib/rubocop/cop/correctors/line_break_corrector.rb lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb lib/rubocop/cop/correctors/ordered_gem_corrector.rb lib/rubocop/cop/correctors/parentheses_corrector.rb lib/rubocop/cop/correctors/percent_literal_corrector.rb lib/rubocop/cop/correctors/punctuation_corrector.rb lib/rubocop/cop/correctors/space_corrector.rb lib/rubocop/cop/correctors/string_literal_corrector.rb lib/rubocop/cop/correctors/unused_arg_corrector.rb lib/rubocop/cop/force.rb lib/rubocop/cop/gemspec/duplicated_assignment.rb lib/rubocop/cop/gemspec/ordered_dependencies.rb lib/rubocop/cop/gemspec/required_ruby_version.rb lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb lib/rubocop/cop/generator.rb lib/rubocop/cop/generator/configuration_injector.rb lib/rubocop/cop/generator/require_file_injector.rb lib/rubocop/cop/ignored_node.rb lib/rubocop/cop/internal_affairs.rb lib/rubocop/cop/internal_affairs/method_name_equal.rb lib/rubocop/cop/internal_affairs/node_destructuring.rb lib/rubocop/cop/internal_affairs/node_type_predicate.rb lib/rubocop/cop/internal_affairs/offense_location_keyword.rb lib/rubocop/cop/internal_affairs/redundant_location_argument.rb lib/rubocop/cop/internal_affairs/redundant_message_argument.rb lib/rubocop/cop/internal_affairs/useless_message_assertion.rb lib/rubocop/cop/layout/access_modifier_indentation.rb lib/rubocop/cop/layout/argument_alignment.rb lib/rubocop/cop/layout/array_alignment.rb lib/rubocop/cop/layout/assignment_indentation.rb lib/rubocop/cop/layout/block_alignment.rb lib/rubocop/cop/layout/block_end_newline.rb lib/rubocop/cop/layout/case_indentation.rb lib/rubocop/cop/layout/class_structure.rb lib/rubocop/cop/layout/closing_heredoc_indentation.rb lib/rubocop/cop/layout/closing_parenthesis_indentation.rb lib/rubocop/cop/layout/comment_indentation.rb lib/rubocop/cop/layout/condition_position.rb lib/rubocop/cop/layout/def_end_alignment.rb lib/rubocop/cop/layout/dot_position.rb lib/rubocop/cop/layout/else_alignment.rb lib/rubocop/cop/layout/empty_comment.rb lib/rubocop/cop/layout/empty_line_after_guard_clause.rb lib/rubocop/cop/layout/empty_line_after_magic_comment.rb lib/rubocop/cop/layout/empty_line_between_defs.rb lib/rubocop/cop/layout/empty_lines.rb lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb lib/rubocop/cop/layout/empty_lines_around_arguments.rb lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb lib/rubocop/cop/layout/empty_lines_around_begin_body.rb lib/rubocop/cop/layout/empty_lines_around_block_body.rb lib/rubocop/cop/layout/empty_lines_around_class_body.rb lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb lib/rubocop/cop/layout/empty_lines_around_method_body.rb lib/rubocop/cop/layout/empty_lines_around_module_body.rb lib/rubocop/cop/layout/end_alignment.rb lib/rubocop/cop/layout/end_of_line.rb lib/rubocop/cop/layout/extra_spacing.rb lib/rubocop/cop/layout/first_argument_indentation.rb lib/rubocop/cop/layout/first_array_element_indentation.rb lib/rubocop/cop/layout/first_array_element_line_break.rb lib/rubocop/cop/layout/first_hash_element_indentation.rb lib/rubocop/cop/layout/first_hash_element_line_break.rb lib/rubocop/cop/layout/first_method_argument_line_break.rb lib/rubocop/cop/layout/first_method_parameter_line_break.rb lib/rubocop/cop/layout/first_parameter_indentation.rb lib/rubocop/cop/layout/hash_alignment.rb lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb lib/rubocop/cop/layout/heredoc_indentation.rb lib/rubocop/cop/layout/indentation_consistency.rb lib/rubocop/cop/layout/indentation_style.rb lib/rubocop/cop/layout/indentation_width.rb lib/rubocop/cop/layout/initial_indentation.rb lib/rubocop/cop/layout/leading_comment_space.rb lib/rubocop/cop/layout/leading_empty_lines.rb lib/rubocop/cop/layout/line_length.rb lib/rubocop/cop/layout/multiline_array_brace_layout.rb lib/rubocop/cop/layout/multiline_array_line_breaks.rb lib/rubocop/cop/layout/multiline_assignment_layout.rb lib/rubocop/cop/layout/multiline_block_layout.rb lib/rubocop/cop/layout/multiline_hash_brace_layout.rb lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb lib/rubocop/cop/layout/multiline_method_call_indentation.rb lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb lib/rubocop/cop/layout/multiline_operation_indentation.rb lib/rubocop/cop/layout/parameter_alignment.rb lib/rubocop/cop/layout/rescue_ensure_alignment.rb lib/rubocop/cop/layout/space_after_colon.rb lib/rubocop/cop/layout/space_after_comma.rb lib/rubocop/cop/layout/space_after_method_name.rb lib/rubocop/cop/layout/space_after_not.rb lib/rubocop/cop/layout/space_after_semicolon.rb lib/rubocop/cop/layout/space_around_block_parameters.rb lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb lib/rubocop/cop/layout/space_around_keyword.rb lib/rubocop/cop/layout/space_around_method_call_operator.rb lib/rubocop/cop/layout/space_around_operators.rb lib/rubocop/cop/layout/space_before_block_braces.rb lib/rubocop/cop/layout/space_before_comma.rb lib/rubocop/cop/layout/space_before_comment.rb lib/rubocop/cop/layout/space_before_first_arg.rb lib/rubocop/cop/layout/space_before_semicolon.rb lib/rubocop/cop/layout/space_in_lambda_literal.rb lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb lib/rubocop/cop/layout/space_inside_array_percent_literal.rb lib/rubocop/cop/layout/space_inside_block_braces.rb lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb lib/rubocop/cop/layout/space_inside_parens.rb lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb lib/rubocop/cop/layout/space_inside_range_literal.rb lib/rubocop/cop/layout/space_inside_reference_brackets.rb lib/rubocop/cop/layout/space_inside_string_interpolation.rb lib/rubocop/cop/layout/trailing_empty_lines.rb lib/rubocop/cop/layout/trailing_whitespace.rb lib/rubocop/cop/legacy/corrections_proxy.rb lib/rubocop/cop/legacy/corrector.rb lib/rubocop/cop/lint/ambiguous_block_association.rb lib/rubocop/cop/lint/ambiguous_operator.rb lib/rubocop/cop/lint/ambiguous_regexp_literal.rb lib/rubocop/cop/lint/assignment_in_condition.rb lib/rubocop/cop/lint/big_decimal_new.rb lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb lib/rubocop/cop/lint/boolean_symbol.rb lib/rubocop/cop/lint/circular_argument_reference.rb lib/rubocop/cop/lint/constant_resolution.rb lib/rubocop/cop/lint/debugger.rb lib/rubocop/cop/lint/deprecated_class_methods.rb lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb lib/rubocop/cop/lint/duplicate_case_condition.rb lib/rubocop/cop/lint/duplicate_elsif_condition.rb lib/rubocop/cop/lint/duplicate_hash_key.rb lib/rubocop/cop/lint/duplicate_methods.rb lib/rubocop/cop/lint/duplicate_rescue_exception.rb lib/rubocop/cop/lint/each_with_object_argument.rb lib/rubocop/cop/lint/else_layout.rb lib/rubocop/cop/lint/empty_conditional_body.rb lib/rubocop/cop/lint/empty_ensure.rb lib/rubocop/cop/lint/empty_expression.rb lib/rubocop/cop/lint/empty_interpolation.rb lib/rubocop/cop/lint/empty_when.rb lib/rubocop/cop/lint/ensure_return.rb lib/rubocop/cop/lint/erb_new_arguments.rb lib/rubocop/cop/lint/flip_flop.rb lib/rubocop/cop/lint/float_comparison.rb lib/rubocop/cop/lint/float_out_of_range.rb lib/rubocop/cop/lint/format_parameter_mismatch.rb lib/rubocop/cop/lint/heredoc_method_call_position.rb lib/rubocop/cop/lint/implicit_string_concatenation.rb lib/rubocop/cop/lint/ineffective_access_modifier.rb lib/rubocop/cop/lint/inherit_exception.rb lib/rubocop/cop/lint/interpolation_check.rb lib/rubocop/cop/lint/literal_as_condition.rb lib/rubocop/cop/lint/literal_in_interpolation.rb lib/rubocop/cop/lint/loop.rb lib/rubocop/cop/lint/missing_cop_enable_directive.rb lib/rubocop/cop/lint/missing_super.rb lib/rubocop/cop/lint/mixed_regexp_capture_types.rb lib/rubocop/cop/lint/multiple_comparison.rb lib/rubocop/cop/lint/nested_method_definition.rb lib/rubocop/cop/lint/nested_percent_literal.rb lib/rubocop/cop/lint/next_without_accumulator.rb lib/rubocop/cop/lint/non_deterministic_require_order.rb lib/rubocop/cop/lint/non_local_exit_from_iterator.rb lib/rubocop/cop/lint/number_conversion.rb lib/rubocop/cop/lint/ordered_magic_comments.rb lib/rubocop/cop/lint/out_of_range_regexp_ref.rb lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb lib/rubocop/cop/lint/percent_string_array.rb lib/rubocop/cop/lint/percent_symbol_array.rb lib/rubocop/cop/lint/raise_exception.rb lib/rubocop/cop/lint/rand_one.rb lib/rubocop/cop/lint/redundant_cop_disable_directive.rb lib/rubocop/cop/lint/redundant_cop_enable_directive.rb lib/rubocop/cop/lint/redundant_require_statement.rb lib/rubocop/cop/lint/redundant_splat_expansion.rb lib/rubocop/cop/lint/redundant_string_coercion.rb lib/rubocop/cop/lint/redundant_with_index.rb lib/rubocop/cop/lint/redundant_with_object.rb lib/rubocop/cop/lint/regexp_as_condition.rb lib/rubocop/cop/lint/require_parentheses.rb lib/rubocop/cop/lint/rescue_exception.rb lib/rubocop/cop/lint/rescue_type.rb lib/rubocop/cop/lint/return_in_void_context.rb lib/rubocop/cop/lint/safe_navigation_chain.rb lib/rubocop/cop/lint/safe_navigation_consistency.rb lib/rubocop/cop/lint/safe_navigation_with_empty.rb lib/rubocop/cop/lint/script_permission.rb lib/rubocop/cop/lint/self_assignment.rb lib/rubocop/cop/lint/send_with_mixin_argument.rb lib/rubocop/cop/lint/shadowed_argument.rb lib/rubocop/cop/lint/shadowed_exception.rb lib/rubocop/cop/lint/shadowing_outer_local_variable.rb lib/rubocop/cop/lint/struct_new_override.rb lib/rubocop/cop/lint/suppressed_exception.rb lib/rubocop/cop/lint/syntax.rb lib/rubocop/cop/lint/to_json.rb lib/rubocop/cop/lint/top_level_return_with_argument.rb lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb lib/rubocop/cop/lint/unified_integer.rb lib/rubocop/cop/lint/unreachable_code.rb lib/rubocop/cop/lint/unreachable_loop.rb lib/rubocop/cop/lint/unused_block_argument.rb lib/rubocop/cop/lint/unused_method_argument.rb lib/rubocop/cop/lint/uri_escape_unescape.rb lib/rubocop/cop/lint/uri_regexp.rb lib/rubocop/cop/lint/useless_access_modifier.rb lib/rubocop/cop/lint/useless_assignment.rb lib/rubocop/cop/lint/useless_else_without_rescue.rb lib/rubocop/cop/lint/useless_setter_call.rb lib/rubocop/cop/lint/void.rb lib/rubocop/cop/message_annotator.rb lib/rubocop/cop/metrics/abc_size.rb lib/rubocop/cop/metrics/block_length.rb lib/rubocop/cop/metrics/block_nesting.rb lib/rubocop/cop/metrics/class_length.rb lib/rubocop/cop/metrics/cyclomatic_complexity.rb lib/rubocop/cop/metrics/method_length.rb lib/rubocop/cop/metrics/module_length.rb lib/rubocop/cop/metrics/parameter_lists.rb lib/rubocop/cop/metrics/perceived_complexity.rb lib/rubocop/cop/metrics/utils/abc_size_calculator.rb lib/rubocop/cop/metrics/utils/code_length_calculator.rb lib/rubocop/cop/metrics/utils/iterating_block.rb lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb lib/rubocop/cop/migration/department_name.rb lib/rubocop/cop/mixin/alignment.rb lib/rubocop/cop/mixin/allowed_methods.rb lib/rubocop/cop/mixin/annotation_comment.rb lib/rubocop/cop/mixin/array_min_size.rb lib/rubocop/cop/mixin/array_syntax.rb lib/rubocop/cop/mixin/auto_corrector.rb lib/rubocop/cop/mixin/check_assignment.rb lib/rubocop/cop/mixin/check_line_breakable.rb lib/rubocop/cop/mixin/code_length.rb lib/rubocop/cop/mixin/configurable_enforced_style.rb lib/rubocop/cop/mixin/configurable_formatting.rb lib/rubocop/cop/mixin/configurable_max.rb lib/rubocop/cop/mixin/configurable_naming.rb lib/rubocop/cop/mixin/configurable_numbering.rb lib/rubocop/cop/mixin/def_node.rb lib/rubocop/cop/mixin/documentation_comment.rb lib/rubocop/cop/mixin/duplication.rb lib/rubocop/cop/mixin/empty_lines_around_body.rb lib/rubocop/cop/mixin/empty_parameter.rb lib/rubocop/cop/mixin/end_keyword_alignment.rb lib/rubocop/cop/mixin/enforce_superclass.rb lib/rubocop/cop/mixin/first_element_line_break.rb lib/rubocop/cop/mixin/frozen_string_literal.rb lib/rubocop/cop/mixin/hash_alignment_styles.rb lib/rubocop/cop/mixin/hash_transform_method.rb lib/rubocop/cop/mixin/heredoc.rb lib/rubocop/cop/mixin/ignored_methods.rb lib/rubocop/cop/mixin/ignored_pattern.rb lib/rubocop/cop/mixin/integer_node.rb lib/rubocop/cop/mixin/interpolation.rb lib/rubocop/cop/mixin/line_length_help.rb lib/rubocop/cop/mixin/match_range.rb lib/rubocop/cop/mixin/method_complexity.rb lib/rubocop/cop/mixin/method_preference.rb lib/rubocop/cop/mixin/min_body_length.rb lib/rubocop/cop/mixin/multiline_element_indentation.rb lib/rubocop/cop/mixin/multiline_element_line_breaks.rb lib/rubocop/cop/mixin/multiline_expression_indentation.rb lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb lib/rubocop/cop/mixin/negative_conditional.rb lib/rubocop/cop/mixin/nil_methods.rb lib/rubocop/cop/mixin/on_normal_if_unless.rb lib/rubocop/cop/mixin/ordered_gem_node.rb lib/rubocop/cop/mixin/parentheses.rb lib/rubocop/cop/mixin/percent_array.rb lib/rubocop/cop/mixin/percent_literal.rb lib/rubocop/cop/mixin/preceding_following_alignment.rb lib/rubocop/cop/mixin/preferred_delimiters.rb lib/rubocop/cop/mixin/range_help.rb lib/rubocop/cop/mixin/rational_literal.rb lib/rubocop/cop/mixin/regexp_literal_help.rb lib/rubocop/cop/mixin/rescue_node.rb lib/rubocop/cop/mixin/safe_assignment.rb lib/rubocop/cop/mixin/space_after_punctuation.rb lib/rubocop/cop/mixin/space_before_punctuation.rb lib/rubocop/cop/mixin/statement_modifier.rb lib/rubocop/cop/mixin/string_help.rb lib/rubocop/cop/mixin/string_literals_help.rb lib/rubocop/cop/mixin/surrounding_space.rb lib/rubocop/cop/mixin/target_ruby_version.rb lib/rubocop/cop/mixin/trailing_body.rb lib/rubocop/cop/mixin/trailing_comma.rb lib/rubocop/cop/mixin/uncommunicative_name.rb lib/rubocop/cop/mixin/unused_argument.rb lib/rubocop/cop/mixin/visibility_help.rb lib/rubocop/cop/naming/accessor_method_name.rb lib/rubocop/cop/naming/ascii_identifiers.rb lib/rubocop/cop/naming/binary_operator_parameter_name.rb lib/rubocop/cop/naming/block_parameter_name.rb lib/rubocop/cop/naming/class_and_module_camel_case.rb lib/rubocop/cop/naming/constant_name.rb lib/rubocop/cop/naming/file_name.rb lib/rubocop/cop/naming/heredoc_delimiter_case.rb lib/rubocop/cop/naming/heredoc_delimiter_naming.rb lib/rubocop/cop/naming/memoized_instance_variable_name.rb lib/rubocop/cop/naming/method_name.rb lib/rubocop/cop/naming/method_parameter_name.rb lib/rubocop/cop/naming/predicate_name.rb lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb lib/rubocop/cop/naming/variable_name.rb lib/rubocop/cop/naming/variable_number.rb lib/rubocop/cop/offense.rb lib/rubocop/cop/registry.rb lib/rubocop/cop/security/eval.rb lib/rubocop/cop/security/json_load.rb lib/rubocop/cop/security/marshal_load.rb lib/rubocop/cop/security/open.rb lib/rubocop/cop/security/yaml_load.rb lib/rubocop/cop/severity.rb lib/rubocop/cop/style/access_modifier_declarations.rb lib/rubocop/cop/style/accessor_grouping.rb lib/rubocop/cop/style/alias.rb lib/rubocop/cop/style/and_or.rb lib/rubocop/cop/style/array_coercion.rb lib/rubocop/cop/style/array_join.rb lib/rubocop/cop/style/ascii_comments.rb lib/rubocop/cop/style/attr.rb lib/rubocop/cop/style/auto_resource_cleanup.rb lib/rubocop/cop/style/bare_percent_literals.rb lib/rubocop/cop/style/begin_block.rb lib/rubocop/cop/style/bisected_attr_accessor.rb lib/rubocop/cop/style/block_comments.rb lib/rubocop/cop/style/block_delimiters.rb lib/rubocop/cop/style/case_equality.rb lib/rubocop/cop/style/case_like_if.rb lib/rubocop/cop/style/character_literal.rb lib/rubocop/cop/style/class_and_module_children.rb lib/rubocop/cop/style/class_check.rb lib/rubocop/cop/style/class_methods.rb lib/rubocop/cop/style/class_vars.rb lib/rubocop/cop/style/collection_methods.rb lib/rubocop/cop/style/colon_method_call.rb lib/rubocop/cop/style/colon_method_definition.rb lib/rubocop/cop/style/command_literal.rb lib/rubocop/cop/style/comment_annotation.rb lib/rubocop/cop/style/commented_keyword.rb lib/rubocop/cop/style/conditional_assignment.rb lib/rubocop/cop/style/constant_visibility.rb lib/rubocop/cop/style/copyright.rb lib/rubocop/cop/style/date_time.rb lib/rubocop/cop/style/def_with_parentheses.rb lib/rubocop/cop/style/dir.rb lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb lib/rubocop/cop/style/documentation.rb lib/rubocop/cop/style/documentation_method.rb lib/rubocop/cop/style/double_cop_disable_directive.rb lib/rubocop/cop/style/double_negation.rb lib/rubocop/cop/style/each_for_simple_loop.rb lib/rubocop/cop/style/each_with_object.rb lib/rubocop/cop/style/empty_block_parameter.rb lib/rubocop/cop/style/empty_case_condition.rb lib/rubocop/cop/style/empty_else.rb lib/rubocop/cop/style/empty_lambda_parameter.rb lib/rubocop/cop/style/empty_literal.rb lib/rubocop/cop/style/empty_method.rb lib/rubocop/cop/style/encoding.rb lib/rubocop/cop/style/end_block.rb lib/rubocop/cop/style/eval_with_location.rb lib/rubocop/cop/style/even_odd.rb lib/rubocop/cop/style/expand_path_arguments.rb lib/rubocop/cop/style/explicit_block_argument.rb lib/rubocop/cop/style/exponential_notation.rb lib/rubocop/cop/style/float_division.rb lib/rubocop/cop/style/for.rb lib/rubocop/cop/style/format_string.rb lib/rubocop/cop/style/format_string_token.rb lib/rubocop/cop/style/frozen_string_literal_comment.rb lib/rubocop/cop/style/global_std_stream.rb lib/rubocop/cop/style/global_vars.rb lib/rubocop/cop/style/guard_clause.rb lib/rubocop/cop/style/hash_as_last_array_item.rb lib/rubocop/cop/style/hash_each_methods.rb lib/rubocop/cop/style/hash_like_case.rb lib/rubocop/cop/style/hash_syntax.rb lib/rubocop/cop/style/hash_transform_keys.rb lib/rubocop/cop/style/hash_transform_values.rb lib/rubocop/cop/style/identical_conditional_branches.rb lib/rubocop/cop/style/if_inside_else.rb lib/rubocop/cop/style/if_unless_modifier.rb lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb lib/rubocop/cop/style/if_with_semicolon.rb lib/rubocop/cop/style/implicit_runtime_error.rb lib/rubocop/cop/style/infinite_loop.rb lib/rubocop/cop/style/inline_comment.rb lib/rubocop/cop/style/inverse_methods.rb lib/rubocop/cop/style/ip_addresses.rb lib/rubocop/cop/style/lambda.rb lib/rubocop/cop/style/lambda_call.rb lib/rubocop/cop/style/line_end_concatenation.rb lib/rubocop/cop/style/method_call_with_args_parentheses.rb lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb lib/rubocop/cop/style/method_call_without_args_parentheses.rb lib/rubocop/cop/style/method_called_on_do_end_block.rb lib/rubocop/cop/style/method_def_parentheses.rb lib/rubocop/cop/style/min_max.rb lib/rubocop/cop/style/missing_else.rb lib/rubocop/cop/style/missing_respond_to_missing.rb lib/rubocop/cop/style/mixin_grouping.rb lib/rubocop/cop/style/mixin_usage.rb lib/rubocop/cop/style/module_function.rb lib/rubocop/cop/style/multiline_block_chain.rb lib/rubocop/cop/style/multiline_if_modifier.rb lib/rubocop/cop/style/multiline_if_then.rb lib/rubocop/cop/style/multiline_memoization.rb lib/rubocop/cop/style/multiline_method_signature.rb lib/rubocop/cop/style/multiline_ternary_operator.rb lib/rubocop/cop/style/multiline_when_then.rb lib/rubocop/cop/style/multiple_comparison.rb lib/rubocop/cop/style/mutable_constant.rb lib/rubocop/cop/style/negated_if.rb lib/rubocop/cop/style/negated_unless.rb lib/rubocop/cop/style/negated_while.rb lib/rubocop/cop/style/nested_modifier.rb lib/rubocop/cop/style/nested_parenthesized_calls.rb lib/rubocop/cop/style/nested_ternary_operator.rb lib/rubocop/cop/style/next.rb lib/rubocop/cop/style/nil_comparison.rb lib/rubocop/cop/style/non_nil_check.rb lib/rubocop/cop/style/not.rb lib/rubocop/cop/style/numeric_literal_prefix.rb lib/rubocop/cop/style/numeric_literals.rb lib/rubocop/cop/style/numeric_predicate.rb lib/rubocop/cop/style/one_line_conditional.rb lib/rubocop/cop/style/option_hash.rb lib/rubocop/cop/style/optional_arguments.rb lib/rubocop/cop/style/optional_boolean_parameter.rb lib/rubocop/cop/style/or_assignment.rb lib/rubocop/cop/style/parallel_assignment.rb lib/rubocop/cop/style/parentheses_around_condition.rb lib/rubocop/cop/style/percent_literal_delimiters.rb lib/rubocop/cop/style/percent_q_literals.rb lib/rubocop/cop/style/perl_backrefs.rb lib/rubocop/cop/style/preferred_hash_methods.rb lib/rubocop/cop/style/proc.rb lib/rubocop/cop/style/raise_args.rb lib/rubocop/cop/style/random_with_offset.rb lib/rubocop/cop/style/redundant_assignment.rb lib/rubocop/cop/style/redundant_begin.rb lib/rubocop/cop/style/redundant_capital_w.rb lib/rubocop/cop/style/redundant_condition.rb lib/rubocop/cop/style/redundant_conditional.rb lib/rubocop/cop/style/redundant_exception.rb lib/rubocop/cop/style/redundant_fetch_block.rb lib/rubocop/cop/style/redundant_file_extension_in_require.rb lib/rubocop/cop/style/redundant_freeze.rb lib/rubocop/cop/style/redundant_interpolation.rb lib/rubocop/cop/style/redundant_parentheses.rb lib/rubocop/cop/style/redundant_percent_q.rb lib/rubocop/cop/style/redundant_regexp_character_class.rb lib/rubocop/cop/style/redundant_regexp_escape.rb lib/rubocop/cop/style/redundant_return.rb lib/rubocop/cop/style/redundant_self.rb lib/rubocop/cop/style/redundant_sort.rb lib/rubocop/cop/style/redundant_sort_by.rb lib/rubocop/cop/style/regexp_literal.rb lib/rubocop/cop/style/rescue_modifier.rb lib/rubocop/cop/style/rescue_standard_error.rb lib/rubocop/cop/style/return_nil.rb lib/rubocop/cop/style/safe_navigation.rb lib/rubocop/cop/style/sample.rb lib/rubocop/cop/style/self_assignment.rb lib/rubocop/cop/style/semicolon.rb lib/rubocop/cop/style/send.rb lib/rubocop/cop/style/signal_exception.rb lib/rubocop/cop/style/single_argument_dig.rb lib/rubocop/cop/style/single_line_block_params.rb lib/rubocop/cop/style/single_line_methods.rb lib/rubocop/cop/style/slicing_with_range.rb lib/rubocop/cop/style/special_global_vars.rb lib/rubocop/cop/style/stabby_lambda_parentheses.rb lib/rubocop/cop/style/stderr_puts.rb lib/rubocop/cop/style/string_concatenation.rb lib/rubocop/cop/style/string_hash_keys.rb lib/rubocop/cop/style/string_literals.rb lib/rubocop/cop/style/string_literals_in_interpolation.rb lib/rubocop/cop/style/string_methods.rb lib/rubocop/cop/style/strip.rb lib/rubocop/cop/style/struct_inheritance.rb lib/rubocop/cop/style/symbol_array.rb lib/rubocop/cop/style/symbol_literal.rb lib/rubocop/cop/style/symbol_proc.rb lib/rubocop/cop/style/ternary_parentheses.rb lib/rubocop/cop/style/trailing_body_on_class.rb lib/rubocop/cop/style/trailing_body_on_method_definition.rb lib/rubocop/cop/style/trailing_body_on_module.rb lib/rubocop/cop/style/trailing_comma_in_arguments.rb lib/rubocop/cop/style/trailing_comma_in_array_literal.rb lib/rubocop/cop/style/trailing_comma_in_block_args.rb lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb lib/rubocop/cop/style/trailing_method_end_statement.rb lib/rubocop/cop/style/trailing_underscore_variable.rb lib/rubocop/cop/style/trivial_accessors.rb lib/rubocop/cop/style/unless_else.rb lib/rubocop/cop/style/unpack_first.rb lib/rubocop/cop/style/variable_interpolation.rb lib/rubocop/cop/style/when_then.rb lib/rubocop/cop/style/while_until_do.rb lib/rubocop/cop/style/while_until_modifier.rb lib/rubocop/cop/style/word_array.rb lib/rubocop/cop/style/yoda_condition.rb lib/rubocop/cop/style/zero_length_predicate.rb lib/rubocop/cop/team.rb lib/rubocop/cop/tokens_util.rb lib/rubocop/cop/util.rb lib/rubocop/cop/utils/format_string.rb lib/rubocop/cop/variable_force.rb lib/rubocop/cop/variable_force/assignment.rb lib/rubocop/cop/variable_force/branch.rb lib/rubocop/cop/variable_force/branchable.rb lib/rubocop/cop/variable_force/reference.rb lib/rubocop/cop/variable_force/scope.rb lib/rubocop/cop/variable_force/variable.rb lib/rubocop/cop/variable_force/variable_table.rb lib/rubocop/cops_documentation_generator.rb lib/rubocop/core_ext/string.rb lib/rubocop/error.rb lib/rubocop/ext/processed_source.rb lib/rubocop/file_finder.rb lib/rubocop/formatter/auto_gen_config_formatter.rb lib/rubocop/formatter/base_formatter.rb lib/rubocop/formatter/clang_style_formatter.rb lib/rubocop/formatter/colorizable.rb lib/rubocop/formatter/disabled_config_formatter.rb lib/rubocop/formatter/emacs_style_formatter.rb lib/rubocop/formatter/file_list_formatter.rb lib/rubocop/formatter/formatter_set.rb lib/rubocop/formatter/fuubar_style_formatter.rb lib/rubocop/formatter/html_formatter.rb lib/rubocop/formatter/json_formatter.rb lib/rubocop/formatter/junit_formatter.rb lib/rubocop/formatter/offense_count_formatter.rb lib/rubocop/formatter/pacman_formatter.rb lib/rubocop/formatter/progress_formatter.rb lib/rubocop/formatter/quiet_formatter.rb lib/rubocop/formatter/simple_text_formatter.rb lib/rubocop/formatter/tap_formatter.rb lib/rubocop/formatter/text_util.rb lib/rubocop/formatter/worst_offenders_formatter.rb lib/rubocop/magic_comment.rb lib/rubocop/name_similarity.rb lib/rubocop/options.rb lib/rubocop/path_util.rb lib/rubocop/platform.rb lib/rubocop/rake_task.rb lib/rubocop/remote_config.rb lib/rubocop/result_cache.rb lib/rubocop/rspec/cop_helper.rb lib/rubocop/rspec/expect_offense.rb lib/rubocop/rspec/host_environment_simulation_helper.rb lib/rubocop/rspec/shared_contexts.rb lib/rubocop/rspec/support.rb lib/rubocop/runner.rb lib/rubocop/string_interpreter.rb lib/rubocop/target_finder.rb lib/rubocop/target_ruby.rb lib/rubocop/version.rb lib/rubocop/warning.rb lib/rubocop/yaml_duplication_checker.rb find lib/ -type d -empty -delete cd - cd - Rewriting shebang line of /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/bin/rubocop dh_installchangelogs -prubocop /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/CHANGELOG.md upstream /usr/bin/ruby2.7 /usr/bin/gem2deb-test-runner ┌──────────────────────────────────────────────────────────────────────────────┐ │ Checking Rubygems dependency resolution on ruby2.7 │ └──────────────────────────────────────────────────────────────────────────────┘ GEM_PATH=/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all:/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/2.7.0:/var/lib/gems/2.7.0:/usr/local/lib/ruby/gems/2.7.0:/usr/lib/ruby/gems/2.7.0:/usr/lib/x86_64-linux-gnu/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.7.0 ruby2.7 -e gem\ \"rubocop\" ┌──────────────────────────────────────────────────────────────────────────────┐ │ Run tests for ruby2.7 from debian/ruby-tests.rake │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all:/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/2.7.0:/var/lib/gems/2.7.0:/usr/local/lib/ruby/gems/2.7.0:/usr/lib/ruby/gems/2.7.0:/usr/lib/x86_64-linux-gnu/ruby/gems/2.7.0:/usr/share/rubygems-integration/2.7.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.7.0 ruby2.7 -S rake -f debian/ruby-tests.rake /usr/bin/ruby2.7 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.10.3/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.10.1/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.10.1/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --exclude-pattern spec/rubocop/config_loader_spec.rb --format documentation Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} Randomized with seed 54071 RuboCop::Cop::Style::HashSyntax configured to enforce no mixed keys accepts new syntax in method calls registers an offense when keys have special symbols and mix styles auto-corrects mixed key hashes registers an offense for mixed syntax when new is possible accepts an empty hash registers an offense when keys have different types and styles accepts new syntax in a hash literal accepts the hash rocket syntax when new is possible registers an offense when keys start with a digit and mix styles accepts hash rockets when keys have special symbols in them accepts old hash rockets style registers an offense when keys have whitespaces and mix styles accepts hash rockets when keys have whitespaces in them accepts new hash style accepts hash rockets when keys start with a digit accepts hash rockets in method calls accepts hash rockets when keys have different types configured to enforce hash rockets style registers offense for Ruby 1.9 style accepts hash rockets in method calls accepts hash rockets in a hash literal registers an offense for 1.9 style in method calls registers an offense for mixed syntax accepts an empty hash UseHashRocketsWithSymbolValues has no impact does not register an offense when there is a symbol value configured to enforce ruby19 style with SpaceAroundOperators enabled auto-corrects a missing space when hash is used as argument registers an offense for mixed syntax when new is possible registers offense when keys start with an uppercase letter accepts hash rockets when symbol keys end with = accepts new syntax in a hash literal registers offense for hash rocket syntax when new is possible accepts hash rockets when symbol characters are not supported registers an offense for hash rockets in method calls preserves quotes during autocorrection accepts an empty hash registers an offense when symbol keys have strings in them accepts new syntax in method calls auto-corrects even if it interferes with SpaceAroundOperators accepts hash rockets when keys have different types if PreferHashRocketsForNonAlnumEndingSymbols is false registers an offense for hash rockets when symbols end with ! registers an offense for hash rockets when symbols end with ? if PreferHashRocketsForNonAlnumEndingSymbols is true accepts hash rockets when symbols end with ! accepts hash rockets when symbols end with ? when using a return value uses `return` registers an offense and corrects when enclosed in parentheses registers an offense and corrects when not enclosed in parentheses with SpaceAroundOperators disabled auto-corrects even if there is no space around => configured to use hash rockets when symbol values are found registers an offense when any element uses a symbol for the value accepts ruby19 syntax when no elements have symbol values accepts an empty hash registers an offense for hashes with elements on multiple lines auto-corrects to hash rockets when all elements have symbol value registers an offense when using hash rockets and no elements have a symbol value accepts ruby19 syntax when no elements have symbol values in method calls registers an offense when any element has a symbol value in method calls accepts hash in ruby19 style with no symbol values accepts both hash rockets and ruby19 syntax in the same code configured to enforce ruby 1.9 style with no mixed keys UseHashRocketsWithSymbolValues enabled accepts hash rockets when keys have different types auto-corrects to hash rockets when all elements have symbol value registers an offense when keys have whitespaces in them registers an offense for mixed syntax when new is possible accepts an empty hash registers an offense when keys have different types and styles registers offense for hash rocket syntax when new is possible registers an offense when any element has a symbol value in method calls registers an offense when keys start with a digit registers an offense when keys have special symbols in them registers an offense for hash rockets in method calls accepts new syntax in a hash literal accepts new syntax when keys are interpolated string accepts new syntax in method calls registers an offense when any element uses a symbol for the value UseHashRocketsWithSymbolValues disabled registers an offense when keys have special symbols in them registers an offense when keys have different types and styles registers offense for hash rocket syntax when new is possible accepts an empty hash accepts new syntax in a hash literal accepts hash rockets when keys have different types registers an offense for mixed syntax when new is possible registers an offense for hash rockets in method calls accepts new syntax in method calls registers an offense when keys have whitespaces in them registers an offense when keys start with a digit accepts new syntax when keys are interpolated string RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout ignores single-line defs ignores defs without params ignores implicit defs new_line style opening brace on separate line from first element detects closing brace on same line as last element autocorrects closing brace on same line from last element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element opening brace on same line as first element detects closing brace on same line as last element allows closing brace on different line from last element autocorrects closing brace on same line as last element allows closing brace on different line from multi-line element detects closing brace on same line as last multiline element symmetrical style opening brace on same line as first element allows closing brace on same line as last element allows closing brace on same line as last multiline element autocorrects closing brace on different line from last element detects closing brace on different line from last element opening brace on separate line from first element autocorrects closing brace on same line from last element detects closing brace on same line as last element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element same_line style opening brace on same line as first element autocorrects closing brace on different line as last element allows closing brace on same line from last element detects closing brace on different line from multiline element allows closing brace on same line as multi-line element detects closing brace on different line from last element opening brace on separate line from first element allows closing brace on same line as last multiline element detects closing brace on different line from last element allows closing brace on same line as last element autocorrects closing brace on different line from last element heredoc auto-corrects safe heredoc offenses ignores heredocs that could share a last line detects heredoc structures that are safe to add to RuboCop::Cop::Style::TrailingCommaInBlockArgs curly brace block format does not register an offense when more than one argument is present with no trailing comma registers an offense when a trailing comma is not needed does not register an offense for keyword arguments preserves semicolons in block/local variables ignores commas in default argument strings does not register an offense for default arguments does not register an offense when no arguments are present does not register an offense when a trailing comma is required do/end block format preserves semicolons in block/local variables does not register an offense when no arguments are present does not register an offense for keyword arguments does not register an offense for default arguments ignores commas in default argument strings does not register an offense when more than one argument is present with no trailing comma registers an offense when a trailing comma is not needed does not register an offense when a trailing comma is required does not register an offense for an empty block when `->` has multiple arguments does not registers an offense when `lambda` has multiple arguments does not register an offense when more than one argument is present with no trailing comma registers an offense and corrects when a trailing comma isn't needed RuboCop::Cop::Lint::UnusedBlockArgument when IgnoreEmptyBlocks config parameter is set registers an offense for a non-empty block with an unused parameter accepts an empty block with a single unused parameter registers an offense for a non-empty block with multiple unused args accepts an empty block with multiple unused parameters inspection in a method calling `binding` without arguments accepts all arguments inside a method definition registers offenses when a lambda block takes arguments and an argument is unused registers an offense and all the arguments are unused registers offenses and suggests using a proc when an optional keyword argument is unused when the method call is `define_method` registers an offense when AllowUnusedKeywordArguments set does not care when the method call is not `define_method` registers an offense when AllowUnusedKeywordArguments set does not care when a variable is not used does not care when a block takes multiple arguments and all arguments are used accepts and an argument is unused registers an offense and one argument is assigned to another, whilst other's value is not used registers an offense and a splat argument is unused registers an offense and preserves splat and arguments are swap-assigned accepts and all the arguments are unused registers offenses and suggests omitting them and unused arguments span multiple lines registers offenses and suggests omitting them and an argument with default value is unused registers an offense and preserves default value when a method argument is not used does not care with an empty block when configured to ignore empty blocks does not register an offense when not configured to ignore empty blocks registers an offense in a method calling `binding` with arguments when a method argument is unused registers an offense when a block have a block local variable and the variable is unused registers an offense when an underscore-prefixed block argument is not used accepts when a block takes single argument and the method call is `define_method` registers an offense and the argument is unused registers an offense and suggests omitting that RuboCop::Cop::Style::HashTransformValues flags _.map {...}.to_h when transform_values could be used does not flag each_with_object when no transformation occurs does not flag each_with_object when receiver is array literal does not flag value transformation in the absence of to_h does not flag value transformation when receiver is array literal does not flag each_with_object when value transformation uses key does not flag each_with_object when its argument is not modified does not flag each_with_object when both key & value are transformed correctly autocorrects _.map{...}.to_h with block does not flag Hash[_.map{...}] when both key & value are transformed flags Hash[_.map{...}] when transform_values could be used flags _.map {...}.to_h when transform_values could be used when line break before `to_h` does not flag _.map{...}.to_h when both key & value are transformed with multiline block flags each_with_object when transform_values could be used with inline block flags each_with_object when transform_values could be used with safe navigation operator flags each_with_object when transform_values could be used RuboCop::Cop::Style::EmptyMethod when configured with expanded style when method is nested in class scope registers an offense for single line method with an empty class method definition allows empty multi line method registers an offense for single line method allows multi line method with a blank line with a non-empty instance method definition allows multi line method allows single line method allows multi line method with a comment with an empty instance method definition allows multi line method registers an offense for single line method allows multi line method with blank line with a non-empty class method definition allows multi line method allows single line method allows multi line method with comment when configured with compact style with a non-empty instance method definition allows single line method allows multi line method allows multi line method with comment with an empty class method definition registers an offense for empty method allows single line method registers an offense for empty method with arguments registers an offense for method with blank line with an empty instance method definition registers an offense for method with blank line registers an offense for method with arguments registers an offense for method with arguments without parens allows single line method registers an offense for empty method registers an offense for method with closing paren on following line with a non-empty class method definition allows multi line method with comment allows multi line method allows single line method RuboCop::Cop::Team #inspect_file returns offenses when done twice allows cops to get ready when autocorrection is enabled still returns offenses does autocorrection when Parser reports non-fatal warning for the file returns offenses from cops returns Parser warning offenses when a cop has no interest in the file returns all offenses except the ones of the cop when Cop#on_* raises an error records Team#errors when a correction raises an error records Team#errors #autocorrect? when the option argument of .new is omitted is expected to be falsey when { auto_correct: true } is passed to .new is expected to be truthy #forces returns force instances when multiple cops joined a same force returns only one force instance when a cop joined a force returns the force when no cops joined force returns nothing #external_dependency_checksum does not error with no cops when multiple cops join returns string when a cop joins returns string when cop with different checksum joins has a different checksum for the whole team #cops returns cop instances when only some cop classes are passed to .new returns only instances of the classes when some classes are disabled with config does not return instances of the classes when incompatible cops are correcting together auto corrects without SyntaxError #debug? when { debug: true } is passed to .new is expected to be truthy when the option argument of .new is omitted is expected to be falsey .new calls mobilize when passed classes accepts cops directly classes RuboCop::Cop::Metrics::PerceivedComplexity when Max is 1 counts only a single method registers an offense for elsif and else blocks registers an offense for a for block registers an offense for || registers an offense for a ternary operator registers an offense for an until block registers an offense for or accepts an empty method accepts a method with no decision points registers an offense for an unless modifier registers an offense for an if modifier registers an offense for a while block counts known iterating block accepts an empty `define_method` accepts complex code outside of methods counts else in a case with no argument registers an offense for a `define_method` does not count unknown block calls registers an offense for and registers an offense for && registers an offense for a case/when block without an expression after case registers an offense for a case/when block deals with nested if blocks containing && and || registers an offense for a rescue block when Max is 2 counts stupid nested if and else blocks when method is in list of ignored methods does not register an offense when using `define_method` does not register an offense when defining a class method does not register an offense when defining an instance method RuboCop::Cop::Style::TrailingBodyOnModule auto-corrects with comment after body registers an offense when body trails after module definition registers offense when module definition uses semicolon accepts regular module auto-corrects when there are multiple semicolons registers offense with multi-line module when module is not on first line of processed_source auto-corrects offense RuboCop::Config #file_to_exclude? when the passed path matches any of patterns to exclude returns true when the passed path does not match any of patterns to exclude returns false #possibly_include_hidden? returns true when Include config includes a regex returns true when Include config only includes regular paths returns true when Include config includes a dotfile in a path returns true when Include config includes a toplevel dotfile #allowed_camel_case_file? when the passed path is a gemspec is expected to equal true when the passed path does not match allowed camel case patterns to include is expected to equal false when the passed path matches allowed camel case patterns to include is expected to equal true #validate when the configuration includes obsolete parameters and cops raises validation error when the configuration includes Lint/Syntax cop when the configuration does not match the default raises validation error when the configuration matches the default does not raise validation error when the configuration includes any common parameter does not raise validation error conflicting Safe settings when the configuration includes an unsafe cop without a declaration of its auto-correction does not raise validation error when the configuration includes an unsafe cop that is explicitly declared to have a safe auto-correction raises validation error when the configuration includes a valid EnforcedStyle does not raise validation error when the configuration includes multiple invalid enforced styles raises validation error when the configuration includes any unrecognized parameter prints a warning message when the configuration includes an empty section raises validation error when the configuration includes an obsolete parameter raises validation error when the empty section is AllCops raises validation error when the configuration includes multiple valid enforced styles does not raise validation error when the configuration includes the obsolete Style/IfUnlessModifier: MaxLineLength parameter raises validation error when the configuration includes an obsolete EnforcedStyle parameter raises validation error when the configuration includes the obsolete Style/WhileUntilModifier: MaxLineLength parameter raises validation error when the configuration includes any unrecognized cop name raises an validation error when the configuration includes multiple but config does not allow raises validation error when the configuration is in the base RuboCop config folder is not validated when all cops are both Enabled and Disabled by default raises validation error when the configuration includes multiple valid enforced styles and one invalid style raises validation error when the configuration includes an invalid enforced style raises validation error when the configuration includes an invalid EnforcedStyle raises validation error when the configuration includes a valid enforced style does not raise validation error when the configuration includes an obsolete cop raises validation error #file_to_include? when the passed path matches any of patterns to include returns true when the passed path does not match any of patterns to include returns false #deprecation_check when there is no AllCops configuration does not yield when there is AllCops configuration if there are no Excludes or Includes keys does not yield if there are is an Includes key yields if there are is an Excludes key yields #make_excludes_absolute when config is in root directory generates valid absolute directory when config is in subdirectory generates valid absolute directory #check when a deprecated configuration is detected prints a warning message for the loaded path whether the cop is enabled when configuration has no mention of a cop enables the cop that is not mentioned when all cops are explicitly enabled by default enables the cop that is not mentioned when all cops are disabled by default disables the cop that is not mentioned when a cop has configuration but no explicit Enabled setting enables the cop by default when an entire cop department is disabled but an individual cop is enabled still disables the cop when an entire cop department is enabled but an individual cop is disabled still disables the cop #patterns_to_exclude when config file has AllCops => Exclude key returns the Exclude value #for_department always returns the department's config accepts a Symbol #for_badge takes into account the department works if department has no config #patterns_to_include when config file has AllCops => Include key returns the Include value RuboCop::Cop::Layout::SpaceBeforeComma does not register an offense for no spaces before comma registers an offense and corrects block argument with space before comma registers an offense and corrects method call arg with space before comma registers an offense and corrects array index with space before comma handles more than one space before a comma RuboCop::Cop::Layout::EmptyLineAfterMagicComment accepts an empty source file registers an offense for documentation immediately following comment accepts a source file with only a magic comment registers an offense when multiple magic comments without empty line accepts code that separates the comment from the code with a newline registers an offense for code that immediately follows comment RuboCop::Cop::Style::ConditionalAssignment IncludeTernaryExpressions false allows assigning any variable type to ternary SingleLineConditionsOnly true registers an offense for assignment to case when then else registers an offense for assignment using []= allows a method call in the subject of a ternary operator registers an offense for assignment to an if then else registers an offense for assignment using a method that ends with an equal sign corrects assignment to a namespaced constant corrects assignment when without `else` branch behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all variable types allows assignment to if without else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsif else registers an offense for assigning any variable type to case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like single line condition auto-correct corrects assignment to an if elsif else condition corrects assignment to a ternary operator corrects assignment to a case when else condition corrects assignment to a case when else with multiple whens corrects assignment to an if elsif else with multiple elsifs corrects assignment to an if else condition corrects assignment to an unless else condition behaves like all assignment types registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when behaves like multiline all variable types allow assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else assigning any variable type to a multiline unless else assigning any variable type to a multiline if else behaves like all assignment types registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to ternary behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else behaves like multiline all variable types allow assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all variable types registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to ternary registers an offense for assigning any variable type to case when allows assignment to if without else does not crash for rescue assignment behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense for any assignment to unless else allows any assignment to if without else behaves like all assignment types allows any assignment to if without else registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else registers an offense for any assignment to ternary behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense for any assignment to ternary allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense any assignment to case when behaves like all assignment types registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsif else does not crash for rescue assignment registers an offense assigning any variable type to unless else allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to if else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to if else allows any assignment to if without else registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all variable types does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to ternary registers an offense for assigning any variable type to case when allows assignment to if without else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment behaves like multiline all variable types allow assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline case when assigning any variable type to a multiline if elsif else assigning any variable type to a multiline if else behaves like multiline all variable types allow assigning any variable type to a multiline unless else assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else behaves like all assignment types registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when allows any assignment to if without else behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else behaves like all assignment types registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all variable types allow assigning any variable type to a multiline if elsif else assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch for loop ignores pseudo assignments in a for loop behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all variable types registers an offense assigning any variable type to if elsif else does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment allows assignment to if without else registers an offense assigning any variable type to ternary registers an offense for assigning any variable type to case when behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all variable types allow assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to if else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to ternary behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like all variable types registers an offense assigning any variable type to ternary registers an offense assigning any variable type to unless else does not crash for rescue assignment registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to if else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else allows assignment to if without else behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when behaves like all variable types registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to ternary does not crash for rescue assignment registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else allows assignment to if without else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense for any assignment to unless else registers an offense any assignment to case when allows any assignment to if without else behaves like all assignment types registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense for any assignment to ternary behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all variable types allow assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when SingleLineConditionsOnly false corrects assignment to an unless else condition corrects assignment to a case when else with multiple whens corrects assignment to a multiline if elsif else condition corrects assignment to a multiline if else condition corrects assignment to an if elsif else with multiple elsifs corrects assignment to a case when else condition behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else does not crash for rescue assignment registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to ternary allows assignment to if without else registers an offense assigning any variable type to if else behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all variable types registers an offense assigning any variable type to if else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to unless else allows assignment to if without else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else does not crash for rescue assignment behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else behaves like all assignment types registers an offense for any assignment to ternary allows any assignment to if without else registers an offense any assignment to case when registers an offense for any assignment to unless else registers an offense any assignment to if else behaves like all variable types registers an offense assigning any variable type to if elsewith multiple assignment registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else registers an offense assigning any variable type to ternary allows assignment to if without else does not crash for rescue assignment registers an offense assigning any variable type to if else behaves like all variable types registers an offense assigning any variable type to if else registers an offense assigning any variable type to unless else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary does not crash for rescue assignment registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if elsewith multiple assignment allows assignment to if without else behaves like all assignment types registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else registers an offense any assignment to case when behaves like all assignment types registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like all assignment types allows any assignment to if without else registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to unless else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense for any assignment to unless else registers an offense any assignment to case when behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all assignment types registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when registers an offense any assignment to if else behaves like all assignment types registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like all variable types registers an offense assigning any variable type to ternary does not crash for rescue assignment registers an offense assigning any variable type to if elsif else allows assignment to if without else registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense for any assignment to ternary behaves like multiline all variable types offense assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline case when assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary does not crash for rescue assignment allows assignment to if without else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if elsif else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all variable types offense assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else assigning any variable type to a multiline unless else assigning any variable type to a multiline case when behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to if else behaves like all variable types registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if else allows assignment to if without else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types allows any assignment to if without else registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like single line condition auto-correct corrects assignment to an unless else condition corrects assignment to an if else condition corrects assignment to an if elsif else with multiple elsifs corrects assignment to a case when else condition corrects assignment to an if elsif else condition corrects assignment to a case when else with multiple whens corrects assignment to a ternary operator behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like multiline all variable types offense assigning any variable type to a multiline if elsif else assigning any variable type to a multiline case when assigning any variable type to a multiline if else assigning any variable type to a multiline unless else assigning any variable type to an if else with multiline in one branch behaves like multiline all variable types offense assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline case when assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else behaves like all assignment types allows any assignment to if without else registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all variable types offense assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else assigning any variable type to a multiline if else assigning any variable type to a multiline unless else RuboCop::Cop::Lint::EmptyWhen when a `when` body is missing registers an offense for missing when ... then body followed by else registers an offense for missing when body with a comment registers an offense for missing when ... then body registers an offense for missing when body with a comment followed by else registers an offense when case line has no expression registers an offense for a missing when body registers an offense for missing when body followed by else when `AllowComments: true` accepts an empty when body with a comment when a `when` body is present accepts with no case line expression accepts case with when ... then statements accepts case with when bodies and else clause accepts case with when ... then statements and else clause accepts case with when bodies when `AllowComments: false` registers an offense for empty when body with a comment RuboCop::Cop::Style::MultipleComparison registers an offense when `a` is compared three times does not register an offense for comparing lvars when a string is on the lefthand side does not register an offense for a duplicated condition does not register an offense for comparing multiple int literals does not register an offense for Array#include? does not register an offense for a == b || b == a does not register an offense for comparing an lvar registers an offense when `a` is compared three times, once on the righthand side registers an offense when `a` is compared three times on the right hand side registers an offense when `a` is compared twice does not register an offense for comparing lvars does not register an offense for comparing multiple literal strings registers an offense when multiple comparison is not part of a conditional RuboCop::Cop::Style::SingleLineBlockParams finds incorrectly named parameters with leading underscores allows calls with proper argument names does not report when destructuring is used allows an unused parameter to have a leading underscore ignores do..end blocks finds wrong argument names in calls with different syntax does not report if no block arguments are present ignores :reduce symbols RuboCop::Cop::Layout::TrailingEmptyLines when EnforcedStyle is final_newline registers an offense for multiple trailing blank lines registers an offense for multiple blank lines in an empty file auto-corrects unwanted blank lines in an empty file auto-corrects unwanted blank lines registers an offense for no final newline after assignment accepts final blank lines if they come after __END__ in empty file auto-corrects even if some lines have space accepts final blank lines if they come after __END__ accepts an empty file accepts final newline registers an offense for no final newline after block comment when EnforcedStyle is final_blank_line registers an offense for multiple blank lines in an empty file auto-corrects missing newline accepts final blank line auto-corrects unwanted blank lines auto-corrects missing blank line auto-corrects unwanted blank lines in an empty file registers an offense for multiple trailing blank lines registers an offense for no final newline registers an offense for final newline RuboCop::Cop::Style::NumericPredicate when configured to enforce numeric predicate methods when checking if a number is positive registers an offense registers an offense in yoda condition with a complex expression registers an offense registers an offense in yoda condition with checking if a number is not zero allows comparing against a complex expression allows comparing against a variable allows comparing against a global variable when checking if a number is negative registers an offense in yoda condition registers an offense with a complex expression registers an offense in yoda condition registers an offense when checking if a number is zero registers an offense registers an offense with a complex expression allows comparing against a global variable when comparing against a method argument variable registers an offense with complex expression registers an offense when there are ignored methods in argument ignored method allows checking if a number is positive allows checking if a number is negative not ignored method registers an offense for checking if a number is negative registers an offense for checking if a number is positive in block ignored method allows checking if a number is positive allows checking if a number is negative not ignored method registers an offense for checking if a number is negative registers an offense for checking if a number is positive simple method call `EnforcedStyle` is `predicate` allows checking if a number is zero `EnforcedStyle` is `comparison` allows checking if a number is zero when configured to enforce numeric comparison methods registers an offense for checking if a number is negative registers an offense for checking if a number is positive allows checking if a number is not zero registers an offense for checking if a number is zero RuboCop::Cop::Lint::DeprecatedOpenSSLConstant does not register an offense when building digest using an algorithm string does not register an offense with cipher constant and send argument is a method does not register an offense when using ::Digest class methods with an algorithm string and value registers an offense when using ::Digest class methods on an algorithm constant and corrects registers an offense when using an digest constant with chained methods and corrects registers an offense with cipher constant and one argument and corrects does not register an offense when using cipher with a string registers an offense with AES + blocksize constant and mode argument and corrects registers an offense with AES + blocksize constant and corrects registers an offense when building an instance using an digest constant and corrects does not register an offense with cipher constant and argument is a variable registers an offense with cipher constant and double quoted string argument and corrects registers an offense with cipher constant and two arguments and corrects does not register an offense with cipher constant and argument is a constant when used in a block registers an offense when using ::Digest class methods on an algorithm constant and corrects RuboCop::PathUtil #match_path? does not match file in a subdirectory matches glob expressions matches regexps does not match invalid UTF-8 paths matches dir/** for hidden file does not match dir/** for file in hidden dir matches strings to the full path #absolute? returns a falsey value for a path beginning with a directory name returns a truthy value for a path beginning with slash #relative_path builds paths relative to PWD by default as a stop-gap supports custom base paths RuboCop::Cop::Style::HashLikeCase MinBranchesCount: 2 does not register an offense when using `case-when` with literal bodies of different types registers an offense when using `case-when` with symbol conditions and literal bodies of the same type does not register an offense when using `case-when` with non-literals in conditions does not register an offense when using `case-when` with literals of different types as conditions registers an offense when using `case-when` with string conditions and literal bodies of the same type does not register an offense when using `case-when` with non-literal bodies does not register an offense when `case` has an `else` branch MinBranchesCount: 3 does not register an offense when branches count is less than required RuboCop::Cop::Style::RedundantConditional registers an offense for if/else with boolean results registers an offense for if/elsif/else with boolean results registers an offense for if/elsif/else with negated boolean results allows ternary with non-boolean results does not register an offense for if/else with non-boolean results registers an offense for ternary with negated boolean results does not register an offense for if/elsif/else with non-boolean results registers an offense for if/else with negated boolean results registers an offense for ternary with boolean results RuboCop::Cop::Lint::Syntax .offenses_from_processed_source with a parser error returns an offense with --display-cop-names option returns an offense with cop name with a diagnostic error returns an offense with --display-cop-names option returns an offense with cop name with --auto-correct-all --disable-uncorrectable options returns an offense RuboCop::Cop::Lint::UnreachableCode accepts `exit!` is in `else` branch only accepts code with conditional `break` accepts `exit` is in `case` branch without else registers an offense for `throw` in all `case` branches accepts code with conditional `fail` accepts `retry` is in `else` branch only registers an offense for `exit!` in all `if` branches registers an offense for `throw` in all `if` and `elsif` branches accepts `return` as the final expression accepts `abort` as the final expression registers an offense for `exit` in `begin` accepts `exit` is in all `if` branchsi accepts `raise` is not in `elsif` branch accepts `throw` is in `else` branch only accepts `exit` is in `if` branch only accepts code with conditional `return` accepts `retry` is in `if` branch only accepts `break` is in `if` branch only accepts `fail` is not in `elsif` branch registers an offense for `break` before other statements registers an offense for `raise` in all `case` branches registers an offense for `break` in all `if` brancheswith other expressions accepts `exit!` is in `case` branch without else registers an offense for `fail` in `begin` registers an offense for `break` in all `if` branches accepts `return` is not in `elsif` branch accepts `next` is in `if` branch only registers an offense for `fail` before other statements registers an offense for `retry` in all `if` and `elsif` branches accepts `fail` as the final expression accepts `retry` is in `if`, and without `else` accepts `next` is in `else` branch only registers an offense for `raise` before other statements accepts `raise` is in `case` branch without else accepts `fail` is in `case` branch without else registers an offense for `exit!` in all `if` and `elsif` branches registers an offense for `abort` in all `if` brancheswith other expressions accepts `redo` is not in `elsif` branch registers an offense for `return` in all `if` brancheswith other expressions accepts code with conditional `abort` registers an offense for `return` before other statements accepts `next` is not in `elsif` branch accepts `redo` as the final expression accepts `abort` is in `if`, and without `else` registers an offense for `exit` in all `if` brancheswith other expressions registers an offense for `fail` in all `if` branches registers an offense for `return` in all `if` and `elsif` branches registers an offense for `raise` in all `if` branches registers an offense for `fail` in all `if` and `elsif` branches accepts code with conditional `throw` accepts `throw` is in `case` branch without else accepts code with conditional `redo` accepts `exit!` is in `if` branch only accepts `break` is in `else` branch only registers an offense for `retry` before other statements accepts `break` is in all `if` branchsi registers an offense for `exit` in all `case` branches accepts code with conditional `exit!` registers an offense for `break` in `begin` accepts `fail` is in `else` branch only accepts `break` is not in `elsif` branch registers an offense for `retry` in all `if` brancheswith other expressions accepts code with conditional `retry` registers an offense for `break` in all `if` and `elsif` branches accepts `break` is in `case` branch without else accepts `fail` is in `if` branch only accepts `return` is in `if` branch only registers an offense for `next` before other statements registers an offense for `throw` before other statements registers an offense for `redo` in all `case` branches accepts `redo` is in `case` branch without else accepts `exit!` is in all `if` branchsi registers an offense for `exit` in all `if` and `elsif` branches registers an offense for `redo` in all `if` branches registers an offense for `redo` before other statements accepts `exit` is in `else` branch only accepts `next` as the final expression accepts `return` is in `if`, and without `else` accepts `retry` is not in `elsif` branch registers an offense for `abort` before other statements accepts `retry` as the final expression registers an offense for `next` in all `if` and `elsif` branches registers an offense for `redo` in `begin` registers an offense for `next` in `begin` registers an offense for `raise` in `begin` accepts `next` is in `case` branch without else registers an offense for `retry` in all `if` branches accepts `abort` is in `else` branch only registers an offense for `retry` in all `case` branches registers an offense for `next` in all `if` brancheswith other expressions registers an offense for `exit` in all `if` branches accepts `redo` is in `if` branch only registers an offense for `next` in all `if` branches registers an offense for `throw` in `begin` accepts `return` is in `else` branch only accepts `retry` is in `case` branch without else registers an offense for `return` in `begin` accepts `next` is in all `if` branchsi registers an offense for `abort` in all `if` and `elsif` branches accepts `fail` is in all `if` branchsi registers an offense for `exit!` before other statements accepts `break` as the final expression accepts `exit` is not in `elsif` branch accepts `raise` is in `if` branch only registers an offense for `redo` in all `if` and `elsif` branches accepts `exit` is in `if`, and without `else` accepts `exit!` is in `if`, and without `else` accepts `redo` is in all `if` branchsi accepts `return` is in all `if` branchsi accepts `abort` is in `case` branch without else accepts `abort` is in `if` branch only registers an offense for `throw` in all `if` branches accepts `abort` is in all `if` branchsi accepts `redo` is in `if`, and without `else` accepts code with conditional `raise` registers an offense for `exit!` in `begin` registers an offense for `raise` in all `if` brancheswith other expressions registers an offense for `fail` in all `if` brancheswith other expressions accepts `next` is in `if`, and without `else` accepts `exit!` is not in `elsif` branch accepts `raise` is in all `if` branchsi accepts `break` is in `if`, and without `else` accepts code with conditional `exit` registers an offense for `throw` in all `if` brancheswith other expressions accepts `fail` is in `if`, and without `else` accepts `return` is in `case` branch without else accepts `exit!` as the final expression registers an offense for `break` in all `case` branches registers an offense for `abort` in `begin` accepts `abort` is not in `elsif` branch registers an offense for `exit!` in all `case` branches registers an offense for `retry` in `begin` accepts `redo` is in `else` branch only registers an offense for `exit` before other statements accepts `retry` is in all `if` branchsi accepts `raise` is in `if`, and without `else` registers an offense for `raise` in all `if` and `elsif` branches registers an offense for `return` in all `case` branches registers an offense for `fail` in all `case` branches registers an offense for `next` in all `case` branches registers an offense for `exit!` in all `if` brancheswith other expressions accepts `throw` is in all `if` branchsi registers an offense for `abort` in all `if` branches accepts `raise` is in `else` branch only registers an offense for `redo` in all `if` brancheswith other expressions registers an offense for `return` in all `if` branches accepts code with conditional `next` accepts `exit` as the final expression accepts `throw` is in `if` branch only accepts `throw` as the final expression registers an offense for `abort` in all `case` branches accepts `throw` is not in `elsif` branch accepts `throw` is in `if`, and without `else` accepts `raise` as the final expression RuboCop::Cop::Layout::SpaceBeforeBlockBraces with invalid value for EnforcedStyleForEmptyBraces fails with an error when EnforcedStyle is space accepts braces surrounded by spaces registers an offense and corrects multiline block where the left brace has no outer space registers an offense and corrects left brace without outer space registers an offense and corrects opposite + correct style with space before empty braces not allowed accepts empty braces without outer space registers an offense and corrects empty braces with space before empty braces allowed registers an offense and corrects empty braces accepts empty braces with outer space when EnforcedStyle is no_space registers an offense and corrects braces surrounded by spaces accepts left brace without outer space registers an offense and corrects correct + opposite style with `EnforcedStyle` of `Style/BlockDelimiters` accepts left brace without outer space RuboCop::Cop::Style::AsciiComments accepts comments with only ascii chars registers an offense for comments with mixed chars registers an offense for a comment with non-ascii chars when certain non-ascii chars are allowed registers an offense for comments with non-allowed non-ascii chars accepts comment with allowed non-ascii chars RuboCop::Cop::VariableForce::Scope #each_node inner scope boundary handling when there's a singleton method definition yields only the defs node and the method host node when there's a method invocation with block yields only the block node and the child send node outer scope boundary handling when the scope is module yields the body nodes when the scope is singleton method yields the argument and the body nodes when the scope is class yields the body nodes when the scope is block yields the argument and the body nodes when the scope is instance method yields the argument and the body nodes when the scope is singleton class yields the body nodes when the scope is top level yields the body nodes #include? with node of the scope itself is expected to equal false with child node the scope includes is expected to equal true with child node the scope does not include is expected to equal false with descendant node the scope does not include is expected to equal false with ancestor node the scope does not include is expected to equal false #body_node when the scope is block returns the body node when the scope is singleton method returns the body node when the scope is instance method returns the body node when the scope is class returns the body node when the scope is top level returns the body node when the scope is module returns the body node when the scope is singleton class returns the body node .new when lvasgn node is passed accepts that as top level scope when begin node is passed accepts that as top level scope #name when the scope is singleton method definition returns the method name when the scope is instance method definition returns the method name RuboCop::Formatter::DisabledConfigFormatter when no files are inspected creates a .rubocop_todo.yml even in such case when exclude_limit option is omitted disables the cop with 15 offending files when any offenses are detected displays YAML configuration disabling all cops with offenses when there's .rubocop.yml merges in excludes from .rubocop.yml with auto-correct supported cop adds a comment about --auto-correct option when exclude_limit option is passed respects the file exclusion list limit RuboCop::Cop::RangeHelp source indicated by #range_by_whole_lines with end of one line without include_final_newline is expected to eq "puts 'example'" with include_final_newline is expected to eq "puts 'example'\n" with a whole line except newline selected without include_final_newline is expected to eq "puts 'example'" with include_final_newline is expected to eq "puts 'example'\n" when part of a single line is selected without include_final_newline is expected to eq "puts 'example'" with include_final_newline is expected to eq "puts 'example'\n" with parts of two lines without include_final_newline is expected to eq "puts 'example'\nputs 'another example'" with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n" with parts of four lines without include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n\nsomething_else" with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n\nsomething_else\n" with a whole line plus beginning of next line without include_final_newline is expected to eq "puts 'example'\nputs 'another example'" with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n" with beginning of one line with include_final_newline is expected to eq "puts 'another example'\n" without include_final_newline is expected to eq "puts 'another example'" when source doesn't end with a newline with include_final_newline is expected to eq 30 is expected to eq "newline_at_end" without include_final_newline is expected to eq "newline_at_end" source indicated by #range_with_surrounding_space when side is :left is expected to eq " a(2)" when side is :right is expected to eq "a(2) " when side is :both is expected to eq " a(2) " source indicated by #range_with_surrounding_comma when side is :both is expected to eq ",Error," when side is :left is expected to eq ",Error" when side is :right is expected to eq "Error," RuboCop::Cop::InternalAffairs::NodeTypePredicate does not register an offense for a predicate node type check comparison node type check registers an offense and auto-corrects RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets does not register offense for any kind of reference brackets with space inside empty brackets not allowed registers an offense and corrects empty brackets with multiple spaces inside registers an offense and corrects multiline spaces registers an offense and corrects empty brackets with 1 space inside accepts empty brackets with no space inside with space inside empty braces allowed registers an offense and corrects empty brackets with no space inside registers an offense and corrects empty brackets with more than one space inside accepts empty brackets with space inside when EnforcedStyle is no_space does not register offense for valid 2-dimensional array does not register offense for valid multiline array does not register offense when contains an array literal as an argument after a heredoc is started does not register offense for arrays using ref brackets does not register offense when bottom bracket gets its own line & has trailing method registers an offense and corrects 2 arrays on one line does not register offense for arrays with no spaces accepts a multiline array with whitespace before end bracket does not register offense for indented array when bottom bracket gets its own line & is misaligned accepts square brackets as method name does not register offense for array when brackets get own line registers an offense and corrects an array literal as an argument with trailing whitespace after a heredoc is started registers an offense and corrects array brackets with leading whitespace registers an offense and corrects an array when two on one line registers an offense and corrects array brackets with trailing whitespace accepts space inside array brackets if with comment accepts square brackets called with method call syntax registers an offense and corrects multiline array on end bracketwith trailing method does not register offense when bottom bracket gets its own line indented with tabs registers an offense and corrects multiline array on end bracket does not register offense when 2 arrays on one line when EnforcedStyle is space does not register offense for valid 2-dimensional array behaves like space inside arrays registers an offense and corrects an array missing whitespace when there is more than one array on a line does not register offense when 2 arrays on one line registers an offense and corrects multiline array on end bracketwith trailing method registers an offense and corrects array brackets with no leading whitespace registers an offense and corrects array brackets with no trailing whitespace does not register offense when bottom bracket gets its own line & has trailing method registers an offense and corrects multiline array on end bracket does not register offense for indented array when bottom bracket gets its own line & is misaligned accepts square brackets called with method call syntax register an offense and corrects when 2 arrays are on one line does not register offense for array when brackets get their own line accepts space inside array brackets with comment does not register offense for arrays with spaces accepts square brackets as method name does not register offense for valid multiline array does not register offense for arrays using ref brackets when EnforcedStyle is compact does not register offense for valid 4-dimensional array does not register offense for valid 3-dimensional array accepts multiline array registers an offense and corrects space between 2 opening brackets registers an offense and corrects space between 2 closing brackets does not register offense for valid 2-dimensional array registers an offense and corrects 3-dimensional array with extra spaces registers an offense and corrects 2-dimensional array with extra spaces behaves like space inside arrays registers an offense and corrects multiline array on end bracket does not register offense for arrays with spaces registers an offense and corrects array brackets with no trailing whitespace registers an offense and corrects array brackets with no leading whitespace accepts square brackets called with method call syntax registers an offense and corrects an array missing whitespace when there is more than one array on a line does not register offense for indented array when bottom bracket gets its own line & is misaligned does not register offense for arrays using ref brackets accepts square brackets as method name does not register offense when bottom bracket gets its own line & has trailing method does not register offense for valid multiline array accepts space inside array brackets with comment does not register offense for array when brackets get their own line registers an offense and corrects multiline array on end bracketwith trailing method register an offense and corrects when 2 arrays are on one line does not register offense when 2 arrays on one line multiline array does not collapse successive right-brackets registers an offense and corrects multiline array does not collapse successive left-brackets auto-corrects registers an offense multiline array does not collapse any successive brackets does not auto-corrects registers an offense RuboCop::Cop::Lint::SafeNavigationChain accepts usages of ordinary method chain registers an offense for safe navigation with > operator accepts usages of safe navigation with && operator accepts usages of method chain with safe navigation only registers an offense for safe navigation with + operator registers an offense for safe navigation with >= operator accepts usages of safe navigation with | operator accepts usages of safe navigation at last only with argument registers an offense for ordinary method chain exists after safe navigation method call with a block-pass registers an offense for safe navigation with [] operator accepts usages of safe navigation with === operator accepts usages of method chain with safe navigation only with argument accepts usages of safe navigation with `present?` method registers an offense for safe navigation with <= operator registers an offense for ordinary method call exists after safe navigation method call accepts usages of safe navigation with `to_d` method registers an offense for ordinary method chain exists after safe navigation method call registers an offense for ordinary method call exists after safe navigation method call with an argument accepts usages of safe navigation with assignment method accepts usages of safe navigation at last only accepts usages of safe navigation with `try` method registers an offense for safe navigation with < operator accepts usages of safe navigation with == operator accepts usages of safe navigation with self assignment method registers an offense for ordinary method chain exists after safe navigation method call with an argument registers an offense for safe navigation with []= operator accepts usages of safe navigation with `nil?` method accepts usages of ordinary method chain with argument accepts usages of safe navigation with `blank?` method accepts usages of safe navigation with & operator registers an offense for ordinary method chain exists after safe navigation method call with a block accepts usages of safe navigation with || operator proper highlighting when in a method when in a begin when there are methods after when used with a modifier if when there are methods before >= Ruby 2.7 registers an offense for ordinary method chain exists after safe navigation method call with a block using numbered parameter RuboCop::Cop::Style::ArrayJoin autocorrects '*' to 'join' when there are no spaces registers an offense for an array followed by string autocorrects '*' to 'join' when setting to a variable does not register an offense for numbers does not register an offense for ambiguous cases RuboCop::Cop::Offense does not blow up if a message contains % redefines == to compare offenses based on their contents is frozen has a few required attributes overrides #to_s #message is frozen #severity is frozen #severity_level when severity is :fatal is 5 when severity is :refactor is 1 #location is frozen offenses that span part of a line highlights the first line when unknown severity is passed raises error #cop_name is frozen offenses that span multiple lines highlights the first line #<=> when receiver has {:line=>6, :cop=>"A"} and other has {:line=>5, :cop=>"B"} returns 1 when receiver has {:cop=>"B"} and other has {:cop=>"A"} returns 1 when receiver has {:col=>6, :cop=>"A"} and other has {:col=>5, :cop=>"B"} returns 1 when receiver has {:line=>6, :col=>4} and other has {:line=>5, :col=>5} returns 1 when receiver has {} and other has {} returns 0 when receiver has {:line=>5, :col=>6} and other has {:line=>5, :col=>5} returns 1 when receiver has {:line=>6} and other has {:line=>5} returns 1 RuboCop::Cop::Style::ZeroLengthPredicate when name of the variable is `size` or `length` accepts inequality check accepts equality check accepts comparison with strings registers an offense for `0 != string.size` registers an offense for `string.size != 0` registers an offense for `string.size == 0` registers an offense for `0 == string.size` when inspecting a Tempfile object does not register an offense does not register an offense with top-level ::Tempfile with arrays registers an offense for `1 > array.size` registers an offense for `array.size != 0` registers an offense for `0 == array.size` registers an offense for `0 != array.length` registers an offense for `array.length == 0` registers an offense for `array.size == 0` registers an offense for `array.length < 1` registers an offense for `0 == array.length` registers an offense for `0 != array.size` registers an offense for `array.size < 1` registers an offense for `array.length != 0` registers an offense for `1 > array.length` registers an offense for `0 < array.length registers an offense for `0 < array.size` registers an offense for `array.size > 0` registers an offense for `array.length > 0` with collection variables registers an offense for `collection.size != 0` registers an offense for `0 != collection.size` registers an offense for `collection.size == 0` registers an offense for `0 == collection.size` when inspecting a File::Stat object does not register an offense with ::File does not register an offense when inspecting a StringIO object when initialized with a string does not register an offense with top-level ::StringIO does not register an offense when initialized without arguments does not register an offense with top-level ::StringIO does not register an offense with hashes registers an offense for `hash.size == 0` registers an offense for `0 != hash.size` registers an offense for `0 == hash.size registers an offense for `hash.size != 0` RuboCop::Cop::Style::FrozenStringLiteralComment always registers an offense for having a frozen string literal comment under ruby code accepts a frozen string literal comment below shebang and encoding comments registers an offense for not having a frozen string literal comment under an encoding comment accepts a disabled frozen string literal below a shebang comment accepts a frozen string literal below a shebang comment accepts a disabled frozen string literal below an encoding comment accepts a source with no tokens accepts a frozen string literal on the top line registers an offense for not having a frozen string literal comment under an encoding comment separated by a newline accepts a disabled frozen string literal on the top line accepts an emacs style combined magic comment accepts a frozen string literal comment below shebang above an encoding comments accepts an empty source accepts a disabled frozen string literal comment below shebang above an encoding comments accepts a frozen string literal comment after other comments accepts a disabled frozen string literal comment below shebang and encoding comments accepts a frozen string literal comment below newline-separated magic comments registers an offense with an empty line between magic comments and the code registers an offense for arbitrary tokens registers an offense for not having a frozen string literal comment on the top line registers an offense for not having a frozen string literal comment under a shebang and an encoding comment accepts a frozen string literal below an encoding comment registers an offense for an extra first empty line registers an offense for not having a frozen string literal comment when there is only a shebang registers an offense for not having a frozen string literal comment under a shebang always_true registers an offense for arbitrary tokens below a shebang comment registers an offense for not having a frozen string literal comment under an encoding comment and extra space accepts a frozen string literal below an encoding comment registers an offense for arbitrary tokens below an encoding comment and extra space registers an offense for arbitrary tokens below shebang above an encoding comments accepts a frozen string literal comment below shebang, an encoding comment, and extra space registers an offense for not having a frozen string literal comment under an encoding comment registers an offense for a disabled frozen string literal comment under shebang with no other code accepts a frozen string literal on the top line accepts a frozen string literal comment below shebang above an encoding comments registers an offense for a disabled frozen string literal below an encoding comment registers an offense for a disabled frozen string literal comment below shebang above an encoding comments registers an offense for arbitrary tokens under shebang with no other code accepts a source with no tokens registers an offense for not having a frozen string literal comment on the top line registers an offense for not having a frozen string literal comment under a shebang, an encoding comment, and extra space accepts an empty source registers an offense for arbitrary tokens above an empty line registers an offense for having a frozen string literal comment under ruby code registers an offense for a disabled frozen string literal below a shebang comment registers an offense for arbitrary tokens accepts an emacs style combined magic comment registers an offense for arbitrary tokens below shebang and encoding comments registers an offense for not having a frozen string literal comment under a shebang and an encoding comment registers an offense for a disabled frozen string literal comment below shebang, an encoding comment, and extra space registers an offense for an extra first empty line registers an offense for a disabled frozen string literal comment below shebang and encoding comments registers an offense for arbitrary tokens below an encoding comment accepts a frozen string literal comment under shebang with no other code accepts a frozen string literal comment after other comments registers an offense for a disabled frozen string literal on the top line registers an offense for a disabled frozen string literal comment below an encoding comment and extra space registers an offense for a disabled frozen string literal above an empty line registers an offense for a disabled frozen string literal comment after other comments accepts a frozen string literal comment below an encoding comment and extra space accepts a frozen string literal below a shebang comment accepts a frozen string literal comment below shebang and encoding comments registers an offense for arbitrary tokens below shebang, an encoding comment, and extra space registers an offense for not having a frozen string literal comment under shebang with no other code registers an offense for a disabled frozen string literal never registers an offense for a frozen string literal comment below shebang and encoding comments registers an offense for a disabled frozen string literal comment below shebang above an encoding comments allows not having a frozen string literal comment under an encoding comment registers an offense for having a frozen string literal comment after other comments accepts an empty source registers an offense for a disabled frozen string literal comment below shebang and encoding comments accepts not having a frozen string literal comment on the top line registers an offense for a frozen string literal comment below shebang above an encoding comments registers an offense for a frozen string literal comment below a shebang comment registers an offense for a disabled frozen string literal comment on the top line accepts a source with no tokens registers an offense for a disabled frozen string literal below a shebang comment accepts a frozen string literal comment under ruby code registers an offense for a frozen string literal comment on the top line accepts not having not having a frozen string literal comment under a shebang allows not having a frozen string literal comment under a shebang and an encoding comment registers an offense for a disabled frozen string literal below an encoding comment registers an offense for a frozen string literal comment below an encoding comment RuboCop::Cop::Metrics::CyclomaticComplexity when method is in list of ignored methods does not register an offense when defining a class method does not register an offense when defining an instance method does not register an offense when using `define_method` when Max is 1 registers an offense for an elsif block accepts an empty method registers an offense for a `define_method` accepts a method with no decision points registers an offense for || does not count blocks in general counts repeated &. on same untouched local variable as 1 registers an offense for or deals with nested if blocks containing && and || registers an offense for a for block registers an offense for an until block registers an offense for a rescue block registers an offense for an unless modifier registers an offense for &. counts enumerating methods with block-pass as +1 registers an offense for a ternary operator registers an offense for ||= registers an offense for a while block accepts complex code outside of methods registers an offense for && counts enumerating methods with blocks as +1 counts only a single method registers an offense for &&= registers an offense for and registers an offense for a case/when block accepts an empty `define_method` registers an offense for an if modifier when Max is 2 counts stupid nested if and else blocks RuboCop::Cop::Layout::FirstHashElementIndentation when the HashAlignment style is separator for : registers an offense and corrects incorrectly indented first pair with : accepts correctly indented first pair registers an offense and corrects incorrectly indented } when hash is argument to setter registers an offense and corrects incorrectly indented first pair accepts correctly indented first pair when hash is method argument and argument are not surrounded by parentheses accepts a correctly indented multi-line hash with braces registers an offense for incorrectly indented multi-line hash with braces accepts braceless hash accepts single line hash with braces and arguments are surrounded by parentheses and EnforcedStyle is consistent registers an offense and corrects incorrect indentation accepts normal indentation for second argument accepts normal indentation for first argument and EnforcedStyle is special_inside_parentheses accepts special indentation for second argument accepts normal indentation for hash within hash registers an offense and corrects 'consistent' indentation accepts special indentation for first argument registers an offense and corrects 'align_braces' indentation when using safe navigation operator registers an offense and corrects 'consistent' indentation when hash is right hand side in assignment accepts an empty hash accepts single line hash registers an offense and corrects incorrectly indented first pair accepts correctly indented first pair accepts a first pair on the same line as the left brace accepts several pairs per line when indentation width is overridden for this cop accepts correctly indented first pair registers an offense and corrects incorrectly indented first pair when the HashAlignment style is separator for => registers an offense and corrects incorrectly indented } registers an offense and corrects incorrectly indented first pair with => accepts correctly indented first pair when hash is operand accepts correctly indented first pair registers an offense and corrects incorrectly indented first pair registers an offense and corrects incorrectly indented } when EnforcedStyle is align_braces accepts single line hash accepts a first pair on the same line as the left brace registers an offense and corrects incorrectly indented } accepts several pairs per line accepts correctly indented first pair accepts an empty hash when 'consistent' style is used registers an offense and correcs incorrect indentation when 'special_inside_parentheses' style is used registers an offense and corrects incorrect indentation RuboCop::Cop::Style::AccessModifierDeclarations when `inline` is configured offends when public is not inlined does not offend when private is inlined with a symbol does not offend when public is inlined with a symbol accepts when #{access_modifier} is a hash literal value does not offend when public is inlined with a method offends when private is not inlined and has a comment offends when private is not inlined offends when public is not inlined and has a comment accepts when #{access_modifier} is a hash literal value offends when protected is not inlined and has a comment does not offend when protected is inlined with a symbol offends when protected is not inlined accepts when #{access_modifier} is a hash literal value does not offend when private is inlined with a method does not offend when protected is inlined with a method allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol when `group` is configured does not offend when protected is not inlined does not offend when private is not inlined and has a comment does not offend when public is not inlined and has a comment offends when public is inlined with a method does not offend when public is not inlined accepts when #{access_modifier} is a hash literal value does not offend when protected is not inlined and has a comment accepts when #{access_modifier} is a hash literal value offends when private is inlined with a method does not offend when private is not inlined accepts when #{access_modifier} is a hash literal value offends when protected is inlined with a method allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol do not allow access modifiers on symbols accepts when argument to #{access_modifier} is a symbol RuboCop::Cop::Lint::EmptyExpression when used as an assignment registers an offense for the assigned value when used in a condition registers an offense inside `elsif` registers an offense inside `if` registers an offense in the condition of a ternary operator registers an offense inside `when` registers an offense in the return value of a ternary operator registers an offense inside `case` when used as a return value registers an offense in the return value of a condition registers an offense in the return value of a method registers an offense in the return value of a case statement when used as a standalone expression registers an offense with nested empty expressions registers an offense RuboCop::Cop::Security::YAMLLoad does not register an offense for YAML.load under a different namespace registers an offense and corrects a fully qualified ::YAML.load registers an offense and corrects load with a literal string does not register an offense for YAML.dump RuboCop::Cop::Layout::SpaceInsideReferenceBrackets with space inside empty brackets not allowed registers an offense and corrects empty brackets with 1 space inside accepts empty brackets with no space inside registers an offense and corrects empty brackets with multiple spaces inside when EnforcedStyle is space registers an offense and corrects third ref brackets with no leading whitespace registers an offense and corrects ref brackets with no trailing whitespace accepts spaces in array brackets registers and corrects multiple offenses for multiple sets of ref brackets registers an offense and corrects second ref brackets with no leading whitespace does not register offense for ref bcts with spaces that assign registers an offense and corrects when a reference bracket with no trailing whitespace is assigned by another reference bracket registers an offense and corrects when a reference bracket with no leading whitespace is assigned by another reference bracket registers an offense and corrects when a reference bracket is assigned by another reference bracket with no trailing whitespace accepts an array as a reference object registers an offense and correct third ref brackets with no trailing whitespace registers an offense and corrects ref brackets with no leading whitespace accepts square brackets as method name accepts square brackets called with method call syntax registers and corrects multiple offenses in one set of ref brackets registers an offense and corrects second ref brackets with no trailing whitespace does not register offense for reference brackets with spaces does not register offense for array literals when EnforcedStyle is no_space accepts an array as a reference object registers an offense and corrects second ref brackets with leading whitespace accepts square brackets as method name registers an offense and corrects when a reference bracket with a leading whitespace is assigned by another reference bracket registers an offense and corrects third ref brackets with leading whitespace does not register offense for ref bcts with no spaces that assign registers an offense and correcs when a reference bracket with a trailing whitespace is assigned by another reference bracket registers multiple offenses and corrects multiple sets of ref brackets registers an offense and corrects when a reference bracket is assigned by another reference bracket with trailing whitespace accepts square brackets called with method call syntax registers multiple offenses and corrects one set of ref brackets does not register offense for array literals registers an offense and corrects ref brackets with leading whitespace registers an offense and corrects second ref brackets with trailing whitespace registers an offense and corrects outer ref brackets accpets extra spacing in array brackets register and correct multiple offenses for multiple sets of ref brackets does not register offense for reference brackets with no spaces registers an offense and corrects third ref brackets with trailing whitespace registers an offense and corrects ref brackets with trailing whitespace with space inside empty braces allowed registers offense and corrects empty brackets with no space inside accepts empty brackets with space inside registers offense and corrects empty brackets with more than one space inside RuboCop::Cop::Style::TernaryParentheses when `RedundantParenthesis` would cause an infinite loop when `EnforcedStyle: require_parentheses` accepts when `EnforcedStyle: require_parentheses_when_complex` accepts when configured to enforce parentheses omission accepts condition including a range with an unparenthesized method call condition registers an offense when calling method with a parameter registers an offense for defined check when calling method with multiple arguments registers an offense when calling method on a literal receiver registers an offense when calling method on a receiver registers an offense when calling method on a constant receiver registers an offense with a simple condition registers an offense for multi-line boolean expression registers an offense for yield in condition accepts multi-line boolean expression starting on following line registers an offense for query method in condition registers an offense for accessor in condition with no space between the parentheses and question mark registers an offense with an assignment condition accepts safe assignment accepts safe assignment as part of multiple assignment accepts double safe assignment registers an offense for equality check behaves like safe assignment disabled registers an offense for parens around assignment registers an offense for parens around inner assignment registers an offense for parens around outer assignment with a complex condition registers an offense for boolean expression registers an offense for boolean expression using keyword registers an offense for arithmetic expression registers an offense for equality check accepts parens around inner boolean expression registers an offense for query method on object registers an offense for negated condition when configured to enforce parentheses inclusion with an assignment condition registers an offense for triple assignment accepts safe assignment in condition registers an offense for double assignment with equality check in condition registers an offense for double assignment with a complex condition registers an offense for boolean expression registers an offense for equality check registers an offense for boolean expression containing parens registers an offense for arithmetic condition registers an offense for negated condition registers an offense for boolean expression using keyword registers an offense when calling method on a receiver with a simple condition registers an offense for yield in condition registers an offense for query method in condition registers an offense for accessor in condition configured for parentheses on complex and there are no parens with an assignment condition accepts safe assignment registers an offense for equality check with complex condition registers an offense for boolean expression with inner parens registers an offense for comparison registers an offense for addition expression registers an offense for subtraction expression registers an offense comparison with exponentiation registers an offense for boolean expression registers an offense for comparison with method call on receiver registers an offense for compound boolean expression registers an offense for comparison with multiplication registers an offense for arithmetic and equality check configured for parentheses on complex and there are parens accepts condition including a range with an assignment condition accepts safe assignment as part of multiple assignment accepts equality check accepts accepts safe multiple assignment accepts safe assignment behaves like safe assignment disabled registers an offense for parens around outer assignment registers an offense for parens around assignment registers an offense for parens around inner assignment with a complex condition accepts boolean expression using keywords accepts boolean expression registers an offense when calling method on a receiver with method call condition registers an offense when calling method on a receiver registers an offense when calling method with a parameter registers an offense for defined check with accessor in method call parameters registers an offense for array include? with multiple parameters without parens registers an offense for array include? with multiple parameters with parens registers an offense for array include? without parens without accessor in method call parameters registers an offense for array include? without parens registers an offense for array include? with parens with a simple condition registers an offense for save navigation registers an offense for yield in condition registers an offense with preceding boolean keyword expression registers an offense for query method in condition registers an offense for accessor in condition RuboCop::Cop::Security::Open accepts open on a literal string registers an offense for open accepts open with prefix string literal plus something accepts open with string that has a prefixed interpolation registers an offense for open with string that starts with a pipe registers an offense for open with mode argument registers an offense for open with dynamic string that is not prefixed accepts open with no arguments accepts open as variable accepts open with a string that interpolates a literal accepts File.open as method RuboCop::Cop::Layout::ElseAlignment accepts a ternary if with if statement accepts a one line if statement accepts a correctly aligned if/elsif/else/end accepts an if/else branches with rescue clauses registers an offense for misaligned else registers an offense for misaligned elsif accepts indentation after else when if is on new line after assignment for a file with byte order mark accepts a correctly aligned if/elsif/else/end with assignment when alignment style is variable and end is aligned with keyword registers an offense for an if registers offenses for an if with setter registers an offense for an if with element assignment and end is aligned with variable accepts an if/else with chaining after the end accepts an if/else with chaining with a block after the end accepts an if/else accepts an if with end aligned with element assignment accepts an if-elsif-else with end aligned with setter accepts an if-else with end aligned with setter when alignment style is keyword by choice and end is aligned with keyword accepts an until in assignment accepts an if/else in assignment accepts an if/else in assignment on next line accepts a while in assignment accepts an if in assignment and end is aligned with variable registers an offense for an if with def/rescue/else/end registers an offense for misaligned else accepts a correctly aligned else with case accepts correctly aligned case/when/else accepts else aligned with when but not with case accepts case without else registers an offense for misaligned else >= Ruby 2.7 with case match registers an offense for misaligned else accepts correctly aligned case/when/else accepts case match without else accepts correctly aligned empty else >= Ruby 2.5 ensure/rescue/else in Block Argument registers an offense for misaligned else accepts a correctly aligned else with def/rescue/else/ensure/end registers an offense for misaligned else accepts a correctly aligned else with begin/rescue/else/ensure/end registers an offense for misaligned else accepts a correctly aligned else with unless accepts an empty unless accepts a correctly aligned else in an otherwise empty unless registers an offense for misaligned else with def/defs accepts an empty def body accepts an empty defs body when modifier and def are on the same line registers an offense for else not aligned with private accepts a correctly aligned body RuboCop::Cop::Lint::PercentStringArray with binary encoded source adds an offense and corrects when tokens contain quotes accepts if tokens contain no quotes with invalid byte sequence in UTF-8 add an offense and corrects when tokens contain quotes accepts if tokens contain invalid byte sequence only detecting quotes or commas in a %w/%W string accepts likely false positive :"#{a}" accepts tokens without quotes or commas accepts likely false positive %W(#{a} b) adds an offense and corrects when one token is quoted but there are no commas accepts likely false positive %w(' " ! = # ,) accepts likely false positive %W(' ") accepts likely false positive %w(#{a} b) adds an offense and corrects when tokens contain both types of quotes accepts tokens without quotes or commas accepts likely false positive :"#{a}" accepts likely false positive %W(' " ! = # ,) adds an offense and corrects when tokens contain quotes and are comma separated adds an offense and corrects when tokens contain both types of quotes adds an offense and corrects when one token is quoted but there are no commas adds an offense and corrects when tokens contain quotes and are comma separated adds an offense and corrects when there are no quotes but one comma adds an offense and corrects when there are no quotes but one comma accepts likely false positive %w(' ") RuboCop::Cop::Style::MultilineIfModifier unless guard clause registers an offense allows a multiline condition allows a one liner registers an offense when indented if guard clause registers an offense allows a multiline condition allows a one liner registers an offense when indented RuboCop::Cop::Bundler::GemComment when investigating Gemfiles when the "OnlyFor" option is set and some other options are checked when a gem is uncommented and has a version specifier but no other options does not register an offense when a gem is uncommented and only unchecked options does not register an offense when a gem is uncommented and has one of the checked options registers an offense when the version specifiers are checked when a gem is uncommented and has multiple version specifiers registers an offense when a gem is uncommented and has no extra options does not register an offense when a gem is uncommented and has a version specifier along with unrelated options registers an offense when a gem is uncommented and has options but no version specifiers does not register an offense when a gem is commented does not register an offense when a gem is uncommented and has a version specifier registers an offense and the file is empty does not register any offenses and the gem is permitted does not register any offenses and a gem has no comment registers an offense and the gem is commented does not register any offenses and the file contains source and group does not register any offenses when investigating Ruby files does not register any offenses RuboCop::Cop::Corrector #rewrite allows removal of characters fron range ending allows replacement of a range allows removal of characters preceding range allows insertion before a source range allows insertion before and after a source range allows removal of a range allows removal of characters from range beginning raises a useful error if not given a node or a range accepts a node instead of a range allows insertion after a source range when range is from incorrect source raises exception from remove raises exception from insert_after raises exception from replace raises exception from remove_preceding raises exception from remove_leading raises exception from insert_before raises exception from remove_trailing RuboCop::Cop::Style::Next doesn't reindent heredoc bodies when autocorrecting handles `then` when autocorrecting does not blow up on empty body until block allows empty blocks keeps comments when autocorrecting allows loops with conditions at the end with ternary op does not crash with an empty body branch does not blow up on empty body for block does not crash with empty brackets allows super nodes handles nested autocorrections does not blow up on empty body while block MinBodyLength: 3 accepts if whose body has 1 line behaves like iterators registers an offense for if inside of each_with_object registers an offense for if inside of downto allows loops with if with else, nested in another condition registers an offense for if inside of select registers an offense for if inside of select! registers an offense for if inside of map registers an offense for a condition at the end of an iterator when there is more in the iterator than the condition allows loops with if with else at the end allows loops with conditional break registers an offense for if inside of nested iterators registers an offense for if inside of reject allows loops with conditional return auto-corrects a misaligned end registers an offense for if inside of for allows loops with if being the entire body with else registers an offense for if inside of each registers an offense for if inside of reject! registers an offense for if inside of nested iterators registers an offense for if inside of times registers an offense for if inside of collect registers an offense for if inside of loop reports an offense for if whose body has 3 lines EnforcedStyle: always registers an offense for modifier if EnforcedStyle: skip_modifier_ifs allows modifier if Invalid MinBodyLength fails with an error behaves like iterators registers an offense for unless inside of collect allows loops with unless with else, nested in another condition registers an offense for unless inside of each_with_object registers an offense for unless inside of reject! registers an offense for unless inside of nested iterators registers an offense for unless inside of each registers an offense for a condition at the end of an iterator when there is more in the iterator than the condition allows loops with conditional return registers an offense for unless inside of nested iterators allows loops with unless with else at the end reports an offense for unless whose body has 3 lines registers an offense for unless inside of downto registers an offense for unless inside of select! auto-corrects a misaligned end allows loops with unless being the entire body with else registers an offense for unless inside of select registers an offense for unless inside of loop registers an offense for unless inside of for allows loops with conditional break registers an offense for unless inside of times registers an offense for unless inside of map registers an offense for unless inside of reject EnforcedStyle: skip_modifier_ifs allows modifier unless EnforcedStyle: always registers an offense for modifier unless RuboCop::Cop::VariableForce::Variable .new when non variable declaration node is passed raises error #referenced? when the variable is not assigned is expected to be falsey and the variable is referenced is expected to be truthy when the variable has an assignment and the variable is not yet referenced is expected to be falsey and the variable is referenced is expected to be truthy RuboCop::Cop::Style::StringMethods registers an offense when using safe navigation operator registers an offense RuboCop::Cop::Lint::RescueType accepts rescuing a single exception accepts rescuing nothing accepts rescuing nothing within a method definition accepts rescue modifier behaves like offenses begin rescue rescuing from 0 after another exception registers an offense and auto-corrects rescuing from 0 registers an offense and auto-corrects rescuing from 0 before another exception registers an offense and auto-corrects def rescue ensure rescuing from 0 registers an offense and auto-corrects begin rescue ensure rescuing from 0 registers an offense and auto-corrects def rescue rescuing from 0 registers an offense and auto-corrects behaves like offenses def rescue rescuing from :symbol registers an offense and auto-corrects begin rescue rescuing from :symbol after another exception registers an offense and auto-corrects rescuing from :symbol before another exception registers an offense and auto-corrects rescuing from :symbol registers an offense and auto-corrects def rescue ensure rescuing from :symbol registers an offense and auto-corrects begin rescue ensure rescuing from :symbol registers an offense and auto-corrects behaves like offenses def rescue rescuing from [] registers an offense and auto-corrects begin rescue rescuing from [] before another exception registers an offense and auto-corrects rescuing from [] registers an offense and auto-corrects rescuing from [] after another exception registers an offense and auto-corrects def rescue ensure rescuing from [] registers an offense and auto-corrects begin rescue ensure rescuing from [] registers an offense and auto-corrects behaves like offenses begin rescue ensure rescuing from {} registers an offense and auto-corrects begin rescue rescuing from {} registers an offense and auto-corrects rescuing from {} after another exception registers an offense and auto-corrects rescuing from {} before another exception registers an offense and auto-corrects def rescue ensure rescuing from {} registers an offense and auto-corrects def rescue rescuing from {} registers an offense and auto-corrects behaves like offenses def rescue ensure rescuing from nil registers an offense and auto-corrects begin rescue ensure rescuing from nil registers an offense and auto-corrects begin rescue rescuing from nil before another exception registers an offense and auto-corrects rescuing from nil after another exception registers an offense and auto-corrects rescuing from nil registers an offense and auto-corrects def rescue rescuing from nil registers an offense and auto-corrects behaves like offenses def rescue rescuing from "#{string}" registers an offense and auto-corrects begin rescue ensure rescuing from "#{string}" registers an offense and auto-corrects begin rescue rescuing from "#{string}" registers an offense and auto-corrects rescuing from "#{string}" before another exception registers an offense and auto-corrects rescuing from "#{string}" after another exception registers an offense and auto-corrects def rescue ensure rescuing from "#{string}" registers an offense and auto-corrects behaves like offenses def rescue rescuing from 'string' registers an offense and auto-corrects begin rescue rescuing from 'string' registers an offense and auto-corrects rescuing from 'string' before another exception registers an offense and auto-corrects rescuing from 'string' after another exception registers an offense and auto-corrects def rescue ensure rescuing from 'string' registers an offense and auto-corrects begin rescue ensure rescuing from 'string' registers an offense and auto-corrects behaves like offenses def rescue ensure rescuing from 0.0 registers an offense and auto-corrects begin rescue ensure rescuing from 0.0 registers an offense and auto-corrects begin rescue rescuing from 0.0 after another exception registers an offense and auto-corrects rescuing from 0.0 registers an offense and auto-corrects rescuing from 0.0 before another exception registers an offense and auto-corrects def rescue rescuing from 0.0 registers an offense and auto-corrects RuboCop::Cop::Style::RegexpLiteral when EnforcedStyle is set to mixed a single-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted a multi-line `//` regex without slashes registers an offense a single-line `//` regex without slashes is accepted a single-line %r regex without slashes registers an offense a single-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a multi-line %r regex with slashes is accepted a multi-line `//` regex with slashes registers an offense a multi-line %r regex without slashes is accepted when regex contains slashes in interpolation ignores the slashes that do not belong // regex when PercentLiteralDelimiters is configured with slashes respects the configuration when auto-correcting when EnforcedStyle is set to slashes a multi-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted a multi-line %r regex without slashes registers an offense a single-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted a multi-line `//` regex without slashes is accepted a multi-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a single-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a single-line %r regex without slashes registers an offense a single-line `//` regex without slashes is accepted a single-line `%r//` regex with slashes is accepted when configured to allow inner slashes remains slashes after auto-correction a single-line `//` regex with slashes and interpolation registers an offense when configured to allow inner slashes is accepted %r regex with other delimiters than curly braces registers an offense when EnforcedStyle is set to percent_r a single-line %r regex without slashes is accepted a single-line `//` regex with slashes registers an offense a multi-line `//` regex with slashes registers an offense a single-line `//` regex without slashes registers an offense a multi-line %r regex with slashes is accepted a single-line %r regex with slashes is accepted a multi-line %r regex without slashes is accepted a multi-line `//` regex without slashes registers an offense when PercentLiteralDelimiters is configured with brackets respects the configuration when auto-correcting RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces registers an offense for hashes with no spaces if so configured registers an offense for correct + opposite accepts hash literals with no braces can handle interpolation in a braceless hash literal accepts hashes with spaces by default with space inside empty braces allowed registers an offense for empty braces with no space inside accepts empty braces with space inside on Hash[{ x: 1 } => [1]] does not register an offense on { key: "{" } does not register an offense when EnforcedStyle is compact accepts multiline hash with comment doesn't register an offense for non-nested hashes with spaces registers an offense for nested hashes with spaces accepts multiline hash registers offenses for hashes with no spaces registers an offense for opposite + correct when EnforcedStyle is no_space accepts multiline hash with comment registers an offense for opposite + correct accepts hashes with no spaces accepts multiline hash registers an offense for hashes with spaces with space inside empty braces not allowed accepts empty braces with no space inside registers an offense for empty braces with space inside RuboCop::Cop::Lint::UnderscorePrefixedVariableName when an underscore-prefixed variable in top-level scope is used registers an offense when non-underscore-prefixed variable is used does not register an offense when an underscore-prefixed block argument is used registers an offense registers an offense in a method calling `binding` with arguments when an underscore-prefixed argument is not used does not register an offense when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed method argument is used registers an offense when an underscore-prefixed variable is reassigned does not register an offense in a method calling `super` without arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used explicitly does not register an offense when an underscore-prefixed keyword block argument is used registers an offense when AllowKeywordBlockArguments is set does not register an offense when an underscore-prefixed named capture variable is used registers an offense in a method calling `super` with arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used does not register an offense when an underscore-prefixed variable is captured by a block accepts in a method calling `binding` without arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used explicitly does not register an offense when an underscore-prefixed variable is used registers an offense RuboCop::Cop::Style::NestedParenthesizedCalls on a non-parenthesized call nested in a parenthesized one with multiple arguments to the nested call registers an offense with a single argument to the nested call registers an offense when using safe navigation operator registers an offense on a method call with no arguments doesn't register an offense on a permitted method doesn't register an offense on an aref, nested in a parenthesized method call doesn't register an offense on a call to a setter method doesn't register an offense on a deeply nested argument doesn't register an offense on a non-parenthesized method call doesn't register an offense backslash newline in method call registers an offense on a call with no arguments, nested in a parenthesized one doesn't register an offense on a nested, parenthesized method call doesn't register an offense RuboCop::Cop::Lint::RedundantRequireStatement registers an offense and corrects when using `require 'enumerator'` isolated environment is not affected by a config file above the work directory RuboCop::CommentConfig #cop_enabled_at_line? just ignores unpaired enabling directives supports disabling all cops except Lint/RedundantCopDisableDirective with keyword all supports disabling single line with a directive at end of line supports enabling/disabling cops without a prefix supports enabling/disabling multiple cops in a single directive supports disabling multiple lines with a pair of directive supports disabling all lines after a directive does not confuse a comment directive embedded in a string literal with a real comment can handle double disable of one cop does not confuse a cop name including "all" with all cops handles indented single line supports disabling cops with multiple uppercase letters supports enabling/disabling multiple cops along with a comment supports disabling cops with numbers in their name supports disabling cops on a comment line with an EOL comment RuboCop::Formatter::ClangStyleFormatter #report_file displays text containing the offending source line when the offense is automatically corrected prints [Corrected] along with message when the source line is blank does not display offending source line when the offending source spans multiple lines displays the first line with ellipses when the offense is not corrected prints message as-is RuboCop::Cop::Style::ExpandPathArguments does not register an offense when using `File.expand_path('..', __dir__)` registers an offense when using `File.expand_path('./../..', __FILE__)` registers an offense when using `::Pathname.new(__FILE__).parent.expand_path` does not register an offense when using `Pathname(__dir__).expand_path` does not register an offense when using `File.expand_path(path, __FILE__)` registers an offense when using `::File.expand_path('./../..', __FILE__)` registers an offense when using `File.expand_path('../../..', __FILE__)` does not register an offense when using `File.expand_path(__FILE__)` registers an offense when using `File.expand_path('../..', __FILE__)` registers an offense when using `Pathname.new(__FILE__).parent.expand_path` registers an offense when using `Pathname(__FILE__).parent.expand_path` does not register an offense when using `File.expand_path(__dir__)` registers an offense when using `File.expand_path('..', __FILE__)` does not register an offense when using `File.expand_path("#{path_to_file}.png", __FILE__)` registers an offense when using `File.expand_path('.', __FILE__)` registers an offense when using `File.expand_path('../../lib', __FILE__)` RuboCop::Cop::Style::EmptyElse configured to warn on empty else given an unless-statement with a completely empty else-clause behaves like auto-correct MissingElse is case does auto-correction MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense given an if-statement with an empty comment behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction with an else-clause with side-effects doesn't register an offense in an if-statement behaves like auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is if does not auto-correct with an else-clause containing only the literal nil doesn't register an offense with no else-clause doesn't register an offense with a completely empty else-clause using semicolons behaves like auto-correct MissingElse is if does not auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct not using semicolons behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is if does not auto-correct MissingElse is case does auto-correction given a case statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with no else-clause doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is case does not auto-correct MissingElse is both does not auto-correct MissingElse is if does auto-correction configured to warn on empty else and nil in else given a case statement with an else-clause with side-effects doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is if does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is case does not auto-correct with an else-clause containing only the literal nil behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is case does not auto-correct MissingElse is both does not auto-correct MissingElse is if does auto-correction with no else-clause doesn't register an offense given an if-statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil with multiple elsifs behaves like auto-correct MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction with one elsif behaves like auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is if does not auto-correct with a completely empty else-clause behaves like auto-correct MissingElse is both does not auto-correct MissingElse is if does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction with no else-clause doesn't register an offense given an unless-statement with an else-clause containing only the literal nil behaves like auto-correct MissingElse is both does not auto-correct MissingElse is if does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct MissingElse is case does auto-correction MissingElse is both does not auto-correct configured to warn on nil in else given an unless-statement with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense with an else-clause containing only the literal nil behaves like auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is if does not auto-correct with a completely empty else-clause doesn't register an offense given a case statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil when the result is assigned to a variable behaves like auto-correct MissingElse is if does auto-correction MissingElse is disabled does auto-correction MissingElse is case does not auto-correct MissingElse is both does not auto-correct using semicolons behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is case does not auto-correct MissingElse is if does auto-correction MissingElse is both does not auto-correct given an if-statement with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense with an else-clause containing only the literal nil when the result is assigned to a variable behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct MissingElse is case does auto-correction MissingElse is both does not auto-correct when standalone behaves like auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction MissingElse is if does not auto-correct with an else-clause containing only the literal nil using semicolons with one elsif behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct with multiple elsifs behaves like auto-correct MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction with nested if and case statement behaves like auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does not auto-correct MissingElse is if does auto-correction RuboCop::Cop::Lint::IneffectiveAccessModifier when there is an intervening instance method still registers an offense when `private` is applied to a class method registers an offense when no access modifier is used doesn't register an offense when a `class << self` block is used doesn't register an offense when `private_class_method` is used when `private_class_method` contains all private method names doesn't register an offense when `private_class_method` does not contain the method registers an offense when `protected` is applied to a class method registers an offense when there is `begin` before a method definition does not register an offense RuboCop::Cop::Style::MethodCallWithArgsParentheses when EnforcedStyle is require_parentheses (default) register an offense for method call without parens accepts no parens in method call without args accepts parens in method call with args accepts parens in method call with do-end blocks register an offense for superclass call without parens register an offense for non-receiver method call without parens auto-corrects call with multiple args by adding braces auto-corrects fully parenthesized args by removing space auto-corrects parenthesized args for local methods by removing space auto-corrects partially parenthesized args by adding needed braces register an offense for yield without parens accepts no parens for setter methods register an offense for methods starting with capital without parens auto-corrects calls where arg is method call ignores method listed in IgnoredMethods accepts no parens for unary operators register no offense for yield without args auto-corrects calls where the argument node is a constant accepts no parens for operators register no offense for superclass call with parens auto-corrects calls where the argument node is a number auto-corrects calls where multiple args are method calls auto-corrects calls with multiple args by adding needed braces register no offense for superclass call without args when using safe navigation operator register an offense for method call without parens when inspecting macro methods in a class body does not register an offense in a module body does not register an offense IgnoredPatterns ignored methods listed in IgnoredPatterns when inspecting macro methods with IncludedMacros for a macro in both IncludedMacros and IgnoredMethods allows for a macro not on the included list allows in a class body finds offense in a module body finds offense when EnforcedStyle is omit_parentheses register an offense for %r regex literal as arguments accepts parens in splat calls auto-corrects single-line calls register an offense for hashes in keyword values accepts parens in ternary condition calls accepts parens in super method calls as arguments accepts parens in args splat register an offense for parens in method call without args accepts parens in implicit #to_proc register an offense in assignments accepts parens in default argument value calls accepts parens in calls with hash as arg accepts parens in calls with args with logical operators accepts parens in slash regexp literal as argument auto-corrects multi-line calls with trailing whitespace accepts parens in default keyword argument value calls register an offense for yield call with parens accepts parens in super without args accepts parens in block passing calls accepts no parens in method call without args accepts parens in args with ternary conditions accepts parens in range literals accepts parens in chaining with safe operators register an offense for superclass call with parens accepts parens in blocks with braces auto-corrects complex multi-line calls accepts parens in method args accepts parens in chained method calls accepts parens in nested method args register an offense in multi-line inheritance accepts parens in single-line inheritance accepts special lambda call syntax register an offense for multi-line method calls accepts parens in argument calls with braced blocks register an offense for parens in do-end blocks accepts parens in chaining with operators accepts parens in literals with unary operators as first argument accepts parens in camel case method without args register an offense for camel-case methods with arguments register an offense in complex conditionals accepts parens in calls with logical operators accepts parens in super calls with braced blocks register an offense for parens in the last chain accepts no parens in method call with args allowing parenthesis in chaining accepts parens in the last call if any previous calls with parentheses accepts no parens in the last call if previous calls with parens register offense for multi-line chaining without previous parens register offense for single-line chaining without previous parens allowing parens in camel-case methods accepts parens for camel-case method names allowing parens in multi-line calls accepts parens for multi-line calls RuboCop::Cop::Lint::RescueException does not crash when the namespace of a rescued class is in a local variable does not register an offense for rescue with a module prefix does not crash when the splat operator is used in a rescue does not register an offense for rescue with other classes registers an offense for rescue with ::Exception registers an offense for rescue with StandardError, Exception registers an offense for rescue with Exception => e registers an offense for rescue from Exception does not register an offense for rescue with no class does not register an offense for rescue with no class and => e does not register an offense for rescue with other class RuboCop::Cop::Style::AccessorGrouping when EnforcedStyle is separated registers an offense and corrects when using grouped accessors does not register an offense for grouped accessors with comments registers an offense and corrects when using grouped accessors with different access modifiers registers an offense and corrects when using grouped accessors within eigenclass does not register an offense when using separated accessors when EnforcedStyle is grouped registers an offense and corrects when using separated accessors does not register an offense when using grouped accessors registers offense and corrects if atleast two separate accessors without comments does not register offense for accessors with comments registers an offense and corrects when using separated accessors with different access modifiers registers an offense and corrects when using separated accessors within eigenclass RuboCop::Cop::Style::CharacterLiteral registers an offense for literals like \n registers an offense for character literals accepts literals like ?\C-\M-d accepts ? in a %w literal auto-corrects ?' to "'" RuboCop::Cop::Style::RedundantCapitalW does not register an offense for array containing non-string registers no offense for %W with special characters registers no offense for %w without interpolation registers no offense for arrays with character constants registers no offense for %w with interpolation-like syntax does not register an offense for array of non-words registers no offense for normal arrays of strings does not register an offense for array with one element does not register an offense for array with empty strings registers an offense for misused %W with different bracket registers no offense for normal arrays of strings with interpolation registers an offense for misused %W registers no offense for %W with interpolation RuboCop::Cop::Style::LineEndConcatenation accepts string concat at line end when followed by a comment line registers multiple offenses when there are chained concatenations registers offenses only for the appropriate lines in chained concats autocorrects a + with trailing whitespace to \ registers an offense for string concat with << and \ at line ends registers multiple offenses when there are chained << methods autocorrects only the lines that should be autocorrected registers an offense for dynamic string concat at line end autocorrects a + with \ to just \ registers an offense for dynamic string concat with << at line end registers an offense for string concat with << at line end accepts string concat with a return value of method on a string registers multiple offenses when there are chained concatenationscombined with << calls accepts string concat at line end for special strings like __FILE__ accepts string concat with a return value of method on an interpolated string accepts string concat at line end when % literals are involved accepts string concat at line end when followed by comment registers an offense for string concat at line end accepts string concat on the same line RuboCop::Cop::Layout::CaseIndentation with EnforcedStyle: case with IndentOneStep: false accepts correctly indented whens in complex combinations accepts a when clause that's equally indented with case doesn't get confused by symbols named case or when doesn't get confused by strings with case in them registers an offense and corrects a when clause that is indented deeper than case regarding assignment where the right hand side is a case registers an offense and corrects assignment indented some other way registers an offense and corrects assignment indented as end registers an offense and corrects correct + opposite style accepts a correctly indented assignment with everything on a single line does not register an offense with IndentOneStep: true accepts a when clause that's 2 spaces deeper than case registers an offense and corrects a when clause that is equally indented with case when indentation width is overridden for this cop only respects cop-specific IndentationWidth with everything on a single line does not register an offense regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented some other way with EnforcedStyle: end with IndentOneStep: false with everything on a single line does not register an offense regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented some other way with IndentOneStep: true regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented as case registers an offense and corrects an assignment indented some other way with everything on a single line does not register an offense when case is preceded by something else than whitespace registers an offense and does not correct RuboCop::Cop::Lint::NestedPercentLiteral registers no offense for percent modifier character in isolation registers offense for nested percent literals registers offense for multiply nested percent literals registers no offense for empty array registers offense for repeated nested percent literals registers no offense for array registers no offense for percents in the middle of literals registers no offense for nestings under percent when handling invalid UTF8 byte sequence registers no offense for array registers offense for nested percent literal RuboCop::Cop::InternalAffairs::RedundantLocationArgument when location argument is passed when location argument is :expression registers an offense removes default `location` surrounded by other keywords removes default `location` when preceded by another keyword when there is a message argument registers an offense when location argument does not equal to :expression does not register an offense when location argument is not passed does not register an offense RuboCop::Cop::Lint::SafeNavigationWithEmpty in a conditional does not register an offense on `.empty?` registers an offense and corrects on `&.empty?` outside a conditional registers no offense RuboCop::Cop::Lint::ReturnInVoidContext with a setter method containing a return with a value registers an offense with a setter method containing a return without a value accepts when return is in top scope accepts with an initialize method containing a return with a value registers an offense with a class method called initialize containing a return accepts with a non initialize method containing a return accepts with an initialize method containing a return without a value accepts RuboCop::Cop::Style::MultilineBlockChain accepts a multi-line block chained with calls on one line accepts a chain of calls followed by a multi-line block accepts a chain of blocks spanning one line with multi-line block chaining registers an offense for a simple case registers an offense for a chain where the second block is single-line accepts a chain where the first block is single-line registers an offense for a slightly more complicated case registers two offenses for a chain of three blocks RuboCop::Cop::InternalAffairs::RedundantMessageArgument does not register an offense when formatted `MSG` is passed does not register an offense when `#message` with another node is passed when `#message` with offending node is passed when there are others keyword arguments registers an offense when message is the only keyword argument registers an offense when `MSG` is passed registers an offense when `#message` is passed registers an offense RuboCop::Cop::Style::IfUnlessModifier accepts if-end when used as LHS of binary arithmetic adds parens in autocorrect when if-end used with `&&` operator accepts if-end followed by a chained call using `&.` adds parens in autocorrect when if-end used with `||` operator doesn't break if-end when used as RHS of binary arithmetic doesn't break if-end when used as RHS of class var assignment accepts if/elsif accepts if-end followed by a chained call using `.` doesn't break if-end when used as RHS of constant assignment accepts if-else-end doesn't break if-end when used as RHS of instance var assignment accepts code with EOL comment since user might want to keep it doesn't break if-end when used as RHS of local var assignment if-end is argument to a non-parenthesized method call adds parentheses so as not to change meaning multiline if that fits on one line with comment near end accepts multiline if that fits on one line with comment on first line registers an offense and preserves comment behaves like condition modifier cop for a multiline 'unless' accepts an empty body accepts it when condition has local variable assignment accepts it if single line would not fit on one line accepts it if body spans more than one line corrects it if result fits in one line corrects it when assignment is in body accepts multiline condition in modifier form registers an offense when Layout/LineLength is disabled registers an offense even for a long modifier statement when Layout/LineLength is disabled registers an offense even for a long modifier statement unless-end with conditional as body accepts with tabs used for indentation with Layout/IndentationStyle: IndentationWidth config behaves like with tabs indentation it doesn't fit on one line doesn't register an offense it fits on one line registers an offense with Layout/IndentationWidth: Width config behaves like with tabs indentation it fits on one line registers an offense it doesn't fit on one line doesn't register an offense multiline unless that fits on one line registers an offense if-end with conditional as body accepts when if-end condition is a value in a hash when it is short enough to fit on a single line corrects it to the single-line form when it is not short enough to fit on a single line accepts it in the multiline form when if-end condition has a first line comment when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form behaves like condition modifier cop for a multiline 'if' corrects it when assignment is in body accepts it if single line would not fit on one line accepts an empty body accepts it if body spans more than one line accepts it when condition has local variable assignment corrects it if result fits in one line when Layout/LineLength is disabled registers an offense even for a long modifier statement accepts multiline condition in modifier form registers an offense if-end is argument to a parenthesized method call adds parentheses because otherwise it would cause SyntaxError modifier if that does not fit on one line, but is not the only statement on the line accepts when if-end condition has some code after the end keyword when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form when if-end condition is an element of an array when short enough to fit on a single line corrects it to the single-line form when not short enough to fit on a single line accepts it in the multiline form multiline if that fits on one line registers an offense and has two statements separated by semicolon accepts with a named regexp capture on the LHS does not register an offense short multiline if near an else etc registers an offense with implicit match conditional when a multiline if doesn't fit on one line accepts when a multiline if fits on one line registers an offense when if-end condition is assigned to a variable with variable being on the same line when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form with variable being on the previous line when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form modifier if that does not fit on one line when Layout/LineLength is disabled with an EOL comment accepts when Layout/LineLength is disabled in configuration accepts when Layout/LineLength is enabled corrects it to normal form IgnoreCopDirectives and the long line is too long because IgnoreCopDirectives is false registers an offense and the long line is allowed because IgnoreCopDirectives is true accepts and the long line is allowed because AllowURI is true accepts and the long line is too long because AllowURI is false registers an offense when Layout/LineLength is disabled with enable/disable comments accepts RuboCop::Formatter::FormatterSet responds to all formatter API methods formatter API method invokes the same method of all containing formatters add_formatter can add multiple formatters by being invoked multiple times adds a formatter to itself adds a formatter with specified formatter type when output path is omitted adds a formatter outputs to $stdout when output path is specified adds a formatter outputs to the specified file when parent directories don't exist creates them #custom_formatter_class returns constant represented by the passed string can handle top level namespaced constant name can handle namespaced constant name when non-existent constant name is passed raises error #builtin_formatter_class returns class which matches passed alias name exactly returns class which matches single character alias name returns class which matches double character alias name #close_output_files closes all output files does not close non file output RuboCop::Cop::Bundler::OrderedGems When gems are asciibetically sorted irrespective of _ does not register an offense When a gem declaration takes several lines registers an offense When each individual group of line is sorted does not register any offenses When a gem that starts with a capital letter is sorted does not register an offense When a gem that starts with a capital letter is not sorted registers an offense When gems are not alphabetically sorted registers an offense When gem groups is separated by multiline comment with TreatCommentsAsGroupSeparators: true accepts with TreatCommentsAsGroupSeparators: false registers an offense When gems have an inline comment, and not sorted registers an offense When there are duplicated gems in group registers an offense When a gem is sorted but not so when disregarding _- when ConsiderPunctuation is true does not register an offense by default registers an offense when a gem is referenced from a variable ignores the line resets the sorting to a new block When the gemfile is empty does not register any offenses When each individual group of line is not sorted registers some offenses When gems are alphabetically sorted does not register any offenses RuboCop::Cop::Style::BarePercentLiterals when EnforcedStyle is percent_q and strings are dynamic accepts "" string with interpolation accepts %q accepts regular expressions accepts "" accepts '' accepts %Q() registers an offense for %() accepts __FILE__ accepts heredoc and strings are static accepts "" accepts %Q() registers an offense for %() accepts %q accepts heredoc accepts __FILE__ accepts regular expressions accepts "" string with interpolation accepts '' when EnforcedStyle is bare_percent and strings are static accepts "" accepts regular expressions accepts %() registers an offense for %Q() accepts %q accepts "" string with interpolation accepts __FILE__ accepts heredoc accepts '' and strings are dynamic accepts "" registers an offense for %Q() accepts %q accepts '' accepts heredoc accepts "" string with interpolation accepts %() accepts __FILE__ accepts regular expressions RuboCop::Cop::Style::BlockDelimiters always braces registers an offense for multi-line chained do-end blocks accepts a multi-line functional block with do-end if it is an ignored method does not auto-correct do-end if {} would change the meaning registers an offense for multi-lined do-end blocks when combined with attribute assignment registers an offence for a multi-line block with do-end accepts a multi-line block that needs braces to be valid ruby registers an offense for a single line block with do-end accepts a single line block with braces when there are braces around a multi-line block allows when combined with attribute assignment allows in the simple case allows when the block is being chained braces for chaining style allows do/end inside Hash[] accepts a single line block with braces accepts a multi-line functional block with {} if it is an ignored method allows when :[] is chained registers an offense for multi-line chained do-end blocks disallows {} with no chain inside of Hash[] accepts a multi-line block with do-end accepts a multi-line block that needs braces to be valid ruby registers an offense for a single line block with do-end allows chaining to } inside of Hash[] with safe navigation registers an offense for multi-line chained do-end blocks when there are braces around a multi-line block allows when the block is being chained allows when the block is being chained with attribute assignment registers an offense when combined with attribute assignment registers an offense in the simple case Semantic style allows {} if it is a known functional method auto-corrects do-end to {} if it is a functional block and does not change the meaning registers an offense for a multi-line block with do-end if the return value is assigned accepts a single line block with {} if used in an irange allows {} if it is a known procedural method registers an offense for a multi-line block with do-end if the return value is attribute-assigned auto-corrects do-end to {} if it is a functional block accepts a single line block with {} if used in a logical or registers an offense for a multi-line block with braces if the return value is not used accepts a multi-line block with braces if the return value is assigned accepts a single line block with {} if used in an if statement accepts a multi-line block with braces when passed to a known functional method auto-corrects do-end to {} with appropriate spacing accepts a single line block with {} if used in a logical and accepts a multi-line block with braces if it is the return value of its scope registers an offense for a multi-line block with do-end if the return value is passed to a method accepts a multi-line block with braces when passed to a method accepts a multi-line block with do-end if it is the return value of its scope accepts a single line block with {} if used in an array accepts a multi-line functional block with do-end if it is a known procedural method accepts a multi-line block with braces when chained accepts a multi-line functional block with do-end if it is an ignored method accepts a single line block with {} if used in an erange with a procedural multi-line block auto-corrects { and } to do and end auto-corrects { and } to do and end with appropriate spacing with a procedural one-line block with AllowBracesOnProceduralOneLiners false or unset accepts a single line block with do-end if it is procedural registers an offense for a single line procedural block with AllowBracesOnProceduralOneLiners true accepts a single line procedural block with braces accepts a single line procedural do-end block BracesRequiredMethods BracesRequiredMethods methods allows braces registers an offense with do other methods allows braces auto-corrects { and } to do and end line count-based style does not auto-correct {} if do-end would change the meaning accepts a multi-line block that needs braces to be valid ruby accepts a multi-line block with do-end registers an offense for a single line block with do-end does not auto-correct do-end if {} would change the meaning auto-corrects do and end for single line blocks to { and } accepts a single line block with braces when there are braces around a multi-line block auto-corrects adjacent curly braces correctly registers an offense for braces if do-end would not change the meaning accepts braces if do-end would change the meaning can handle special method names such as []= and done? auto-corrects { and } to do and end accepts a multi-line functional block with {} if it is an ignored method registers an offense in the simple case registers an offense when combined with attribute assignment does not auto-correct {} if do-end would introduce a syntax error RuboCop::Cop::Lint::AssignmentInCondition registers an offense for assignment methods registers an offense for gvar assignment in condition does not blow up for empty unless condition registers an offense for lvar assignment in while condition does not blow up for empty if condition registers an offense for collection element assignment in condition accepts == in condition accepts = in a block that is called in a condition registers an offense for ivar assignment in condition registers an offense for constant assignment in condition registers an offense for lvar assignment in until condition accepts ||= in condition registers an offense for clvar assignment in condition registers an offense for assignment after ||= in condition registers an offense for assignment after == in condition registers an offense for lvar assignment in condition accepts = in a block followed by method call safe assignment is allowed accepts []= in condition surrounded with braces accepts = in condition surrounded with braces safe assignment is not allowed does not accept []= in condition surrounded with braces does not accept = in condition surrounded with braces RuboCop::Cop::Layout::EmptyLinesAroundBeginBody registers an offense for begin body starting with rescue registers an offense for begin body ending with a blank registers an offense for begin body starting in method registers many offenses with complex begin-end accepts begin block without empty line in a method registers an offense for begin body ending in method accepts begin block without empty line registers an offense for ensure body ending registers an offense for begin body starting with a blank registers an offense for else body ending registers an offense for rescue body ending RuboCop::Formatter::TapFormatter #file_finished when no offenses are detected prints "ok" when any offenses are detected prints "not ok" #finished when no offenses are detected does not report offenses when any offenses are detected reports all detected offenses for all failed files RuboCop::Cop::Style::EndBlock does not report offenses for other blocks reports an offense and corrects END block RuboCop::Cop::Gemspec::DuplicatedAssignment registers an offense when using `name=` twice registers an offense when using `name=` twice with `cbase` registers an offense when using `spec.add_dependency` twice registers an offense when using `<<` twice registers an offense when `name=` method call is not block value registers an offense when using `version=` twice RuboCop::Cop::Layout::MultilineMethodCallIndentation when EnforcedStyle is indented accepts double indentation of if condition accepts indented methods in LHS of []= assignment accepts any indentation of parameters to #[] accepts indented methods in for body accepts special indentation of return if condition accepts correctly indented methods in operation accepts indented methods in if body accepts double indentation of while condition doesn't crash on unaligned multiline lambdas accepts indented methods in if condition accepts normal indentation of method parameters accepts indented methods in while body accepts normal indentation inside grouped expression registers an offense and corrects extra indentation of third line accepts indentation of assignment registers an offense for a 2 space indentation of if condition accepts any indentation of method parameters registers an offense and corrects 3 spaces indentation of 2nd line registers an offense and corrects correct + unrecognized style accepts double indentation of until condition registers an offense for a 2 space indentation of unless condition accepts double indentation of unless condition registers an offense and corrects aligned operators in assignment registers an offense and corrects 1 space indentation of 3rd line accepts indented methods in ordinary statement accepts even indentation of consecutive lines in typical RSpec code registers an offense and corrects aligned methods in if condition registers an offense and corrects no indentation of second line accepts special indentation of return unless condition registers an offense and corrects extra indentation of 3rd line in typical RSpec code accepts indented methods in until body accepts indentation relative to first receiver accepts indented methods in unless body accepts no extra indentation of third line accepts indented methods inside and outside a block registers an offense for a 2 space indentation of while condition registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array accepts special indentation of for expression registers an offense and corrects proc call without a selector accepts alignment inside a grouped expression accepts an expression where the first method spans multiple lines registers an offense and corrects one space indentation of 2nd line doesn't fail on unary operators registers an offense and corrects wrong indentation of for expression registers an offense for a 2 space indentation of until condition when indentation width is overridden for this cop registers an offense for a 4 space indentation of until condition registers an offense for a 4 space indentation of if condition accepts indentation of while condition which is offset by a single normal indentation step registers an offense for a 4 space indentation of while condition accepts indented methods in unless body accepts indentation of unless condition which is offset by a single normal indentation step accepts indented methods in while body accepts indented methods in if condition registers an offense for a 4 space indentation of unless condition accepts correctly indented methods in operation accepts indentation of until condition which is offset by a single normal indentation step accepts indented methods accepts indented methods in if body accepts indentation of if condition which is offset by a single normal indentation step accepts indented methods in until body accepts indentation of assignment for possible semantic alignment accepts indented methods when EnforcedStyle is indented_relative_to_receiver accepts indented methods inside and outside a block accepts no extra indentation of third line accepts indented methods in for body doesn't crash on unaligned multiline lambdas accepts any indentation of parameters to #[] registers an offense and corrects proc call without a selector registers an offense and corrects extra indentation of 3rd line accepts indented methods in ordinary statement accepts indentation relative to first receiver accepts correctly indented methods in operation registers an offense and corrects extra indentation of 3rd line in typical RSpec code doesn't fail on unary operators accepts alignment inside a grouped expression registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array accepts indentation of consecutive lines in typical RSpec code accepts indented methods in LHS of []= assignment registers an offense and corrects one space indentation of 2nd line accepts an expression where the first method spans multiple lines registers an offense and corrects no indentation of second line registers an offense and corrects 3 spaces indentation of second line for possible semantic alignment accepts indented methods when EnforcedStyle is aligned accepts aligned methods in if condition registers an offense and corrects 3 spaces indentation of 2nd line accepts aligned methods in if + assignment registers an offense and corrects misaligned methods in unless condition accepts no extra indentation of third line accepts even indentation of consecutive lines in typical RSpec code registers an offense and corrects misaligned methods in until condition accepts aligned methods in constant assignment accepts correctly aligned methods in operands registers an offense and corrects misaligned methods in while condition accepts aligned methods in operator assignment does not check binary operations when string wrapped with + registers an offense and corrects extra indentation of 3rd line in typical RSpec code accepts aligned methods in a begin..end block accepts aligned methods in assignment accepts indented methods in LHS of []= assignment registers an offense and corrects no indentation of second line registers an offense and corrects extra indentation of third line accepts indented methods in for body registers an offense and corrects one space indentation of 2nd line accepts aligned method in assignment + block + assignment accepts an expression where the first method spans multiple lines registers an offense and corrects proc call without a selector registers an offense and corrects misaligned methods in local variable assignment accepts indented and aligned methods in binary operation registers an offense and corrects unaligned methods in assignment accepts indentation relative to first receiver accepts aligned method in return accepts indented methods in ordinary statement accepts indented methods inside and outside a block registers an offense and corrects one space indentation of 3rd line registers an offense and corrects misaligned methods in if condition does not check binary operations when string wrapped with backslash registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array accepts any indentation of parameters to #[] accepts correctly aligned methods in assignment accepts alignment inside a grouped expression doesn't crash on unaligned multiline lambdas registers an offense and corrects misaligned method in []= call doesn't fail on unary operators accepts indented method when there is nothing to align with for semantic alignment accepts 3 aligned methods accepts aligned method with blocks in operation assignment accepts methods being aligned with method that is an argument accepts methods being aligned with method that is an argument in assignment doesn't fail on a chain of aref calls accepts method being aligned with method in assignment registers an offense and corrects unaligned methods accepts aligned method even when an aref is in the chain registers an offense and corrects unaligned method in block body accepts method being aligned with method accepts aligned method even when an aref is first in the chain >= Ruby 2.7 accepts methods being aligned with method that is an argumentwhen using numbered parameter target_ruby_version >= 2.5 accepts key access to hash RuboCop::Cop::Lint::ErbNewArguments <= Ruby 2.5 does not register an offense when using `ERB.new` with non-keyword arguments >= Ruby 2.6 registers an offense when using `ERB.new` with non-keyword 2nd and 3rd arguments andkeyword 4th argument registers an offense when using `ERB.new` with non-keyword 2nd and 3rd arguments registers an offense when using `::ERB.new` with non-keyword 2nd, 3rd and 4th arguments does not register an offense when using `ERB.new` with keyword arguments registers an offense when using `ERB.new` with non-keyword 2nd, 3rd and 4th arguments does not register an offense when using `ERB.new` without optional arguments registers an offense when using `ERB.new` with non-keyword 2nd argument registers an offense when using `ERB.new` with non-keyword 2nd, 3rd and 4th arguments andkeyword 5th argument when using `ActionView::Template::Handlers::ERB.new` does not register an offense when using `ERB.new` without arguments RuboCop::Cop::Layout::SpaceAfterComma block argument commas without space behaves like ends with an item registers an offense does auto-correction behaves like trailing comma accepts the last comma inside hash braces when EnforcedStyle for SpaceInsideBlockBraces is no_space accepts no space between a comma and a closing brace behaves like common behavior accepts a space between a comma and a closing brace when EnforcedStyle for SpaceInsideBlockBraces is space registers an offense for no space between a comma and a closing brace behaves like common behavior accepts a space between a comma and a closing brace method call arg commas without space behaves like ends with an item registers an offense does auto-correction array index commas without space behaves like ends with an item registers an offense does auto-correction behaves like trailing comma accepts the last comma RuboCop::Cop::Lint::UnifiedInteger when Bignum without any decorations registers an offense and autocorrects when explicitly specified as toplevel constant registers an offense with MyNamespace does not register an offense when Integer without any decorations does not register an offense with MyNamespace does not register an offense when explicitly specified as toplevel constant does not register an offense when Fixnum when explicitly specified as toplevel constant registers an offense with MyNamespace does not register an offense without any decorations registers an offense and autocorrects RuboCop::Cop::Lint::ToJSON registers an offense and corrects using `#to_json` without arguments does not register an offense when using `#to_json` with arguments RuboCop::Cop::Lint::DuplicateHashKey behaves like duplicated literal key registers an offense for duplicated `"#{2}"` hash keys behaves like duplicated literal key registers an offense for duplicated `(false && true)` hash keys When a key is duplicated three times in a hash literal registers two offenses behaves like duplicated literal key registers an offense for duplicated `{ :a => 1, :b => 2 }` hash keys behaves like duplicated literal key registers an offense for duplicated `(1)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x == false)` hash keys behaves like duplicated literal key registers an offense for duplicated `1.0` hash keys behaves like duplicated literal key registers an offense for duplicated `%r{abx}ixo` hash keys when there is a duplicated key in the hash literal registers an offense behaves like duplicated literal key registers an offense for duplicated `[1, 2, 3]` hash keys behaves like duplicated literal key registers an offense for duplicated `false` hash keys behaves like duplicated literal key registers an offense for duplicated `(false or true)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `/.#{some_method_call}/` hash keys behaves like duplicated literal key registers an offense for duplicated `{ a: 1, b: 2 }` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x && false)` hash keys target ruby version >= 2.6 behaves like duplicated literal key registers an offense for duplicated `(42..)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `{ some_method_call => :sym }` hash keys behaves like duplicated literal key registers an offense for duplicated `1` hash keys behaves like duplicated literal key registers an offense for duplicated `nil` hash keys behaves like duplicated literal key registers an offense for duplicated `/./` hash keys behaves like duplicated literal key registers an offense for duplicated `!true` hash keys behaves like duplicated non literal key does not register an offense for duplicated `[some_method_call]` hash keys behaves like duplicated non literal key does not register an offense for duplicated `some_method_call` hash keys behaves like duplicated non literal key does not register an offense for duplicated `some_method_call(x, y)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `{ :sym => some_method_call }` hash keys behaves like duplicated non literal key does not register an offense for duplicated `"#{some_method_call}"` hash keys behaves like duplicated literal key registers an offense for duplicated `'str'` hash keys when there are two duplicated keys in a hash registers two offenses behaves like duplicated literal key registers an offense for duplicated `(false <=> true)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x or false)` hash keys When there is no duplicated key in the hash does not register an offense behaves like duplicated non literal key does not register an offense for duplicated `%r{abx#{foo}}ixo` hash keys RuboCop::Cop::Registry can filter down to one type exposes the number of stored cops exposes cop departments can filter down to all but one type exposes a mapping of cop names to cop classes exposes a list of cop names can be cloned #cops exposes a list of cops when dismissing a cop class allows it if done rapidly disallows it if done too late allows re-listing #qualified_cop_name qualifies names without a namespace raises an error when a cop name is ambiguous returns the provided name if no namespace is found gives back already properly qualified names emits a warning when namespace is incorrect qualifies names with the correct namespace #enabled selects only safe cops if :safe passed selects cops which are enabled in the config overrides config if :only includes the cop when new cops are introduced overrides config if :only includes the cop does not include them when specifying `--disable-pending-cops` command-line option does not include them when specifying `NewCops: enable` option in .rubocop.yml does not include them because command-line option takes precedence over .rubocop.yml when specifying `NewCops: pending` option in .rubocop.yml does not include them when specifying `--enable-pending-cops` command-line option includes them when specifying `NewCops: disable` option in .rubocop.yml includes them because command-line option takes precedence over .rubocop.yml when specifying `NewCops: enable` option in .rubocop.yml includes them when specifying `NewCops: disable` option in .rubocop.yml does not include them #contains_cop_matching? returns false for cops not included in the store can find cops matching a given name RuboCop::Cop::Lint::RedundantWithIndex registers an offense when using `ary.each.with_index { |v| v }` and corrects to `ary.each` registers an offense when using `ary.each_with_object([]).with_index { |v| v }` and corrects to `ary.each_with_object([]) { |v| v }` registers an offense when using `ary.each.with_index(1) { |v| v }` and correct to `ary.each { |v| v }` accepts an index is used as a block argument registers an offense for `ary.each_with_index { |v| v }` and corrects to `ary.each` RuboCop::ResultCache #save when the default internal encoding is UTF-8 writes non UTF-8 encodable data to file with no exception when the @path is not writable behaves like invalid cache location doesn't raise an exception behaves like invalid cache location doesn't raise an exception cached result that was saved with no command line option when --only is given is invalid when --format is given is valid and can be loaded when --display-cop-names is given is invalid when offenses are saved by autocorrect run serializes them with :uncorrected status when a cache source is read has utf8 encoding when no option is given is valid and can be loaded when end of line characters have changed is invalid when a symlink is present in the cache location and symlink attack protection is disabled permits caching and prints no warning and symlink attack protection is enabled prevents caching and prints a warning when file contents have changed is invalid when team external_dependency_checksum changes is invalid when team external_dependency_checksum is the same is valid when file permission have changed is invalid .cleanup removes the oldest files in the cache if needed the cache path when CacheRootDirectory not set and XDG_CACHE_HOME is set contains the given path and UID and XDG_CACHE_HOME is not set contains $HOME/.cache when CacheRootDirectory is set contains the given root RuboCop::Cop::Layout::HeredocIndentation quoted by " registers an offense for first line minus-level indented, with `-` registers an offense for not indented, with `~` displays message to use `<<~` instead of `<<-` accepts for indented, with `~` displays message to use `<<~` instead of `<<` registers an offense for not indented enough with whitespace line registers an offense for not indented enough with empty line registers an offense for not indented, without `~` registers an offense for too deep indented with empty line registers an offense for too deep indented with whitespace line accepts for not indented but with whitespace accepts for an empty line accepts for indented, but with `-` accepts for indented, but without `~` does not register an offense when not indented but with whitespace, with `-` registers an offense for minus level indented registers an offense for too deep indented accepts for include empty lines registers an offense for not indented when Layout/LineLength is configured accepts for long heredoc quoted by ' accepts for include empty lines registers an offense for first line minus-level indented, with `-` does not register an offense when not indented but with whitespace, with `-` registers an offense for not indented, with `~` registers an offense for not indented registers an offense for minus level indented displays message to use `<<~` instead of `<<-` registers an offense for not indented, without `~` registers an offense for too deep indented with whitespace line accepts for indented, with `~` displays message to use `<<~` instead of `<<` registers an offense for too deep indented with empty line accepts for not indented but with whitespace accepts for an empty line registers an offense for too deep indented accepts for indented, but without `~` registers an offense for not indented enough with whitespace line accepts for indented, but with `-` registers an offense for not indented enough with empty line when Layout/LineLength is configured accepts for long heredoc quoted by ` accepts for indented, with `~` accepts for an empty line accepts for indented, but without `~` registers an offense for first line minus-level indented, with `-` registers an offense for not indented, with `~` accepts for include empty lines registers an offense for too deep indented with empty line registers an offense for not indented enough with whitespace line does not register an offense when not indented but with whitespace, with `-` displays message to use `<<~` instead of `<<` displays message to use `<<~` instead of `<<-` registers an offense for minus level indented registers an offense for not indented, without `~` registers an offense for not indented registers an offense for too deep indented with whitespace line registers an offense for not indented enough with empty line accepts for not indented but with whitespace registers an offense for too deep indented accepts for indented, but with `-` when Layout/LineLength is configured accepts for long heredoc quoted by displays message to use `<<~` instead of `<<-` registers an offense for not indented registers an offense for not indented, without `~` registers an offense for not indented enough with empty line registers an offense for too deep indented with empty line accepts for indented, with `~` registers an offense for minus level indented accepts for indented, but with `-` accepts for include empty lines registers an offense for too deep indented with whitespace line accepts for not indented but with whitespace accepts for an empty line registers an offense for too deep indented registers an offense for not indented enough with whitespace line displays message to use `<<~` instead of `<<` registers an offense for first line minus-level indented, with `-` registers an offense for not indented, with `~` does not register an offense when not indented but with whitespace, with `-` accepts for indented, but without `~` when Layout/LineLength is configured accepts for long heredoc RuboCop::Cop::Layout::LeadingCommentSpace accepts sprockets directives does not register an offense for more than one # registers an offense and corrects comment without leading space does not register an offense for more than one space does not register an offense for # followed by no text accepts =begin/=end comments accepts rdoc syntax does not register an offense for only #s does not register an offense for #! on first line registers an offense and corrects #! after the first line Doxygen style when config option is disabled registers an offense and corrects using Doxygen style when config option is enabled does not register offense when using Doxygen style Gemfile Ruby comment when config option is enabled file named Gemfile does not register an offense when using ruby config as comment file not named Gemfile registers an offense when using ruby config as comment when config option is disabled registers an offense when using ruby config as comment file named config.ru registers an offense and corrects for #\ after the first line does not register an offense for #\ on first line file not named config.ru registers an offense and corrects #\ after the first line registers an offense and corrects #\ on first line RuboCop::Cop::Style::Strip registers an offense for str.rstrip.lstrip registers an offense for str.lstrip.rstrip RuboCop::Cop::Style::CommandLiteral %x commands with other delimiters than parentheses registers an offense heredoc commands is ignored when EnforcedStyle is set to backticks a single-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted a multi-line ` string without backticks is accepted a multi-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction a multi-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted a single-line %x string without backticks registers an offense and corrects to backticks a single-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction a single-line ` string without backticks is accepted a multi-line %x string without backticks registers an offense and corrects to backticks when PercentLiteralDelimiters only has a default respects the configuration when auto-correcting when PercentLiteralDelimiters is configured with curly braces respects the configuration when auto-correcting when EnforcedStyle is set to percent_x a single-line %x string with backticks is accepted a multi-line ` string with backticks registers an offense without auto-correction a single-line ` string with backticks registers an offense without auto-correction a multi-line %x string without backticks is accepted a single-line ` string without backticks registers an offense and corrects to %x a single-line %x string without backticks is accepted a multi-line %x string with backticks is accepted a multi-line ` string without backticks registers an offense and corrects to %x when PercentLiteralDelimiters is configured and a default exists ignores the default when auto-correcting when EnforcedStyle is set to mixed a multi-line ` string without backticks registers an offense and corrects to %x a single-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted a single-line ` string without backticks is accepted a single-line %x string without backticks registers an offense and corrects to backticks a multi-line ` string with backticks registers an offense without auto-correction a multi-line %x string without backticks is accepted a multi-line %x string with backticks is accepted a single-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction RuboCop::Cop::Style::OptionalBooleanParameter registers an offense when defining class method with optional boolean arg does not register an offense when defining method with keyword boolean arg registers an offense when defining method with optional boolean arg registers an offense when defining method with multiple optional boolean args does not register an offense when defining method with optonal non-boolean arg does not register an offense when defining method without args RuboCop::Cop::Layout::SpaceBeforeSemicolon registers an offense and corrects space before semicolon does not register an offense for no space before semicolons registers an offense and corrects more than one space before a semicolon inside block braces when EnforcedStyle for SpaceInsideBlockBraces is space accepts a space between an opening brace and a semicolon behaves like common behavior accepts no space between an opening brace and a semicolon when EnforcedStyle for SpaceInsideBlockBraces is no_space registers an offense and corrects a space between an opening brace and a semicolon behaves like common behavior accepts no space between an opening brace and a semicolon RuboCop::Cop::AlignmentCorrector #correct with single-line here docs does not indent body and end marker with large column deltas with heredoc in backticks (<<``) behaves like heredoc indenter does not change indentation of here doc bodies and end markers with plain heredoc (<<) behaves like heredoc indenter does not change indentation of here doc bodies and end markers simple indentation with a positive column delta indents with a negative column delta outdents within string literals does not insert whitespace RuboCop::Cop::Style::EachForSimpleLoop does not register offense if range endpoint is not constant does not register offense if range startpoint is not constant does not register offense for multiline block with parameters does not register offense for inline block with parameters does not register offense for character range when using an inclusive end range does not register offense for range not starting with zero and using param autocorrects the source with multiline block autocorrects the source with inline block autocorrects the range not starting with zero when using an exclusive end range does not register offense for range not starting with zero and using param autocorrects the source with inline block autocorrects the source with multiline block autocorrects the range not starting with zero RuboCop::Cop::Style::GlobalStdStream does not register an offense when using non std stream const does not register an offense when assigning std stream const to std stream gvar registers an offense and corrects when using std stream as const does not register an offense when assigning other const to std stream gvar RuboCop::Cop::Layout::EmptyComment registers an offense and corrects using an empty comment next to code register offenses and correct multiple aligned empty comments next to code does not register an offense when using comment text registers an offense and corrects an empty comment without space next to code registers an offense and corrects using single line empty comment registers an offense and corrects using multiline empty comments register offenses and correct multiple empty comments next to code does not register an offense when using comment text with leading and trailing blank lines disallow margin comment registers an offense and corrects using margin comment allow border comment (default) does not register an offense when using border comment disallow border comment registers an offense and corrects using border comment registers an offense and corrects using single line empty comment allow margin comment (default) does not register an offense when using margin comment RuboCop::Cop::Lint::DisjunctiveAssignmentInConstructor empty constructor accepts constructor has disjunctive assignment LHS is lvar accepts LHS is ivar registers an offense and corrects constructor calls super after assignment registers an offense and corrects constructor calls any method before disjunctive assignment accepts constructor calls super before disjunctive assignment accepts constructor does not have disjunctive assignment accepts RuboCop::Cop::Style::StringConcatenation registers an offense and corrects for string concatenation correctly handles strings with special characters registers an offense and corrects for string concatenation as part of other expression does not register an offense when using `+` with all non string arguments RuboCop::Cop::Style::RedundantException reports an offense for a raise with ::RuntimeError accepts rescue w/ non redundant error accepts rescue w/ non redundant error reports an offense for a fail with RuntimeError.new reports an offense for a raise with RuntimeError.new reports an offense for a raise with ::RuntimeError.new reports an offense for a raise with RuntimeError reports an offense for a fail with ::RuntimeError reports an offense for a fail with ::RuntimeError.new reports an offense for a fail with ::RuntimeError and () reports an offense for a fail with RuntimeError.new accepts rescue w/ non redundant error reports an offense for a raise with RuntimeError and () reports an offense for a fail with RuntimeError and () accepts a fail with ::RuntimeError if it does not have 2 args accepts rescue w/ non redundant error accepts a raise with ::RuntimeError if it does not have 2 args accepts a fail with RuntimeError if it does not have 2 args reports an offense for a raise with RuntimeError.new reports an offense for a fail with ::RuntimeError.new reports an offense for a raise with ::RuntimeError.new accepts a raise with RuntimeError if it does not have 2 args reports an offense for a fail with RuntimeError reports an offense for a raise with ::RuntimeError and () RuboCop::Cop::Layout::DotPosition Trailing dots style does not get confused by several lines of chained methods registers an offense for leading dot in multi-line call does not err on method call on same line accepts trailing dot in multi-line method call does not err on method call without a method name does not err on method call with no dots when using safe navigation operator accepts trailing dot in multi-line method call registers an offense for correct + opposite Leading dots style does not err on method call without a method name does not err on method call on same line does not err on method call with no dots accepts leading do in multi-line method call registers an offense for trailing dot in multi-line call registers an offense for correct + opposite when using safe navigation operator registers an offense for correct + opposite accepts leading do in multi-line method call when there is an intervening blank line does not register offense when there is an intervening line comment does not register offense RuboCop::Cop::Security::Eval accepts eval on a literal string accepts eval with a string that interpolates a literal registers an offense `Binding#eval` accepts eval with a multiline string registers an offense for eval as function accepts eval as method accepts eval as variable registers an offense for eval with string that has an interpolation registers an offense for eval as command accepts eval with no arguments with an explicit binding, filename, and line number registers an offense for eval as function accepts eval on a literal string registers an offense for eval as command RuboCop::Cop::Security::JSONLoad does not register an offense for JSON under another namespace allows JSON.parse allows JSON.dump registers an offense and corrects JSON.restore registers an offense and corrects JSON.load RuboCop::Cop::Style::TrivialAccessors accepts reader with different ivar name registers an offense on writer without braces accepts splats registers an offense on DSL-style trivial writer accepts blocks accepts non-trivial writer accepts reader using top level accepts an initialize method looking like a writer registers an offense on one-liner writer accepts reader nested within a module accepts reader nested within an instance_eval calll accepts expressions within writer registers an offense on instance reader registers an offense on class reader registers an offense on one-liner reader accepts expressions within reader accepts writer nested within an instance_eval call registers an offense on class writer flags a reader inside a class, inside an instance_eval call accepts non-trivial reader accepts writer using top level registers an offense on reader with braces registers an offense on instance writer accepts writer nested within a module accepts writer in a module accepts writer with different ivar name registers an offense on reader with `private` disallow predicates does not accept predicate-like reader allow predicates accepts predicate-like reader exact name match disabled registers an offense when names mismatch in reader registers an offense when names mismatch in writer with DSL allowed accepts DSL-style writer with allowed methods accepts allowed reader accepts allowed writer with AllowPredicates: false accepts allowed predicate ignore class methods accepts class reader accepts class writer RuboCop::Cop::Style::WordArray when EnforcedStyle is percent detects when the cop must be disabled to avoid offenses does not register offense for array with allowed number of strings registers an offense for arrays of strings containing hyphens registers an offense for strings with newline and tab escapes auto-corrects an array of words and character constants does not register an offense for an array with comments in it keeps the line breaks in place after auto-correct registers an offense for arrays of double quoted strings auto-corrects an array of words registers an offense for arrays of single quoted strings auto-corrects an array with one element doesn't fail in wacky ways when multiple cop instances are used does not register an offense for array of non-words does not register an offense in an ambiguous block context uses %W when autocorrecting strings with embedded newlines and tabs does not register an offense for array containing non-string detects right value of MinSize to use for --auto-gen-config auto-corrects an array of words using partial newlines registers an offense for arrays with character constants does not register an offense for array with empty strings auto-corrects an array of words in multiple lines does not register an offense on non-word strings does not register an offense for array starting with %w registers an offense in a non-ambiguous block context registers an offense for an array with comments outside of it when the default external encoding is US-ASCII registers an offense for arrays of unicode word characters when the default external encoding is UTF-8 registers an offense for arrays of unicode word characters with a WordRegex configuration which accepts almost anything uses %W when autocorrecting strings with non-printable chars uses %w for strings which only appear to have an escape when the WordRegex configuration is not a Regexp still parses the code without raising an error with a custom WordRegex configuration registers an offense for arrays of email addresses with a treacherous WordRegex configuration doesn't break when words contain delimiters doesn't break when words contain whitespace when PreferredDelimiters is specified autocorrects an array with delimiters when EnforcedStyle is array autocorrects a %W() array which uses string interpolation does not register an offense for arrays of double quoted strings does not register an offense for arrays of single quoted strings doesn't fail on strings which are not valid UTF-8 registers an offense for a %w() array autocorrects a %w() array which uses string with hyphen does not register an offense for arrays of strings with hyphens autocorrects a %w() array which uses single quotes autocorrects a %W() array which uses string with hyphen autocorrects a %W() array which uses escapes doesn't fail with `encoding: binary with non-default MinSize does not autocorrects arrays of one symbol if MinSize > 1 RuboCop::Cop::Style::PercentQLiterals when EnforcedStyle is lower_case_q without interpolation accepts single quotes registers offense for %Q accepts %q accepts double quotes with special characters accepts %Q accepts %q with interpolation accepts %Q accepts %q accepts single quotes accepts double quotes when EnforcedStyle is upper_case_q with interpolation accepts double quotes accepts single quotes accepts %q accepts %Q without interpolation accepts single quotes accepts %Q accepts double quotes registers offense for %q with special characters accepts %q accepts %Q RuboCop::Cop::Layout::EmptyLinesAroundModuleBody when EnforcedStyle is empty_lines_except_namespace when only child is class registers offense for namespace body starting with a blank requires no empty lines for namespace registers offense for namespace body ending with a blank when only child is module requires no empty lines for namespace registers offenses for namespaced module body not ending with a blank autocorrects beginning and end registers offense for namespace body ending with a blank registers offense for namespace body starting with a blank registers offenses for namespaced module body not starting with a blank when has multiple child modules requires empty lines for namespace registers offenses for namespace body starting and ending without a blank when EnforcedStyle is empty_lines registers an offense for module body not starting or ending with a blank autocorrects beginning and end registers an offense for module body not ending with a blank accepts modules with an empty body when EnforcedStyle is empty_lines_special module with constant and child module registers and autocorrects the offenses module with only constants registers and autocorrects the offenses module with empty body with empty line does NOT register offenses without empty line does NOT register offenses when first child is NOT a method does not require blank line at the beginning of module body but requires blank line before first def definition and requires blank line at the end of module body source with comment before method definition registers an offense for module beginning with a blank line source with blank lines registers an offense for module beginning with a blank line source without blank lines registers an offense for module not ending with a blank line when module has a namespace requires no empty lines for namespace and does not require blank line at the beginning of module body but requires blank line at the end of module body source with constants registers and autocorrects the offenses source without blank lines registers and autocorrects the offenses source with blank lines registers and autocorrects the offenses when namespace has multiple children requires empty lines for namespace when first child is method requires blank line at the beginning and ending of module body when module has a namespace requires no empty lines for namespace but requires blank line at the beginning and ending of module body source with blank lines autocorrects the offenses source without blank lines registers and autocorrects the offenses source without blank lines registers an offense for module not beginning and ending with a blank line when EnforcedStyle is no_empty_lines registers an offense for module body ending with a blank registers an offense for module body starting with a blank autocorrects beginning and end RuboCop::Cop::Style::TrailingCommaInArrayLiteral with multi-line list of values when EnforcedStyleForMultiline is no_comma auto-corrects unwanted comma where HEREDOC has commas registers an offense for trailing comma accepts a literal with no trailing comma accepts HEREDOC with commas when EnforcedStyleForMultiline is comma accepts a multiline array with a single item and trailing comma accepts literal with two of the values on the same line accepts a multiline word array registers an offense for a literal with two of the values on the same line and a trailing comma accepts trailing comma accepts an empty array being passed as a method argument when closing bracket is on same line as last value accepts literal with no trailing comma when EnforcedStyleForMultiline is consistent_comma accepts a multiline word array accepts trailing comma accepts two values on the same line accepts a multiline array with items on a single line andtrailing comma accepts a multiline array with a single item and trailing comma registers an offense for literal with two of the values on the same line and no trailing comma when closing bracket is on same line as last value registers an offense for no trailing comma with single line list of values when EnforcedStyleForMultiline is consistent_comma accepts rescue clause accepts literal without trailing comma registers an offense for trailing comma accepts single element literal without trailing comma accepts empty literal when EnforcedStyleForMultiline is comma accepts single element literal without trailing comma accepts literal without trailing comma registers an offense for trailing comma accepts rescue clause accepts empty literal when EnforcedStyleForMultiline is no_comma accepts single element literal without trailing comma accepts rescue clause accepts empty literal registers an offense for trailing comma accepts literal without trailing comma RuboCop::Cop::Lint::DuplicateMethods doesn't register an offense for different private methods in class registers an offense for duplicate private self methods in module registers offenses for duplicate attr_accessor in dynamic class registers an offense for duplicate private methods in dynamic class registers an offense for a duplicate instance method in separate module blocks registers an offense for a duplicate class method in separate class blocks doesn't register an offense for different private methods in module registers an offense for duplicate method in dynamic module registers offense for a duplicate instance method in separate files registers offenses for duplicate assignable attr in class accepts for attr_writer and getter in dynamic module recognizes difference between instance and class methods in dynamic module doesn't register an offense for non-duplicate method in dynamic module accepts for non-duplicate alias_method in dynamic module doesn't register an offense for alias for gvar in dynamic class registers an offense for duplicate private self methods in dynamic module registers an offense for duplicate methods at top level registers an offense for duplicate attr_reader in dynamic class registers an offense for duplicate alias_method in dynamic module understands nested modules registers an offense for duplicate class methods with named receiver in module registers an offense when class << exp is used (PENDING: No reason given) accepts for non-duplicate alias_method in class_eval block understands class << self doesn't register an offense for non-duplicate alias in dynamic class registers an offense for duplicate attr_writer in class_eval block registers an offense for a duplicate instance method in separate class blocks registers an offense for duplicate alias_method in class registers offenses for duplicate attr_accessor in class_eval block understands nested modules ignores Class.new blocks which are assigned to local variables registers an offense for duplicate class methods in module recognizes difference between instance and class methods in dynamic class registers an offense for duplicate attr_reader in class_eval block accepts for attr_reader and setter in class_eval block doesn't register offense for non-duplicate class methods in module doesn't register an offense for alias for gvar in class_eval block registers an offense for duplicate alias_method in class_eval block doesn't register an offense for alias for gvar in module registers 2 offenses for pair of duplicate methods in module accepts for attr_reader and setter in dynamic class doesn't register an offense for different private methods in class_eval block doesn't register offense for non-duplicate class methods in dynamic module registers offenses for duplicate attr_accessor in module registers offenses for duplicate assignable attr in dynamic class doesn't register an offense for non-duplicate alias in module registers an offense for duplicate alias_method in module registers an offense for duplicate class methods with `<<` and named receiver in class registers an offense for duplicate class methods with `self` and named receiver in class registers an offense for duplicate alias in module understands nested modules registers an offense for a duplicate instance method in separate dynamic module blocks doesn't register an offense for different private methods in dynamic module registers an offense when class << exp is used (PENDING: No reason given) registers an offense for a duplicate instance method in separate dynamic class blocks accepts for non-duplicate alias_method in module registers offenses for duplicate assignable attr in class_eval block registers offenses for duplicate assignable attr in module accepts for attr_writer and getter in class handles class_eval with implicit receiver registers offense for a duplicate instance method in separate files registers offenses for duplicate assignable attr in dynamic module registers an offense for duplicate attr in class_eval block registers an offense for duplicate protected methods in dynamic module registers an offense for duplicate class methods with named receiver in class registers an offense for duplicate attr in dynamic module doesn't register an offense for alias for gvar in class registers an offense for duplicate private methods in class doesn't register an offense for non-duplicate alias in dynamic module registers an offense for duplicate method in module registers an offense for duplicate class methods in class registers 2 offenses for pair of duplicate methods in dynamic module registers an offense for duplicate method in dynamic class doesn't register offense for non-duplicate class methods in dynamic class registers an offense for duplicate alias_method in dynamic class registers an offense when class << exp is used (PENDING: No reason given) registers an offense for duplicate alias in dynamic module registers an offense for duplicate class methods in dynamic module registers an offense for duplicate protected methods in dynamic class registers offenses for duplicate attr_accessor in class registers an offense for duplicate attr_writer in dynamic class registers an offense for duplicate class methods in class_eval block accepts for attr_writer and getter in dynamic class doesn't register an offense for non-duplicate method in class doesn't register an offense for different private methods in dynamic class accepts for non-duplicate alias_method in dynamic class registers an offense for duplicate attr_writer in class registers an offense for duplicate attr_reader in class registers an offense for duplicate attr_reader in module registers an offense for duplicate attr_writer in module registers an offense for duplicate method in class registers an offense for duplicate class methods in dynamic class registers offense for a duplicate instance method in separate files registers an offense when class << exp is used (PENDING: No reason given) registers an offense for a duplicate class method in separate module blocks registers an offense for duplicate protected methods in module understands nested modules understands class << self registers an offense for duplicate private methods in module registers an offense for duplicate private self methods in dynamic class registers offenses for duplicate attr_accessor in dynamic module registers 2 offenses for pair of duplicate methods in dynamic class registers an offense for duplicate private self methods in class registers an offense for duplicate class methods with `self` and named receiver in module registers an offense for a duplicate instance method in separate class_eval block blocks doesn't register an offense for non-duplicate alias in class_eval block registers an offense for duplicate private self methods in class_eval block accepts for attr_writer and getter in module registers an offense for duplicate protected methods in class_eval block registers an offense for duplicate attr in class registers an offense for a duplicate class method in separate dynamic module blocks doesn't register an offense for alias for gvar in dynamic module registers 2 offenses for pair of duplicate methods in class_eval block registers an offense for a duplicate class method in separate class_eval block blocks registers an offense for duplicate private methods in class_eval block understands class << self doesn't register an offense for non-duplicate alias in class recognizes difference between instance and class methods in class_eval block registers an offense when class << exp is used (PENDING: No reason given) accepts for attr_reader and setter in class doesn't register an offense for non-duplicate method in module registers an offense for duplicate protected methods in class doesn't register an offense for non-duplicate method in class_eval block registers an offense for duplicate alias in class_eval block doesn't register an offense for non-duplicate method in dynamic class understands class << self registers 2 offenses for pair of duplicate methods in class understands class << A registers an offense for duplicate attr_writer in dynamic module registers an offense for duplicate alias in class registers an offense for a duplicate class method in separate dynamic class blocks registers an offense for duplicate method in class_eval block registers an offense for duplicate attr in dynamic class accepts for attr_reader and setter in dynamic module registers offense for a duplicate instance method in separate files doesn't register offense for non-duplicate class methods in class_eval block registers an offense for duplicate attr_reader in dynamic module recognizes difference between instance and class methods in class registers offense for a duplicate instance method in separate files registers an offense for duplicate private methods in dynamic module registers an offense for duplicate alias in dynamic class recognizes difference between instance and class methods in module accepts for attr_reader and setter in module registers an offense for duplicate class methods with `<<` and named receiver in module accepts for non-duplicate alias_method in class doesn't register offense for non-duplicate class methods in class understands class << self registers an offense for duplicate attr in module ignores method definitions in RSpec `describe` blocks understands nested modules accepts for attr_writer and getter in class_eval block when path is in the project root adds a message with relative path when path is not in the project root adds a message with absolute path RuboCop::Cop::Lint::RaiseException registers an offense and corrects for `raise` with `Exception` and message does not register an offense for `fail` without arguments registers an offense and corrects for `fail` with `Exception` registers an offense and corrects for `fail` with `Exception.new` and message does not register an offense for `raise` without arguments registers an offense and corrects for `raise` with `Exception` registers an offense and corrects for `raise` with `::Exception` registers an offense and corrects for `raise` with `::Exception` and message registers an offense and corrects for `raise` with `Exception.new(args*)` registers an offense and corrects for `raise` with `Exception.new` and message registers an offense and corrects for `raise` with `::Exception.new` registers an offense and corrects for `fail` with `Exception` and message does not register an offense when raising Exception with explicit namespace when under namespace registers an offense and corrects when Exception with cbase specified does not register an offense when Exception without cbase specified RuboCop::Cop::Generator #todo provides a checklist for implementing the cop #snake_case converts "RSpec" to snake_case converts "Lint" to snake_case converts "FooBar" to snake_case #write_spec refuses to overwrite existing files generates a helpful starting spec file with the class filled in compliance with rubocop generates a spec file that has no offense (PENDING: Temporarily skipped with xit) generates a cop file that has no offense (PENDING: Temporarily skipped with xit) .new does not accept an unqualified cop #inject_config with version provided uses the provided version when it is the middle in alphabetical order inserts the cop when it is the last in alphabetical order inserts the cop when it is the first in alphabetical order inserts the cop #write_source generates a helpful source file with the name filled in refuses to overwrite existing files RuboCop::Cop::Style::EmptyLambdaParameter does not crash on a super registers an offense for an empty block parameter with a lambda accepts a keyword lambda RuboCop::Cop::Layout::IndentationWidth with Width set to 4 for a file with byte order mark accepts correctly indented method definition with if statement registers an offense for bad indentation of an if body with ignored patterns set accepts unindented lines for those keywords #autocorrect corrects bad indentation with Width set to 2 with block accepts badly indented code if block end is not on separate line accepts a correctly indented block body accepts an empty block body registers an offense for bad indentation of a {} body registers an offense for bad indentation of a do/end body when consistency style is indented_internal_methods registers an offense for bad indentation in a do/end body when using safe navigation operator registers an offense for an if with setter registers an offense for bad indentation of a {} body with if statement registers offense for bad indentation of modifier if in else accepts if/elsif/else/end laid out as a table accepts a correctly aligned if/elsif/else/end accepts if/then/else/end laid out as another table does not raise any error with empty braces accepts `rescue` after an empty body accepts a one line if statement registers offense for bad indentation of ternary inside else registers an offense for bad indentation of an else body accepts `ensure` after an empty body registers an offense for bad indentation of an if body accepts indentation after if on new line after assignment registers an offense for bad indentation of an elsif body accepts an empty if accepts an if/else branches with rescue clauses registers an offense for bad indentation of an else body when if body contains no code registers an offense for bad indentation of an else body when if and elsif body contains no code accepts a correctly aligned if/elsif/else/end as a method argument #autocorrect leaves block unchanged if block end is not on its own line does not indent heredoc strings leaves rescue ; end unchanged corrects bad indentation indents parenthesized expressions handles lines with only whitespace does not correct in scopes that contain block comments with assignment when alignment style is keyword and end is aligned with keyword accepts an if/else in assignment accepts a while in assignment accepts an if/else in assignment on next line accepts an if in assignment accepts an until in assignment and end is aligned with variable autocorrects bad indentation registers an offense for a while registers an offense for an if when alignment style is variable and end is aligned with variable accepts an if/else with chaining after the end accepts an if with end aligned with setter accepts an if/else with chaining with a block after the end accepts an if with end aligned with element assignment accepts an if with end aligned with variable accepts an if/else and end is aligned with keyword registers an offense for a while registers an offense for an if with setter registers an offense for an until registers an offense for an if with element assignment registers an offense for an if accepts an if/else in assignment on next line and end is aligned randomly registers an offense for a while registers an offense for an until registers an offense for an if when alignment style is start_of_line and end is aligned randomly registers an offense for a while registers an offense for an until registers an offense for an if and end is aligned with keyword accepts an if/else in assignment on next line registers an offense for an until registers an offense for an if with element assignment registers an offense for an if registers an offense for an if with setter registers an offense for a while and end is aligned with variable accepts an if with end aligned with setter accepts an if/else with chaining after the end accepts an if with end aligned with variable accepts an if/else with chaining with a block after the end accepts an if/else accepts an if with end aligned with element assignment with for accepts an empty for registers an offense for bad indentation of a for body with begin/rescue/else/ensure/end registers an offense for bad indentation of bodies with unless registers an offense for bad indentation of an unless body accepts an empty unless with def/rescue/end registers an offense for bad indent of defs bodies with a modifier registers an offense for bad indentation of bodies with def/defs when end is aligned with def accepts an empty def body registers an offense for bad indentation of a defs body with an assignment registers an offense for bad indentation of a def body accepts an empty defs body when modifier and def are on the same line registers an offense for bad indentation of a defs body accepts a correctly aligned body registers an offense for bad indentation of a def body when end is aligned with start of line accepts an empty defs body registers an offense for bad indentation of a def body registers an offense for bad indentation of a defs body with an assignment accepts an empty def body when multiple modifiers and def are on the same line registers an offense for bad indentation of a defs body registers an offense for bad indentation of a def body accepts a correctly aligned body when multiple modifiers are used in a block anda method call is made at end of the block registers an offense for bad indentation of a def body registers an offense for bad indentation of a def accepts a correctly aligned body when modifier and def are on the same line registers an offense for bad indentation of a defs body accepts a correctly aligned body registers an offense for bad indentation of a def body with case accepts case/when/else laid out as a table accepts case/when/else with then beginning a line registers an offense for bad indentation in a case/when body accepts aligned values in when clause accepts indented when/else plus indented body accepts correctly indented case/when/else registers an offense for bad indentation in a case/else body with class accepts an empty class body registers an offense for bad indentation of a class body with access modifier registers an offense and corrects for bad modifier indentation before good method definition registers an offense for bad indentation of sections when consistency style is outdent accepts access modifier is outdent when consistency style is indented_internal_methods registers an offense for normal non-indented internal methods indentation when defined in a singleton class registers an offense for normal non-indented internal methods indentation when consistency style is normal accepts indented public, protected, and private registers offenses for indented_internal_methods indentation with module when consistency style is normal registers an offense for bad indentation of a module body accepts an empty module body when consistency style is indented_internal_methods registers an offense for bad indentation of a module body accepts normal non-indented internal methods ofmodule functions with while/until accepts an empty while registers an offense for bad indentation of an until body registers an offense for bad indentation of begin/end/while registers an offense for bad indentation of a while body RuboCop::Cop::Naming::AccessorMethodName accepts method set_something with no args registers an offense for singleton method get_... with no args accepts singleton method get_something with args accepts singleton method set_something with two args accepts method get_something with args registers an offense for method get_... with no args registers an offense for singleton method set_... with one args accepts singleton method set_something with no args accepts method set_something with two args registers an offense for method set_something with one arg RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier EnforcedStyle is `only_before` accepts blank line after public does not register an offense when `end` immediately after protected accepts missing blank line after private does not register an offense when `end` immediately after private registers an offense for missing blank line before public registers an offense for missing blank line before module_function registers an offense for missing blank line before private accepts blank line after module_function registers an offense for blank line after protected registers an offense for blank line after private registers an offense for missing blank line before protected accepts missing blank line after protected EnforcedStyle is `around` accepts missing blank line when at the end of specifying `self` autocorrects blank line after #{access_modifier} with comment accepts missing blank line when at the end of block accepts missing blank line when at the end of specifying a superclass accepts missing blank line when at the end of specifying a superclass accepts missing blank line when at the beginning of filewhen specifying a superclass that breaks the line autocorrects blank line after #{access_modifier} with comment recognizes blank lines with DOS style line endings accepts missing blank line when specifying a superclass that breaks the line ignores comment line before public requires blank line before module_function accepts missing blank line when at the end of specifying a superclass accepts missing blank line when at the beginning of module ignores private with a right-hand-side condition accepts missing blank line when at the end of specifying a superclass requires blank line after module_function requires blank line after, but not before, protected when at the beginning of class/module accepts missing blank line when at the beginning of class accepts missing blank line when at the end of specifying `self` accepts missing blank line when at the beginning of filewhen specifying a superclass that breaks the line ignores an accessor with the same name as public above a method definition recognizes blank lines with DOS style line endings accepts missing blank line when at the end of block ignores module_function with a right-hand-side condition requires blank line when next line started with end ignores public inside a method call accepts missing blank line when at the end of specifying `self` accepts missing blank line when specifying `self` that breaks the line accepts missing blank line when at the end of block requires blank line after public accepts missing blank line when at the beginning of sclass accepts missing blank line when at the beginning of class accepts missing blank line when at the end of block autocorrects blank line after #{access_modifier} with comment ignores an accessor with the same name as protected above a method definition accepts missing blank line when specifying a superclass that breaks the line accepts missing blank line when specifying `self` that breaks the line accepts missing blank line when at the beginning of class requires blank line when next line started with end ignores private deep inside a method call recognizes blank lines with DOS style line endings ignores comment line before protected ignores protected inside a method call autocorrects blank line after #{access_modifier} with comment accepts missing blank line when specifying `self` that breaks the line accepts missing blank line when at the beginning of filewhen specifying a superclass that breaks the line accepts missing blank line when at the beginning of sclass requires blank line after, but not before, public when at the beginning of class/module accepts missing blank line when specifying `self` that breaks the line ignores comment line before private ignores protected deep inside a method call ignores an accessor with the same name as private above a method definition accepts missing blank line when at the beginning of module ignores private inside a method call requires blank line when next line started with end requires blank line after, but not before, private when at the beginning of class/module recognizes blank lines with DOS style line endings ignores comment line before module_function accepts missing blank line when at the beginning of module requires blank line before protected ignores module_function inside a method call requires blank line when next line started with end ignores an accessor with the same name as module_function above a method definition requires blank line after private requires blank line after protected requires blank line before public accepts missing blank line when at the beginning of sclass ignores public with a right-hand-side condition accepts missing blank line when at the beginning of filewhen specifying a superclass that breaks the line requires blank line before private ignores protected with a right-hand-side condition ignores module_function deep inside a method call accepts missing blank line when at the beginning of class accepts missing blank line when specifying a superclass that breaks the line ignores public deep inside a method call accepts missing blank line when at the beginning of sclass accepts missing blank line when at the end of specifying `self` accepts missing blank line when specifying a superclass that breaks the line accepts missing blank line when at the beginning of module requires blank line after, but not before, module_function when at the beginning of class/module at the beginning of block for blocks defined with {} accepts missing blank line accepts missing blank line with arguments for blocks defined with do requires blank line after, but not before, module_function accepts missing blank line with arguments accepts missing blank line at the beginning of block for blocks defined with do requires blank line after, but not before, private accepts missing blank line with arguments accepts missing blank line for blocks defined with {} accepts missing blank line with arguments accepts missing blank line at the beginning of block for blocks defined with do accepts missing blank line with arguments accepts missing blank line requires blank line after, but not before, protected for blocks defined with {} accepts missing blank line accepts missing blank line with arguments at the beginning of block for blocks defined with do accepts missing blank line requires blank line after, but not before, public accepts missing blank line with arguments for blocks defined with {} accepts missing blank line accepts missing blank line with arguments RuboCop::Cop::Style::SymbolLiteral accepts string syntax when symbol start with a digit registers an offense for word-line symbols using string syntax accepts string syntax when symbols have whitespaces in them accepts string syntax when symbols have special chars in them RuboCop::Cop::Style::RescueStandardError implicit accepts rescue modifier when rescuing in a begin block accepts rescuing StandardError with other errors accepts rescuing a single error class other than StandardError accpets rescuing no error class accepts rescuing StandardError with other errors, assigned to a variable accepts rescuing no error class, assigned to a variable accepts rescuing a single error class other than StandardError, assigned to a variable accepts rescuing ::StandardError with other errors when rescuing StandardError by itself registers an offense with ::StandardError registers an offense when the error is assigned to a variable registers an offense with ::StandardError registers an offense when rescuing in a method definition accepts rescuing no error class accepts rescuing a single error other than StandardError accepts rescuing StandardError with other errors, assigned to a variable accepts rescuing no error class, assigned to a variable accepts rescuing StandardError with other errors accepts rescuing a single error other than StandardError, assigned to a variable when rescuing StandardError by itself registers an offense when the error is assigned to a variable registers an offense explicit accepts rescue modifier when rescuing in a method definition accepts rescueing a single error other than StandardError accepts rescuing StandardError with other errors, assigned to a variable accepts rescueing a single error other than StandardError, assigned to a variable accepts rescuing StandardError by itself, assigned to a variable accepts rescuing StandardError by itself accepts rescuing StandardError with other errors when the error is assigned to a variable registers an offense when rescue is called without an error class registers an offense when rescuing in a begin block accepts rescuing StandardError by itself, assigned to a variable accepts rescuing StandardError with other errors accepts rescuing StandardError with other errors, assigned to a variable accepts rescuing a single error other than StandardErrorassigned to a variable accepts rescuing StandardError by itself accepts rescuing a single error other than StandardError when calling rescue without an error class registers an offense when the error is assigned to a variable registers an offense RuboCop::Cop::Lint::FormatParameterMismatch does not register an offense when arguments and fields match does not register an offense for format with splat argument identifies correctly digits for spacing in format does not register an offense for sprintf with splat argument registers offense with sprintf does not register an offense when using named parameters with escaped `%` registers an offense for String#% does not register an offense argument is the result of a message send accepts an extra arg for dynamic width with other preceding flags constants do not register offenses correctly ignores double percent registers an offense when there are more arguments than expected does not register offense for `String#%` when arguments, fields match finds faults even when the string looks like a HEREDOC registers an offense when there are less arguments than expected correctly parses different sprintf formats does not register an offense when single argument is not an array does not register an offense when using named parameters registers an offense when calling Kernel.format and the fields do not match ignores percent right next to format string registers an offense if extra argument for dynamic width not given registers an offense when calling Kernel.sprintf and the fields do not match accepts an extra argument for dynamic width does not register an offense when single argument is a hash on format with %<> interpolations and 1 argument does not register an offense and multiple arguments registers an offense when format is invalid registers an offense when using (digit)$ flag does not register an offense does not register an offense when match between the maximum value specified by (digit)$ flag and the number of arguments registers an offense when mismatch between the maximum value specified by (digit)$ flag and the number of arguments when splat argument is present does not register an offense when args count is less than expected when args count is more than expected registers an offense for `#%` registers an offense for `#format` registers an offense for `#sprintf` behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable with wildcard does not register an offense for width does not register an offense for multiple wildcards does not register an offense for width and precision does not register an offense for precision behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable when passed an empty array does not register an offense behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable when multiple arguments are called for and a single variable argument is passed does not register an offense and a single send node is passed does not register an offense when argument itself contains format characters and formats in format string and argument are not equal ignores argument formatting when format is not a string literal does not register an offense behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable on format with %{} interpolations and 1 argument does not register an offense and multiple arguments registers an offense behaves like variables does not register an offense for format called on a variable does not register an offense for % called on a variable does not register an offense for format called on a variable RuboCop::Cop::Layout::SpaceBeforeComment registers an offense and corrects missing space before an EOL comment accepts an EOL comment with a preceding space accepts a comment that begins a line accepts a doc comment RuboCop::Cop::Style::InlineComment does not register an offense for a standalone comment does not register an offense for special rubocop inline comments registers an offense for a trailing inline comment RuboCop::Cop::Lint::AmbiguousOperator with a keyword splat operator in the first argument without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator registers an offense and corrects with parentheses around the keyword splat operator does not register an offense with a splat operator in the first argument with parentheses around the splatted argument does not register an offense without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator registers an offense and corrects with `-` unary operator in the first argument with parentheses around the operator does not register an offense without parentheses without whitespaces on the right of the operator registers an offense and corrects with a whitespace on the right of the operator does not register an offense with a block ampersand in the first argument without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator registers an offense and corrects with parentheses around the block argument does not register an offense with `+` unary operator in the first argument without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator when a method with no arguments is used in advance registers an offense and corrects without whitespaces on the right of the operator registers an offense and corrects with parentheses around the operator does not register an offense RuboCop::Cop::Style::TrailingUnderscoreVariable configured to allow named underscore variables does not register an offense for multiple underscore variables preceded by a named splat underscore variable registers an offense for an underscore as the last param when there is also an underscore as the first param does not register an offense for an underscore preceded by a splat variable and another underscore does not register an offense for multiple underscores preceded by a splat variable does not register an offense for an underscore variable preceded by a named splat underscore variable does not register an offense for underscores at the beginning does not register an offense when there are no underscores registers an offense for multiple underscore variables preceded by a splat underscore variable registers an offense when multiple underscores are used as the last variables of parallel assignment does not register an offense for an underscore preceded by a splat variable does not register an offense for a named splat underscore as the last variable registers an offense when the last variable of parallel assignment is an underscore does not register an offense for a named underscore variable preceded by a splat variable registers an offense for nested assignments with trailing underscores does not register an offense for named variables that start with an underscore does not register an offense for multiple named underscores preceded by a splat variable registers an offense for splat underscore as the last variable registers an offense when underscore is the second to last variable and blank is the last variable does not register an offense for a named variable preceded by a names splat underscore variable registers an offense when underscore is the only variable in parallel assignment does not register an offense for complex nested assignments without trailing underscores does not register an offense for an underscore preceded by a splat variable anywhere in the argument chain does not register an offense for nested assignments without trailing underscores registers an offense for complex nested assignments with trailing underscores autocorrect with parentheses leaves parentheses but removes trailing underscores leaves parentheses but removes trailing underscores and commas removes assignment part when every assignment is to `_` removes assignment part when it is the only variable configured to not allow named underscore variables registers an offense for named variables that start with an underscore registers an offense for splat underscore as the last variable registers an offense when underscore is the second to last variable and blank is the last variable registers an offense when the last variable of parallel assignment is an underscore does not register an offense for nested assignments without trailing underscores does not register an offense for a named variable preceded by a names splat underscore variable registers an offense for an underscore variable preceded by a named splat underscore variable does not register an offense for multiple named underscores preceded by a splat variable does not register an offense for complex nested assignments without trailing underscores does not register an offense for a named underscore variable preceded by a splat variable does not register an offense for an underscore preceded by a splat variable and another underscore registers an offense for an underscore as the last param when there is also an underscore as the first param registers an offense for multiple underscore variables preceded by a named splat underscore variable does not register an offense for an underscore preceded by a splat variable registers an offense when multiple underscores are used as the last variables of parallel assignment registers an offense for multiple underscore variables preceded by a splat underscore variable does not register an offense for multiple underscores preceded by a splat variable registers an offense for complex nested assignments with trailing underscores registers an offense when underscore is the only variable in parallel assignment registers an offense for an underscore preceded by a named splat underscore does not register an offense for underscores at the beginning does not register an offense for an underscore preceded by a splat variable anywhere in the argument chain registers an offense for nested assignments with trailing underscores does not register an offense for a named underscore preceded by a splat variable registers an offense for a named splat underscore as the last variable does not register an offense when there are no underscores autocorrect with parentheses leaves parentheses but removes trailing underscores and commas removes assignment part when it is the only variable leaves parentheses but removes trailing underscores removes assignment part when every assignment is to `_` RuboCop::Cop::Lint::ImplicitStringConcatenation on adjacent string literals on the same line registers an offense when the string literals contain newlines registers an offense does not register an offense for a single string on adjacent string literals on different lines does not register an offense on a string with interpolations does register an offense when inside an array notes that the strings could be separated by a comma instead on a single string literal does not register an offense when in a method call's argument list notes that the strings could be separated by a comma instead RuboCop::Cop::Lint::EmptyInterpolation finds interpolations in string-like contexts accepts non-empty interpolation registers an offense and corrects #{} in interpolation registers an offense and corrects #{ } in interpolation RuboCop::Cop::Style::YodaCondition enforce not yoda registers an offense for nil on left accepts number on both sides registers an offense number on left of comparison accepts accessor and variable on left in boolean expression accepts class variable on left accepts instance variable on left accepts global variable on left accepts interpolated string on left accepts safe navigation on left accepts array of numbers on both sides accepts __FILE__ on left in negated program name check accepts string literal on left of case equality check accepts method call on receiver on left accepts number on left of <=> accepts variable on left after assign accepts negation accepts __FILE__ on left in program name check registers an offense number on left accepts subtraction expression on left of comparison registers an offense for string literal on left accepts string literal on right accepts interpolated regex on left registers an offense for boolean literal on left accepts assignment within an if or ternary statement registers an offense for nil on left in ternary condition registers an offense for number on left of <= in ternary condition registers an offense for number on left of >= in ternary condition registers an offense for number on left of comparison in if condition registers an offense for number on left in if condition registers an offense for number on left in modifier if with EnforcedStyle: forbid_for_equality_operators_only accepts number on left of comparison accepts mixed order in comparisons accepts nil on left of comparison registers an offense for negated equality check registers an offense for equality check enforce yoda accepts string literal on left accepts assignment registers an offense for string literal on right accepts subtraction on right of comparison accepts global variable on right registers an offense for number on right of comparison accepts string literal on right of case equality check accepts accessor and variable on right in boolean expression registers an offense for nil on right accepts numbers on both sides accepts variable on right after assignment accepts instance variable on right accepts method call on receiver on right accepts arrays of numbers on both sides accepts class variable on right accepts number on left of <=> accepts negation registers an offense for boolean literal on right accepts safe navigation on right registers an offense for number on right within an if or ternary statement registers an offense for number on right of <= in ternary condition registers an offense for nil on right in ternary condition registers an offense number on right in if condition registers an offense number on right of comparison in if condition registers an offense for number on right of >= in ternary condition registers an offense for number on right in modifier if with EnforcedStyle: require_for_equality_operators_only accepts nil on right of comparison registers an offense for negated equality check accepts mixed order in comparisons registers an offense for equality check accepts number on right of comparison RuboCop::Formatter::HTMLFormatter outputs the result in HTML outputs the cached result in HTML RuboCop::Cop::Layout::ConditionPosition accepts condition on the same line registers an offense and corrects for condition on the next line accepts condition on a different line for modifiers registers an offense and corrects for condition on the next line registers an offense and corrects for condition on the next line accepts condition on the same line accepts condition on the same line registers an offense and corrects for condition on the next line accepts condition on a different line for modifiers registers an offense and corrects for elsif condition on the next line accepts condition on a different line for modifiers handles ternary ops accepts condition on the same line accepts condition on a different line for modifiers RuboCop::Cop::Naming::PredicateName with permitted predicate names accepts method name which is in permitted list with method definition macros registers an offense when using an internal affair macro accepts method name when corrected name is invalid identifier registers an offense when using `define_method` without method definition macros accepts method name when corrected name is invalid identifier registers an offense when using `define_method` does not register any offenses when using an internal affair macro without restricted prefixes registers an offense when method name starts with "has" registers an offense when method name starts with "is" accepts method name that starts with unknown prefix accepts method name when corrected name is invalid identifier with restricted prefixes accepts method name when corrected name is invalid identifier registers an offense when method name starts with "is" registers an offense when method name starts with "has" accepts method name that is an assignment accepts method name that starts with unknown prefix RuboCop::Cop::Gemspec::OrderedDependencies behaves like ordered dependency when add_runtime_dependency when gems are not alphabetically sorted registers an offense When gems are alphabetically sorted does not register any offenses when each individual group of line is sorted does not register any offenses when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: true accepts with TreatCommentsAsGroupSeparators: false registers an offense When using method call to gem names does not register any offenses When using a local variable in an argument of dependent gem does not register any offenses behaves like ordered dependency when add_development_dependency when gems are not alphabetically sorted registers an offense when each individual group of line is sorted does not register any offenses When gems are alphabetically sorted does not register any offenses when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: false registers an offense with TreatCommentsAsGroupSeparators: true accepts behaves like ordered dependency when add_dependency when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: false registers an offense with TreatCommentsAsGroupSeparators: true accepts when gems are not alphabetically sorted registers an offense When gems are alphabetically sorted does not register any offenses when each individual group of line is sorted does not register any offenses when different dependencies are consecutive does not register any offenses RuboCop::Cop::EnforceSuperclass registers an offense for top-level constant ::Class.new definition registers an offense for models that subclass ::ActiveRecord::Base registers an offense for models that subclass ActiveRecord::Base registers an offense for model defined using top-level registers an offense for single-line definitions registers an offense for Class.new definition when MyModel subclasses ApplicationRecord behaves like no offense registers no offenses for `MyModel = Class.new(ApplicationRecord) do end MyModel = Class.new(ApplicationRecord) ` behaves like no offense registers no offenses for `MyModel = ::Class.new(::ApplicationRecord) do end MyModel = ::Class.new(::ApplicationRecord) ` behaves like no offense registers no offenses for `class MyModel < ::ApplicationRecord; end` behaves like no offense registers no offenses for `class MyModel < ApplicationRecord; end` when ApplicationRecord subclasses ActiveRecord::Base behaves like no offense registers no offenses for `ApplicationRecord = Class.new(::ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `class ApplicationRecord < ActiveRecord::Base; end` behaves like no offense registers no offenses for `ApplicationRecord = Class.new(ActiveRecord::Base) ` behaves like no offense registers no offenses for `::ApplicationRecord = ::Class.new(::ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `ApplicationRecord = Class.new(ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `::ApplicationRecord = Class.new(ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `::ApplicationRecord = ::Class.new(::ActiveRecord::Base) ` behaves like no offense registers no offenses for `class ::ApplicationRecord < ActiveRecord::Base; end` RuboCop::Cop::Style::NestedTernaryOperator registers an offense and corrects for a nested ternary operator expression registers an offense and corrects for a nested ternary operator expression with block accepts a non-nested ternary operator within an if RuboCop::Cop::Style::ClassMethods registers an offense for methods using a module name does not register an offense for other top-level singleton methods does not register an offense outside class/module bodies registers an offense for methods using a class name does not register an offense for methods using self RuboCop::Cop::Style::BisectedAttrAccessor registers an offense and corrects when attr and attr_writer exists does not register an offense when only one accessor of the name exists does not register an offense when using `attr_accessor` registers an offense and corrects when both accessors of the name exists and accessor contains multiple names registers an offense and corrects when both accessors of the splat exists does not register an offense when accessors are withing different visibility scopes registers an offense and corrects when both accessors of the name exists registers an offense and corrects when withing eigenclass registers an offense and corrects when both accessors are in the same visibility scope RuboCop::Cop::Style::RedundantFetchBlock with SafeForConstants: true does not register an offense when using `#fetch` with `Rails.cache` does not register an offense when using `#fetch` with an argument in the block registers an offense and corrects when using `#fetch` with Integer in the block registers an offense and corrects when using `#fetch` with Float in the block registers an offense and corrects when using `#fetch` with String in the block and strings are frozen registers an offense and corrects when using `#fetch` with empty block does not register an offense when using `#fetch` with String in the block and strings are not frozen registers an offense and corrects when using `#fetch` with constant in the block does not register an offense when using `#fetch` with interpolated Symbol in the block does not register an offense when using `#fetch` with argument fallback registers an offense and corrects when using `#fetch` with Rational in the block registers an offense and corrects when using `#fetch` with Complex in the block registers an offense and corrects when using `#fetch` with Symbol in the block with SafeForConstants: false does not register an offense when using `#fetch` with constant in the block RuboCop::Cop::Layout::ClosingParenthesisIndentation accepts begin nodes that are not grouped expressions for method definitions with no line break before 1st parameter accepts a correctly aligned ) accepts empty () registers an offense for misaligned ) with line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) for method assignments with indented parameters with line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) without arguments can handle indentation up against the method accepts a correctly aligned ) against ( can handle indentation up against the left edge accepts empty () registers an offense for misaligned ) with no line break before 1st parameter can handle inner method calls registers an offense for misaligned ) accepts a correctly indented ) can handle hash arguments that are not broken over lines accepts a correctly aligned ) can handle individual arguments that are broken over lines can handle indentation up against the left edge for method chains registers an offense and corrects method chains can handle multiple chains with differing breaks when using safe navigation operator registers an offense and corrects misaligned ) for method calls without arguments accepts a correctly aligned ) against ( accepts empty () can handle indentation up against the left edge with no line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) accepts a correctly indented ) inside a block registers an offense and corrects misindented ) when ) is aligned with the params accepts a correctly indented ) with line break before 1st parameter accepts a correctly aligned ) registers an offense for misaligned ) with first multiline arg on new line accepts ) on the same level as ( with args on same line accepts ) on the same level as ( with second arg on new line for grouped expressions with no line break before 1st operand accepts ) that does not begin its line accepts a correctly aligned ) registers an offense for misaligned ) with line break before 1st operand accepts a correctly aligned ) registers an offense for misaligned ) RuboCop::Cop::Style::CaseLikeIf does not register an offense when using `match?` without a receiver registers an offense and corrects when using `||` within conditions does not register an offense when only `if-else` registers an offense and corrects when using `==` with literal does not register an offense when only single `if` registers an offense and corrects when using `===` registers an offense and corrects when target is a method call does not register an offense when not all conditions contain target does not register an offense when using `unless` does not register an offense when using `=~` in first branch with non regexp registers an offense and corrects when using `match?` with non regexp in other branches except first does not register an offense when using modifier `if` does not register an offense when using `match?` in first branch with non regexp registers an offense and corrects when using `=~` registers an offense and corrects when using `==` with constant does not register an offense when using `==` with constant containing 1 letter in name registers an offense and corrects when using `include?` with range registers an offense and corrects when using `match?` with regexp does not register an offense when using ternary operator does not register an offense when using `match?` with non regexp does not register an offense when using `==` with method call with arguments does not register an offense when one of `||` subconditions is not convertible does not register an offense when using `equal?` without a receiver does not register an offense when using `==` with class reference registers an offense and corrects when using nested conditions with `||` registers an offense and corrects when using `is_a?` RuboCop::Cop::Style::UnpackFirst registers offense when using `#unpack` with `#slice` when using `#unpack` with `#first` when using `#unpack` with `#at` when using `#unpack` with dot and square brackets when using `#unpack` with square brackets does not register offense when using `#unpack1` when using `#unpack` accessing second element RuboCop::Cop::Lint::MixedRegexpCaptureTypes does not register offense to a regexp with named capture only does not register offense when using a Regexp cannot be processed by regexp_parser gem does not register offense to a regexp with named capture and non-capturing group does not register offense to a regexp with numbered capture only registers an offense when both of named and numbered captures are used when containing a non-regexp literal does not register an offence when containing a method does not register an offence when containing a gvar does not register an offence when containing a lvar does not register an offence when containing a constant does not register an offence when containing a cvar does not register an offence when containing a ivar RuboCop::Cop::Layout::ExtraSpacing when AllowForAlignment is true ignores whitespace inside a string ignores trailing whitespace registers an offense and corrects extra spacing before a unary plus in an argument list registers an offense and corrects extra space before a float registers an offense and corrects alignment with token not preceded by space registers an offense and corrects double extra spacing in variable assignment registers an offense and corrects extra spacing in class inheritance ignores whitespace at the beginning of the line accepts aligned values of an implicit hash literal accepts space between key and value in a hash with hash rockets when spaces are present in a single-line hash literal registers an offense and corrects hashes with symbol keys registers an offense and corrects hashes with hash rockets with extra spacing for alignment purposes such as aligning long assignment expressions that include line breaks allows it such as aligning comments on non-adjacent lines allows it such as aligning = on lines where there are trailing comments allows it such as lining up assignments allows it such as lining up assignments with empty lines and comments in between allows it such as aligning tokens with empty line between allows it such as lining up different kinds of assignments allows it such as aligning with the same character allows it when AllowBeforeTrailingComments is true allows it doesn't interfere with AllowForAlignment being false such as aligning = on lines where there are trailing comments registers offense(s) such as lining up assignments with empty lines and comments in between registers offense(s) such as aligning long assignment expressions that include line breaks registers offense(s) such as aligning tokens with empty line between registers offense(s) such as lining up different kinds of assignments registers offense(s) such as aligning with the same character registers offense(s) such as aligning comments on non-adjacent lines registers offense(s) such as lining up assignments registers offense(s) being true such as aligning with the same character allows it such as aligning comments on non-adjacent lines allows it such as lining up assignments allows it such as lining up assignments with empty lines and comments in between allows it such as aligning = on lines where there are trailing comments allows it such as aligning long assignment expressions that include line breaks allows it such as aligning tokens with empty line between allows it such as lining up different kinds of assignments allows it false does not trigger on only one space before comment regsiters offense when ForceEqualSignAlignment is true aligns the first assignment with the following assignment does not register alignment errors on outdented lines does not register an offense when optarg equals is not aligned with assignment equals sign does not register offenses for multiple complex nested assignments register offenses and correct consecutive attribute assignments which are not aligned does not register an offense if assignments are separated by blanks register offenses and correct complex nested assignments does not register an offense if assignments are aligned registers an offense and corrects consecutive assignments that are not aligned register offenses and correct consecutive operator assignments which are not aligned registers an offense and corrects consecutive aref assignments which are not aligned when AllowForAlignment is false registers an offense and corrects extra spacing in class inheritance ignores trailing whitespace accepts aligned values of an implicit hash literal registers an offense and corrects extra space before a float registers an offense and corrects double extra spacing in variable assignment ignores whitespace at the beginning of the line registers an offense and corrects alignment with token not preceded by space ignores whitespace inside a string registers an offense and corrects extra spacing before a unary plus in an argument list accepts space between key and value in a hash with hash rockets with extra spacing for alignment purposes such as aligning = on lines where there are trailing comments registers offense(s) such as lining up different kinds of assignments registers offense(s) such as lining up assignments with empty lines and comments in between registers offense(s) such as lining up assignments registers offense(s) such as aligning tokens with empty line between registers offense(s) such as aligning long assignment expressions that include line breaks registers offense(s) such as aligning with the same character registers offense(s) such as aligning comments on non-adjacent lines registers offense(s) when spaces are present in a single-line hash literal registers an offense and corrects hashes with hash rockets registers an offense and corrects hashes with symbol keys RuboCop::Cop::Metrics::ParameterLists accepts a method def with 4 parameters accepts a proc with more than 4 parameters accepts a lambda with more than 4 parameters registers an offense for a method def with 5 parameters When CountKeywordArgs is true counts keyword arguments as well When CountKeywordArgs is false does not count keyword arguments does not count keyword arguments without default values RuboCop::Cop::Style::AndOr when style is always auto-corrects "or" with || and doesn't add extra parentheses auto-corrects "and" with && and doesn't add extra parentheses autocorrects "or" with an assignment on the left auto-corrects "or" with || in method calls (3) auto-corrects "or" with || in method calls (4) auto-corrects "and" with && in method calls (4) also warns on non short-circuit (and) (unless) also warns on non short-circuit (or) (unless) auto-corrects "or" with || and adds parentheses to expr also warns on while (or) autocorrects "or" with an assignment on the right also warns on while (and) auto-corrects "and" with && in method calls warns on short-circuit (and) autocorrects "and" inside def registers an offense for "or" auto-corrects "and" with && in method calls (2) also warns on non short-circuit (and) warns on short-circuit (or) autocorrects "and" with an Enumerable accessor on either side auto-corrects "and" with && in method calls (3) also warns on until (and) autocorrects "or" inside def auto-corrects "or" with || in method calls auto-corrects "and" with && and adds parentheses to expr registers an offense for "and" auto-corrects "or" with || in method calls (2) also warns on non short-circuit (or) also warns on until (or) with obj.method = arg on left autocorrects "and" with && and adds parens with !variable on left doesn't crash and burn with !obj.method arg on right autocorrects "and" with && and adds parens with a file which contains __FILE__ autocorrects "or" with || with predicate method with arg without space on right autocorrects "and" with && and adds parens autocorrects "or" with || and adds parens within a nested begin node autocorrects "and" with && and adds parens with `not` expression on left autocorrects "and" with && and adds parens with two predicate methods with args without spaces on right autocorrects "or" with || and adds parens autocorrects "and" with && and adds parens within a nested begin node with one child only autocorrects "and" with && and adds parens with !obj.method arg on left autocorrects "and" with && and adds parens with one predicate method without space on right and another method autocorrects "or" with || and adds parens autocorrects "and" with && and adds parens with `not` expression on right autocorrects "and" with && and adds parens with obj.method= arg on left autocorrects "and" with && and adds parens when left hand side is a comparison method autocorrects "and" with && and adds parens when style is conditionals accepts "and" in until body accepts "or" outside of conditional registers an offense for "or" in while condition accepts "or" in post-while body registers an offense for "and" in if condition accepts || inside of conditional registers an offense for "and" in post-while condition accepts "and" in while body accepts "or" in if body accepts "or" in until body registers an offense for "and" in while condition accepts "and" in if body registers an offense for "or" in until condition accepts "or" in while body accepts "and" outside of conditional accepts && outside of conditional registers an offense for "and" in post-until condition accepts "and" in post-while body registers an offense for "and" in until condition accepts "or" in post-until body accepts "and" in post-until body registers an offense for "or" in post-until condition accepts && inside of conditional registers an offense for "or" in post-while condition accepts || outside of conditional registers an offense for "or" in if condition RuboCop::Cop::InternalAffairs::OffenseLocationKeyword does not register an offense when the `loc` is on a child node does not register an offense when the `loc` is on a different node when `node.loc.selector` is passed registers an offense registers an offense if message argument is passed RuboCop::Cop::Style::OrAssignment when using var = something unless var registers an offense for class variables does not register an offense if any of the variables are different registers an offense for normal variables registers an offense for global variables registers an offense for instance variables when `then` branch body is empty registers an offense when using `elsif` statement does not register an offense when using unless var; var = something; end registers an offense for normal variables does not register an offense if any of the variables are different registers an offense for global variables registers an offense for instance variables registers an offense for class variables when using var = if var; var; else; something; end does not register an offense if any of the variables are different registers an offense with class variables registers an offense with global variables registers an offense with instance variables registers an offense with normal variables when using var = var ? var : something does not register an offense if any of the variables are different registers an offense with class variables registers an offense with global variables registers an offense with instance variables registers an offense with normal variables RuboCop::Cop::Migration::DepartmentName when todo/enable comments have cop names without departments registers offenses and corrects when using a legacy cop name registers offenses and corrects registers offenses and corrects when there is space around `:` when a disable comment contains a plain comment accepts when an unexpected disable comment format does not register an offense when a disable comment contains an unexpected character for department name accepts when a disable comment has cop names with departments accepts RuboCop::Cop::Lint::RedundantWithObject registers an offense and corrects when using `ary.each.with_object([]) { |v| v }` an object is used as a block argument registers an offense and corrects when using ary.each_with_object do-end block without parentheses registers an offense and corrects when using ary.each_with_object([]) do-end block registers an offense and corrects when using `ary.each_with_object { |v| v }` when missing argument to `each_with_object` does not register an offense when block has 2 arguments does not register an offense when block has 1 argument RuboCop::Cop::Style::EmptyCaseCondition given a case statement with an empty case with a when branch including comma-delimited alternatives behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case with multiple when branches and an `else` with code comments behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case with first when branch including comma-delimited alternatives behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case when using `return` in `when` clause and assigning the return value of `case` does not register an offense when using `return` in `else` clause and assigning the return value of `case` does not register an offense with a single when branch and no else behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case with multiple when branches and an else behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when used as an argument of a method without comment behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case when used as an argument of a method with comment behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when using `return ... if` in `when` clause and assigning the return value of `case` does not register an offense with when branches using then behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects with a single when branch and an else behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case with multiple when branches and no else behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when using `return ... if` in `else` clause and assigning the return value of `case` does not register an offense RuboCop::Cop::VariableForce::VariableTable #find_variable with an empty scope stack returns nil #push_scope returns pushed scope object #accessible_variables when the current scope has some variables returns all the variables when the direct outer scope has some variables and the current scope is not block returns only the current scope variables and the current scope is block returns the current and direct outer scope variables when there are no variables returns empty array #find_variable when current scope is block when a variable with the target name does not exist in current scope and does not exist in all outer scopes returns nil but exists in a indirect outer scope when the direct outer scope is block returns the indirect outer scope variable when the direct outer scope is not block returns nil but exists in the direct outer scope returns the direct outer scope variable when a variable with the target name exists in current scope and also exists in outer scope returns the current scope variable and does not exist in outer scope returns the current scope variable when current scope is not block when a variable with the target name does not exist in current scope and does not exist in all outer scopes returns nil but exists in the direct outer scope returns nil when a variable with the target name exists in current scope and does not exist in outer scope returns the current scope variable and also exists in outer scope returns the current scope variable #current_scope_level increases by pushing scope decreases by popping scope #declare_variable returns the added variable adds variable to current scope with its name as key #pop_scope returns popped scope object RuboCop::Cop::Layout::EmptyLinesAroundBlockBody when EnforcedStyle is empty_lines for { } block is not fooled by single line blocks ignores block with an empty body registers an offense for block body not starting or ending with a blank when EnforcedStyle is empty_lines for do end block is not fooled by single line blocks registers an offense for block body not starting or ending with a blank ignores block with an empty body when EnforcedStyle is no_empty_lines for { } block accepts block body starting with a line with spaces registers an offense for block body starting with a blank is not fooled by single line blocks registers an offense for block body starting with a blank passed to a multi-line method call registers an offense for block body ending with a blank when EnforcedStyle is no_empty_lines for do end block accepts block body starting with a line with spaces is not fooled by single line blocks registers an offense for block body starting with a blank registers an offense for block body ending with a blank registers an offense for block body starting with a blank passed to a multi-line method call RuboCop::Cop::Style::TrailingBodyOnClass registers offense with multi-line class registers an offense when body trails after class definition accepts regular class auto-corrects with comment after body accepts class inheritance when class is not on first line of processed_source auto-correct offense RuboCop::Cop::Lint::ElseLayout accepts single-expr else regardless of layout handles modifier forms registers an offense for expr on same line as else can handle elsifs handles empty braces handles ternary ops accepts proper else RuboCop::Cop::Style::SymbolProc accepts block with a block argument registers an offense for a block with parameterless method call on param accepts ignored method accepts block when method in body is not called on block arg accepts block with adding a comma after the sole argument accepts block with splat params does not crash with a bare method call accepts proc with 1 argument accepts Proc.new with 1 argument accepts empty block body accepts block with more than 1 arguments registers an offense for a block when method in body is unary -/+ accepts block with more than 1 expression in body auto-corrects correctly when there are no arguments in parentheses autocorrects multiple aliases with symbols as proc auto-corrects correctly when args have a trailing comma accepts lambda with 1 argument accepts ::Proc.new with 1 argument accepts block with no arguments when `super` has no arguments registers an offense when the method has arguments registers an offense when `super` has arguments registers an offense RuboCop::Cop::Lint::SuppressedException with AllowComments set to true does not register an offense for empty rescue with comment registers an offense for empty rescue on single line with a comment after it Ruby 2.5 or higher when empty rescue for `do` block does not register an offense for empty rescue with comment registers an offense for empty rescue without comment when empty rescue for `defs` does not register an offense for empty rescue with comment registers an offense for empty rescue without comment when empty rescue for `def` does not register an offense for empty rescue with comment registers an offense for empty rescue without comment with AllowComments set to false does not register an offense for rescue with body registers an offense for empty rescue block when empty rescue for defs registers an offense for empty rescue with comment registers an offense for empty rescue without comment when empty rescue for `def` registers an offense for empty rescue without comment registers an offense for empty rescue with comment Ruby 2.5 or higher when empty rescue for `do` block registers an offense for empty rescue with comment registers an offense for empty rescue without comment RuboCop::Cop::Style::MinMax with an array literal containing calls to `#min` and `#max` when the expression is used as a return value does not register an offense if the receivers do not match registers an offense if the receivers match does not register an offense if there are additional elements does not register an offense if the receiver is implicit when the expression is used in a parallel assignment registers an offense if the receivers match does not register an offense if there are additional elements does not register an offense if the receivers do not match does not register an offense if the receiver is implicit when the expression stands alone does not register an offense if the receiver is implicit does not register an offense if the receivers do not match does not register an offense if there are additional elements registers an offense if the receivers match RuboCop::Cop::Style::Documentation does not consider comment followed by empty line to be class documentation accepts non-empty class with annotation comment followed by other comment registers an offense if the comment line contains code registers an offense for compact-style nested module accepts namespace module without documentation registers an offense for compact-style nested class accepts namespace class which defines constants registers an offense for non-empty class with encoding comment accepts non-empty module with documentation registers an offense for non-empty class with annotation comment accepts non-empty class with documentation accepts non-empty class with comment that ends with an annotation registers offense for non-empty class with frozen string comment accepts namespace class without documentation registers an offense for non-empty class with directive comment registers an offense for non-empty class registers an offense for empty module without documentation accepts namespace module which defines constants does not raise an error for an implicit match conditional registers an offense for non-namespace accepts empty class without documentation without documentation with non-empty class with constants visibility declaration content does not register an offense with non-empty module with constants visibility declaration content does not register an offense sparse and trailing comments ignores sparse comments inside class node ignores comments after module node end ignores comments after class node end ignores sparse comments inside module node with # :nodoc: accepts non-namespace class without documentation accepts compact-style nested module without documentation accepts non-namespace module without documentation registers an offense for nested module without documentation registers an offense for nested class without documentation accepts compact-style nested class without documentation on a subclass accepts non-namespace subclass without documentation registers an offense for nested subclass without documentation with `all` modifier accepts nested subclass without documentation with `all` modifier accepts nested module without documentation with `all` modifier accepts nested class without documentation RuboCop::Cop::Cop initially has 0 offenses will set custom severity if present keeps track of offenses will warn if custom severity is invalid will report registered offenses will set default severity when disabled by a comment ignore_disable_comments is false will set offense as disabled ignore_disable_comments is true will not set offense as disabled #autocorrect? when the option is not given is expected to equal false when the option is given is expected to equal true when cop does not support autocorrection is expected to equal false when disable_uncorrectable is enabled is expected to equal true when the cop is set to not autocorrect is expected to equal false #safe_autocorrect? when cop is declared unsafe is expected to equal false when auto-correction of the cop is declared unsafe is expected to equal false when safety is undeclared is expected to equal true .qualified_cop_name returns the given cop name if it already has a namespace returns the given cop name if it already has a namespace even when the cop exists in multiple namespaces returns the given cop name if it is not found in any namespace returns the cop name in a different namespace if the provided namespace is incorrect raises an error if the cop name is in more than one namespace (PENDING: Temporarily skipped with xit) adds namespace if the cop name is found in exactly one namespace Registry #departments has departments contains every value only once is expected to include :Style is expected to include :Lint #with_department has at least one cop per department returns 0 for an invalid type has each cop in exactly one type for a cop with a name registers offense with its name #relevant_file? when the file doesn't match the Include configuration is expected to equal false when the file is an anonymous source is expected to equal true when the file matches the Include configuration is expected to equal true setting of Offense#corrected attribute when cop supports autocorrection when autocorrection is not needed is set to false when offense was corrected is set to true when offense was not corrected because of an error is set to false when cop does not support autocorrection is not specified (set to nil) when autocorrect is requested is not specified (set to nil) when disable_uncorrectable is enabled is set to true with no submodule has right department has right name with lint cops has right department has right name with style cops has right department has right name RuboCop::Cop::Metrics::ClassLength accepts a class with less than 5 lines reports the correct beginning and end lines rejects a class with more than 5 lines accepts a class with 5 lines does not count blank lines accepts empty classes when `CountAsOne` is not empty folds array into one line when inspecting a class defined with Class.new registers an offense when inspecting a class defined with ::Class.new registers an offense when a class has inner classes does not count lines of inner classes rejects a class with 6 lines that belong to the class directly when CountComments is enabled also counts commented lines RuboCop::Cop::VariableForce #process_node when processing an empty regex does not raise an error when processing a regexp with a line break at the start of capture parenthesis does not raise an error when processing lvar node when the variable is not yet declared does not raise error RuboCop::Cop::Style::CommentAnnotation accepts upper case keyword with colon, space and note accepts a keyword that is somewhere in a sentence accepts a keyword that is just the beginning of a sentence accepts a comment that is obviously a code example accepts upper case keyword alone lower case keyword registers an offense and upcases when a keyword is not in the configuration accepts the word without colon offenses in consecutive inline comments registers each of them with configured keyword registers an offense for a missing colon after the word missing space after colon registers an offense and adds space upper case keyword with colon by no note registers an offense without auto-correction capitalized keyword registers an offense and upcases missing colon registers an offense and adds colon RuboCop::Cop::Style::DoubleNegation when `EnforcedStyle: forbidden` does not register an offense for `!!` when using `return` keyword registers an offense for `!!` when return location does not register an offense for ! does not register an offense for `!!` when not a return location registers an offense for `!!` does not register an offense for `not not` when `EnforcedStyle: allowed_in_returns` does not register an offense for `!!` when return location does not register an offense for `!!` when not a return location does not register an offense for `!!` when using `return` keyword does not register an offense for ! does not register an offense for `not not` registers an offense for `!!` RuboCop::Cop::Style::StructInheritance registers an offense when extending instance of Struct accepts plain class accepts extending DelegateClass acceps assignment to ::Struct.new registers an offense when extending instance of Struct with do ... end accepts assignment to block form of Struct.new accepts assignment to Struct.new registers an offense when extending instance of `Struct` when there is a comment before class declaration registers an offense when extending instance of ::Struct with do ... end registers an offense when extending instance of ::Struct RuboCop::Cop::Style::RedundantFreeze allows .freeze on method call behaves like mutable objects allows ('a' * 20) with freeze behaves like mutable objects allows { a: 1, b: 2 } with freeze behaves like immutable objects registers an offense for frozen [1, 2, 3].size behaves like immutable objects registers an offense for frozen :"" behaves like mutable objects allows /./ with freeze behaves like mutable objects allows ('a' + 'b') with freeze behaves like immutable objects registers an offense for frozen :sym behaves like mutable objects allows "top#{1 + 2}" with freeze behaves like immutable objects registers an offense for frozen 'foo'.count behaves like mutable objects allows (1..5) with freeze behaves like immutable objects registers an offense for frozen 1 behaves like mutable objects allows [1, 2, 3] with freeze behaves like immutable objects registers an offense for frozen 1.5 behaves like immutable objects registers an offense for frozen (2 > 1) behaves like immutable objects registers an offense for frozen ENV['foo'] behaves like immutable objects registers an offense for frozen ::ENV['foo'] behaves like mutable objects allows 'str' with freeze behaves like immutable objects registers an offense for frozen ('a' > 'b') behaves like mutable objects allows (a + b) with freeze behaves like immutable objects registers an offense for frozen (a > b) behaves like immutable objects registers an offense for frozen (1 + 2) behaves like mutable objects allows (1...5) with freeze when the receiver is a frozen string literal when the frozen string literal comment is true behaves like immutable objects registers an offense for frozen "#{a}" when the frozen string literal comment is false behaves like mutable objects allows "#{a}" with freeze when the frozen string literal comment is missing behaves like mutable objects allows "#{a}" with freeze RuboCop::Cop::Style::Sample behaves like accepts accepts shuffle.slice(-4..-3) behaves like accepts accepts shuffle.slice(3, 3) behaves like offense registers an offense for shuffle.first(foo) behaves like offense registers an offense for shuffle.slice(0..3) behaves like offense registers an offense for shuffle.first behaves like accepts accepts shuffle[foo..3] behaves like offense registers an offense for shuffle.first(2) behaves like offense registers an offense for shuffle[-1] behaves like accepts accepts shuffle.slice(foo..bar) behaves like accepts accepts shuffle.at(2) behaves like offense registers an offense for shuffle.slice(0...3) behaves like accepts accepts shuffle[foo, bar] behaves like accepts accepts shuffle.slice(2) behaves like accepts accepts shuffle behaves like accepts accepts shuffle.slice(foo, bar) behaves like accepts accepts shuffle.slice(foo) behaves like accepts accepts shuffle[foo..bar] behaves like offense registers an offense for shuffle.slice(0, 3) behaves like accepts accepts shuffle.map { |e| e } behaves like offense registers an offense for shuffle(random: Random.new).first behaves like accepts accepts shuffle(random: Random.new) behaves like accepts accepts shuffle.slice(2..-3) behaves like accepts accepts shuffle[foo, 3] behaves like offense registers an offense for shuffle(random: Random.new).first(2) behaves like accepts accepts shuffle[-4..-3] behaves like offense registers an offense for shuffle[0] behaves like offense registers an offense for shuffle(random: foo).last(bar) behaves like accepts accepts shuffle.slice(foo..3) behaves like accepts accepts shuffle[2..-3] behaves like accepts accepts shuffle(random: Random.new).find(&:odd?) behaves like offense registers an offense for shuffle[0...3] behaves like offense registers an offense for shuffle.slice(-1) behaves like offense registers an offense for shuffle[0..3] behaves like offense registers an offense for shuffle.last behaves like accepts accepts sample behaves like offense registers an offense for shuffle(random: Random.new)[0..3] behaves like accepts accepts shuffle(random: Random.new)[2] behaves like accepts accepts shuffle[3, 3] behaves like offense registers an offense for shuffle.slice(0) behaves like accepts accepts shuffle.join([5, 6, 7]) behaves like accepts accepts shuffle[2] behaves like accepts accepts shuffle.slice(2..3) behaves like accepts accepts shuffle.slice(foo, 3) behaves like offense registers an offense for shuffle[0, 3] behaves like offense registers an offense for shuffle.last(3) behaves like offense registers an offense for shuffle.at(0) behaves like accepts accepts shuffle(random: Random.new)[2, 3] behaves like accepts accepts shuffle[2..3] behaves like accepts accepts shuffle.at(foo) behaves like offense registers an offense for shuffle.at(-1) behaves like offense registers an offense for shuffle.last(bar) behaves like accepts accepts shuffle[foo] RuboCop::Cop::Style::RedundantSort registers an offense when last is called on sort with comparator does not register an offense for sort!.first registers an offense when slice(0) is called on sort_by registers an offense when first is called with sort registers an offense when [-1] is called on sort_by does not register an offense when first has an argument registers an offense when slice(0) is called on sort registers an offense when first is called on sort_by no block registers an offense when [0] is called on sort_by does not register an offense when sort_by is used without first registers an offense when [0] is called on sort registers an offense when last is called on sort_by does not register an offense for sort_by!(&:something).last registers an offense when first is called on sort_by registers an offense when at(0) is called on sort_by registers an offense when last is called on sort_by no block registers an offense when [-1] is called on sort does not register an offense when sort_by is not given a block does not register an offense when first is used without sort_by registers an offense when [](0) is called on sort registers an offense when at(-1) is called with sort registers an offense when slice(-1) is called on sort_by does not register an offense when first is used before sort registers an offense when last is called with sort registers an offense when [](-1) is called on sort_by >= Ruby 2.7 when using numbered parameter registers an offense and corrects when last is called on sort with comparator registers an offense and corrects when at(0) is called on sort_by registers an offense and corrects when first is called on sort_by when not taking first or last element does not register an offense when at(-2) is called on sort_by does not register an offense when [1] is called on sort RuboCop::Cop::Style::DoubleCopDisableDirective registers an offense for duplicate todo directives registers an offense for duplicate disable directives does not register an offense for cops with single cop directive RuboCop::Cop::Layout::EndOfLine when EnforcedStyle is native registers an offense for an incorrect EOL when EnforcedStyle is crlf registers an offense for CR+LF highlights the whole offending line does not register offenses after __END__ does not register offense for no CR at end of file accepts an empty file and the default external encoding is US_ASCII does not crash on UTF-8 encoded non-ascii characters can inspect non-UTF-8 encoded source with proper encoding comment and there are many lines ending with LF registers only one offense can inspect non-UTF-8 encoded source with proper encoding comment and source is a string registers an offense when EnforcedStyle is lf registers an offense for CR at end of file does not register offenses after __END__ highlights the whole offending line registers an offense for CR+LF accepts an empty file and the default external encoding is US_ASCII can inspect non-UTF-8 encoded source with proper encoding comment does not crash on UTF-8 encoded non-ascii characters and there are many lines ending with CR+LF can inspect non-UTF-8 encoded source with proper encoding comment registers only one offense and source is a string registers an offense RuboCop::Cop::Naming::ClassAndModuleCamelCase is not fooled by qualified names registers an offense for underscore in class and module name allows module_parent method accepts CamelCase names custom allowed names does not register offense for multiple allowed names RuboCop::Cop::Layout::EmptyLinesAroundClassBody when EnforcedStyle is beginning_only registers an offense for an empty line at the end of a class ignores empty lines at the beginning of a class when EnforcedStyle is empty_lines_special when namespace has multiple children requires empty lines for namespace when first child is method requires blank line at the beginning and ending of class body when class has a namespace requires no empty lines for namespace but requires blank line at the beginning and ending of class body source without blank lines registers and autocorrects the offenses source with blank lines autocorrects the offenses source without blank lines registers an offense for class not beginning and ending with a blank line class with constant and child class registers and autocorrects the offenses when first child is NOT a method does not require blank line at the beginning of class body but requires blank line before first def definition and requires blank line at the end of class body source without blank lines registers an offense for class not ending with a blank line source with comment before method definition registers an offense for class beginning with a blank line when class has a namespace requires no empty lines for namespace and does not require blank line at the beginning of class body but requires blank line at the end of class body source with constants registers and autocorrects the offenses source without blank lines registers and autocorrects the offenses source with blank lines registers and autocorrects the offenses source with blank lines registers an offense for class beginning with a blank line class with empty body without empty line does NOT register offenses with empty line does NOT register offenses class with only constants registers and autocorrects the offenses when EnforcedStyle is empty_lines accepts classes with an empty body does not register offenses when specifying a superclass that breaks the line registers an offense for class body not starting or ending with a blank accepts singleton classes with an empty body registers an offense for singleton class body not starting or ending with a blank does not register offenses when EnforcedStyle is empty_lines_except_namespace when only child is class registers offenses for namespaced class body not starting with a blank registers offense for namespace body starting with a blank requires no empty lines for namespace autocorrects beginning and end registers offense for namespace body ending with a blank registers offenses for namespaced class body not ending with a blank when only child is module registers offense for namespace body ending with a blank requires no empty lines for namespace registers offense for namespace body starting with a blank when has multiple child classes registers offenses for namespace body starting and ending without a blank requires empty lines for namespace when EnforcedStyle is no_empty_lines registers an offense for singleton class body ending with a blank autocorrects singleton class body containing only a blank registers an offense for class body ending with a blank registers an offense for class body starting with a blank when EnforcedStyle is ending_only registers an offense for an empty line at the end of a class ignores empty lines at the beginning of a class RuboCop::Cop::Lint::PercentSymbolArray detecting colons or commas in a %i/%I string registers an offense and corrects when there are no colons but one comma registers an offense and corrects when there are no colons but one comma accepts tokens without colons or commas registers an offense and corrects when symbols contain colons and are comma separated accepts likely false positive $, registers an offense and corrects when one symbol has a colon but there are no commas accepts tokens without colons or commas registers an offense and corrects when symbols contain colons and are comma separated registers an offense and corrects when one symbol has a colon but there are no commas accepts likely false positive $, with binary encoded source registers an offense and corrects when tokens contain quotes accepts if tokens contain no quotes RuboCop::TargetRuby when TargetRubyVersion is set does not read Gemfile.lock or gems.locked uses TargetRubyVersion does not read .ruby-version when TargetRubyVersion is not set when .ruby-version is not in a parent directory when Gemfile.lock is in a parent directory does when gems.locked is in a parent directory does when .ruby-version is in a parent directory reads it to determine the target ruby version when .ruby-version is not present when bundler lock files are not present uses the default target ruby version and Gemfile.lock exists uses MRI Ruby version when it has multiple digits uses MRI Ruby version when it is present in Gemfile.lock uses the default Ruby when jruby is in Gemfile.lock uses the default Ruby when rbx is in Gemfile.lock uses the default Ruby when Ruby is not in Gemfile.lock and gems.locked exists uses the default Ruby when rbx is in gems.locked uses the default Ruby when jruby is in gems.locked uses MRI Ruby version when it is present in gems.locked uses the default Ruby when Ruby is not in gems.locked uses MRI Ruby version when it has multiple digits when .ruby-version is present does not read Gemfile.lock or gems.locked when the MRI version contains multiple digits reads it to determine the target ruby version when .ruby-version contains a version prefixed by "ruby-" correctly determines the target ruby version when .ruby-version contains "system" version uses the default target ruby version when .ruby-version contains an MRI version reads it to determine the target ruby version when .ruby-version contains a Rbx version uses the default target ruby version when .ruby-version contains a JRuby version uses the default target ruby version RuboCop::Cop::Lint::MultipleComparison registers an offense for x < y < z registers an offense for x <= y > z registers an offense for x < y > z registers an offense for x > y > z registers an offense for x >= y <= z registers an offense for x >= y > z registers an offense for x < y >= z registers an offense for x > y <= z accepts to use one compare operator registers an offense for x >= y >= z registers an offense for x <= y >= z registers an offense for x < y <= z registers an offense for x >= y < z registers an offense for x > y < z registers an offense for x <= y < z registers an offense for x <= y <= z registers an offense for x > y >= z RuboCop::Cop::Style::Copyright does not register an offense when the notice is present does not register an offense when the notice is not the first comment does not register an offense when the notice is in a block comment when the copyright notice comes after any code adds an offense when the copyright notice is missing and the source code file starts with a shebang adds an offense when the copyright notice is missing fails to autocorrect when the AutocorrectNotice does not match the Notice pattern adds an offense fails to autocorrect if no AutocorrectNotice is given when the source code file is empty adds an offense when the copyright notice is missing and the source code file starts with shebang and an encoding comment adds an offense when the copyright notice is missing and the source code file starts with an encoding comment adds an offense RuboCop::Cop::Lint::SendWithMixinArgument registers an offense when using `public_send` method registers an offense when using `send` with `include` does not register an offense when using `extend` registers an offense when using `__send__` method registers an offense when using `send` with `prepend` does not register an offense when not using a mixin method does not register an offense when using `prepend` does not register an offense when using `include` registers an offense when using `send` with `extend` when using namespace for module registers an offense when using `send` with `include` when specifying a mixin method as a string registers an offense when using `send` with `extend` registers an offense when using `send` with `include` registers an offense when using `send` with `prepend` RuboCop::Cop::Layout::SpaceInsideStringInterpolation when EnforcedStyle is space accepts empty interpolation for ill-formatted string interpolations registers offenses and autocorrects for "no_space" style formatted string interpolations registers offenses and autocorrects for well-formatted string interpolations does not register an offense for excess literal spacing when EnforcedStyle is no_space accepts empty interpolation does not touch spaces inside the interpolated expression for well-formatted string interpolations accepts excess literal spacing for "space" style formatted string interpolations registers offenses and autocorrects when interpolation starts or ends with a line break does not register an offense ignores comments and whitespace when looking for line breaks for ill-formatted string interpolations registers offenses and autocorrects finds interpolations in string-like contexts RuboCop::Cop::Style::NonNilCheck when allowing semantic changes does not register an offense for `!x` does not register an offense for `x.nil?` does not blow up when autocorrecting implicit receiver does not blow up with ternary operators registers an offense for unless x.nil? autocorrects by changing `x != nil` to `x` corrects code that would not be modified if IncludeSemanticChanges were false registers an offense for `!x.nil?` registers an offense for `not x.nil?` when not allowing semantic changes registers an offense for != nil does not register an offense if only expression in predicate does not register an offense for !x.nil? does not register an offense for != 0 does not blow up when autocorrecting implicit receiver does not register an offense if only expression in class predicate does not register an offense for not x.nil? does not report corrected when the code was not modified does not register an offense if last expression in predicate does not register an offense if last expression in class predicate RuboCop::Runner how formatter is invoked #file_finished sends an array of detected offenses for the file sends a file path the passed path is frozen invocation order is called in the proper sequence #finished when RuboCop finished inspecting all files normally sends all file paths the passed files paths is frozen when RuboCop is interrupted by user sends only processed file paths #started sends all file paths the passed files paths is frozen #file_started sends a file path sends file specific information hash the passed path is frozen RuboCop::Cop::Lint::BooleanSymbol does not register an offense when using regular symbol registers an offense when using `:true` registers an offense when using `:false` does not register an offense when using `false` does not register an offense when using `true` when using the new hash syntax registers an offense when using `true:` registers an offense when using `key: :false` registers an offense when using `false:` RuboCop::CLI finds a file with no .rb extension but has a shebang line does not register any offenses for an empty file checks a given file with faults and returns 1 can process a file with an invalid UTF-8 byte sequence registers an offense for a syntax error registers an offense for Parser warnings configuration from file finds included files can use an alternative max line length from a config file cannot disable Syntax offenses displays cop names if DisplayCopNames is false uses the DefaultFormatter if another formatter is not specified works when a configuration file passed by -c specifies Exclude with regexp works when a cop that others depend on is disabled fails when a configuration file has invalid YAML syntax works when a configuration file specifies Severity for Metrics/ParameterLists and Layout/LineLength can exclude a typical vendor directory prefers a config file in ancestor directory to another in home can be configured to override a parameter that is a hash in a special case prints a warning for an unrecognized configuration parameter can disable parser-derived offenses with warning severity can exclude a vendor directory with an erroneous config file works when a configuration file passed by -c specifies Exclude with strings ignores excluded files excludes the vendor directory by default can be configured to merge a parameter that is a hash can exclude directories relative to .rubocop.yml works when a configuration file specifies Severity for Metrics/ParameterLists and Layout prints an error for an unrecognized cop name in .rubocop.yml prints an error message for an unrecognized EnforcedStyle shows an error if the input file cannot be found does not read files in excluded list matches included/excluded files correctly when . argument is given can exclude a vendor directory indirectly can have different config files in different directories allows the default configuration file as the -c argument fails when a configuration file specifies an invalid Severity can be configured with option to disable a certain error can be configured with project config to disable a certain error does not consider Include parameters in subdirectories displays style guide URLs if DisplayStyleGuide is true only reads configuration in explicitly included hidden directories when configured for indented_internal_methods style indentation registers offense for normal indentation in module accepts indented_internal_methods style indentation registers offense for normal indentation in class without using namespace can be configured with option to disable a certain error when --force-default-config option is specified when no config file specified ignores config file when config file specified with -c ignores config file when configuration is taken from $HOME/.rubocop.yml handles relative excludes correctly when run from project root when MultilineMethodCallIndentation is used with aligned style and IndentationWidth parameter fails with an error message when a value in a hash is overridden with nil acts as if the key/value pair was removed when a file inherits from a higher level inherits relative excludes correctly when MultilineOperationIndentation is used with aligned style and IndentationWidth parameter fails with an error message when obsolete MultiSpaceAllowedForOperators param is used displays a warning obsolete cops when configuration for TrailingComma is given fails with an error message when lines end with CR+LF reports an offense configuration of target Ruby versions when configured with an unknown version fails with an error message when configured with an unsupported ruby fails with an error message when given a file/directory that is not under the current dir and the Rakefile path is absolute checks a Rakefile but Style/FileName does not report and the directory is absolute checks a Rakefile but Style/FileName does not report and the Rakefile path is relative checks a Rakefile but Style/FileName does not report and the directory is relative checks a Rakefile but Style/FileName does not report unknown cop in configuration file is given prints the error and exists with code 2 style guide only usage via the cli option --only-guide-cops runs cops for rules that link to a style guide skips cops that have no link to a style guide overrides configuration of AllCops/StyleGuideCopsOnly via the config AllCops/StyleGuideCopsOnly when it is true skips cops that have no link to a style guide when it is false runs cops for rules regardless of any link to the style guide AllCops/DisabledByDefault when it is true runs only the cop configured in .rubocop.yml when it is false runs all cops that are enabled in default configuration rubocop:disable comment can disable selected cops on a single line can disable all cops on a single line can disable all cops in a code section can disable selected cops in a code section without using namespace can disable selected cops on a single line but prints a warning when not necessary causes an offense to be reported and RedundantCopDisableDirective is individually disabled does not report RedundantCopDisableDirective offenses and RedundantCopDisableDirective is individually excluded does not report RedundantCopDisableDirective offenses and RedundantCopDisableDirective is disabled through department does not report RedundantCopDisableDirective offenses and there are no other offenses exits with error code Specify `--init` option to `rubocop` command when .rubocop.yml already exists fails with an error message when .rubocop.yml does not exist generate a .rubocop.yml file when --auto-correct-all is given does not trigger RedundantCopDisableDirective due to lines moving around when errors are raised while processing files due to bugs displays an error message to stderr when checking a correct file returns 0 when super is used with a block still returns 0 when interrupted returns 130 cops can exclude files based on config ignores excluded files configuration of `require` unknown library is specified exits with 2 RuboCop::Cop::Layout::EmptyLinesAroundMethodBody registers an offense for method body starting with a blank registers an offense for class method body starting with a blank accepts method body starting with a line with spaces registers an offense for class method body ending with a blank registers an offense for method body ending with a blank is not fooled by single line methods RuboCop::Cop::Lint::EachWithObjectArgument registers an offense for fixnum argument accepts a string argument registers an offense for float argument accepts a variable argument accepts two arguments registers an offense for bignum argument when using safe navigation operator registers an offense for fixnum argument RuboCop::Cop::Style::VariableInterpolation registers an offense for interpolated global variables in regexp registers an offense for interpolated class variables registers an offense for interpolated regexp nth back references registers an offense for interpolated global variables in backticks registers an offense for interpolated global variables in symbol registers an offense for interpolated regexp back references registers an offense for interpolated global variables in string does not register an offense for variables in expressions registers an offense for interpolated instance variables RuboCop::Cop::Style::RedundantAssignment accepts empty when nodes does not register an offense when ensure block present reports an offense for def ending with assignment and returning accepts empty if body accepts empty method body when inside a when-branch registers an offense and auto-corrects when inside begin-end body registers an offense and auto-corrects when inside an if-branch registers an offense and auto-corrects when rescue blocks present does register an offense and auto-corrects when inside function or rescue block RuboCop::Cop::Style::Send with __send__ and without a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args and with a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args with public_send and with a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args and without a receiver does not register an offense for an invocation without args does not register an offense for an invocation with args with send and without a receiver does not register an offense for an invocation without args registers an offense for an invocation with args and with a receiver registers an offense for an invocation with args does not register an offense for an invocation without args when using safe navigation operator registers an offense for an invocation with args RuboCop::Cop::Layout::SpaceAroundBlockParameters when EnforcedStyleInsidePipes is space registers an offense and corrects multiple spaces after last parameter registers an offense and corrects extra space before first parameter registers an offense and corrects a lambda for no space after last parameter registers an offense and corrects block arguments inside Hash#each registers an offense and corrects missing space before first argument and after last argument accepts a block with spaces in the right places registers an offense and corrects a lambda for no space before first parameter registers an offense and corrects spacing in lambda args registers an offense and corrects multiple spaces before parameter registers an offense and corrects space with parens at middle accepts a block parameter without preceding space registers an offense and corrects a lambda for multiple spacesafter last parameter accepts a block with parameters but no body accepts line break after closing pipe skips lambda without parens registers an offense and corrects no space after closing pipe registers an offense for no space before first parameter accepts a lambda with spaces in the right places registers an offense and corrects a lambda for extra spacebefore first parameter registers an offense and corrects no space after last parameter skips lambda without args accepts an empty block trailing comma accepts space after the last comma registers an offense and corrects no space after the last comma when EnforcedStyleInsidePipes is no_space registers an offense and corrects space after last parameter accepts a lambda with spaces in the right places registers an offense and corrects a lambda for space after the last parameter registers an offense and corrects all types of spacing issues for a lambda accepts a block parameter without preceding space accepts a block with spaces in the right places registers an offense and corrects space before first parameter registers an offense and corrects a lambda for space before first parameter registers an offense and corrects for space with parens accepts block parameters with surrounding space that includes line breaks skips lambda without args accepts line break after closing pipe accepts a block with parameters but no body accepts an empty block registers an offense and corrects all types of spacing issues registers an offense and corrects multiple spaces before parameter skips lambda without parens registers an offense and corrects no space after closing pipe trailing comma registers an offense for space after the last comma accepts no space after the last comma RuboCop::Cop::Style::EachWithObject correctly autocorrects correctly autocorrects with return value only finds inject and reduce with passed in and returned hash ignores inject/reduce with assignment to accumulator param in block ignores inject and reduce passed in symbol ignores inject and reduce with passed in, but not returned hash ignores inject and reduce with empty body ignores inject and reduce with condition as body does not blow up for reduce with no arguments when a simple literal is passed as initial value ignores inject/reduce RuboCop::Cop::Layout::MultilineMethodCallBraceLayout ignores calls without arguments ignores single-line calls ignores calls with a multiline empty brace ignores calls with an empty brace ignores implicit calls when EnforcedStyle is new_line ignores single-line calls with multi-line receiver with leading dot ignores single-line calls with multi-line receiver still ignores single-line calls behaves like multiline literal brace layout trailing comma symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element behaves like multiline literal brace layout same_line style opening brace on same line as first element autocorrects closing brace on different line as last element allows closing brace on same line from last element detects closing brace on different line from last element detects closing brace on different line from multiline element allows closing brace on same line as multi-line element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element does not autocorrect the closing brace detects closing brace on separate line from last element opening brace on separate line from first element allows closing brace on same line as last element autocorrects closing brace on different line from last element detects closing brace on different line from last element allows closing brace on same line as last multiline element heredoc detects heredoc structures that are safe to add to auto-corrects safe heredoc offenses ignores heredocs that could share a last line symmetrical style opening brace on separate line from first element allows closing brace on separate line from last multiline element detects closing brace on same line as last element allows closing brace on separate line from last element autocorrects closing brace on same line from last element opening brace on same line as first element detects closing brace on different line from last element autocorrects closing brace on different line from last element allows closing brace on same line as last element allows closing brace on same line as last multiline element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace new_line style opening brace on same line as first element detects closing brace on same line as last element autocorrects closing brace on same line as last element detects closing brace on same line as last multiline element allows closing brace on different line from last element allows closing brace on different line from multi-line element opening brace on separate line from first element allows closing brace on separate line from last element detects closing brace on same line as last element autocorrects closing brace on same line from last element allows closing brace on separate line from last multiline element when comment present before closing brace corrects closing brace without crashing RuboCop::Cop::Layout::FirstParameterIndentation align_parentheses style single line method defs ignores ignores with hash args valid indentation on multi-line defs accepts correctly indented first element accepts correctly indented first element hash no paren method defs ignores with hash args ignores invalid indentation on multi-line defs normal arguments registers an offense and corrects incorrectly indented first element hash arguments registers an offense and corrects incorrectly indented first element hash arguments static def registers an offense and corrects incorrectly indented first element consistent style valid indentation on static multi-line defs accepts correctly indented first element hash accepts correctly indented first element invalid indentation on multi-line defs normal arguments registers an offense and corrects incorrectly indented first element hash arguments static method def registers an offense and corrects incorrectly indented first element hash arguments registers an offense and corrects incorrectly indented first element single line method defs ignores with hash args ignores valid indentation on multi-line defs accepts correctly indented first element accepts correctly indented first element hash no paren method defs ignores ignores with hash args RuboCop::TargetFinder #target_files_in_dir picks files with extension .rb picks ruby executable files with no extension does not pick files specified to be excluded in config picks files specified to be included in config does not pick directories does not pick files with no extension and no ruby shebang w/ --fail-fast option works when an exception is raised while reading file and debug mode is enabled outputs error message and debug mode is disabled outputs nothing #find_files works also if a folder is named "," does not search excluded top level directories #find(..., :all_file_types) does not find hidden files returns absolute paths when no argument is passed finds files under the current directory when a hidden directory path is passed finds files under the specified directory when some non-known Ruby files are specified in the configuration Include and they are not explicitly passed as arguments includes them when input is passed on stdin includes the file when a pattern is passed finds files which match the pattern when a non-ruby file is passed picks the file when files with ruby interpreters are passed picks all the ruby files when some non-known Ruby files are specified in the configuration Include and they are explicitly passed as arguments includes them when files with a ruby extension are passed picks all the ruby files when local AllCops/Include lists two patterns picks all the ruby files when a subdirectory AllCops/Include only lists one pattern picks all the ruby files when same paths are passed does not return duplicated file paths when a file with a ruby filename is passed picks all the ruby files when a directory path is passed finds files under the specified directory when some paths are specified in the configuration Exclude and they are explicitly passed as arguments normally does not exclude them when it's forced to adhere file exclusion configuration excludes them #find(..., :only_recognized_file_types) does not find hidden files returns absolute paths when a hidden directory path is passed finds files under the specified directory when some non-known Ruby files are specified in the configuration Include and they are not explicitly passed as arguments includes them when no argument is passed finds files under the current directory when same paths are passed does not return duplicated file paths when some non-known Ruby files are specified in the configuration Include and they are explicitly passed as arguments includes them when a file with a ruby filename is passed picks all the ruby files when some paths are specified in the configuration Exclude and they are explicitly passed as arguments normally does not exclude them when it's forced to adhere file exclusion configuration excludes them when a directory path is passed finds files under the specified directory when input is passed on stdin includes the file when a hidden directory path is passed finds files under the specified directory when files with a ruby extension are passed picks all the ruby files when local AllCops/Include lists two patterns picks two files when a subdirectory AllCops/Include only lists one pattern picks two files when a pattern is passed finds files which match the pattern when a non-ruby file is passed doesn't pick the file when files with ruby interpreters are passed picks all the ruby files RuboCop::Cop::Style::IfUnlessModifierOfIfUnless provides a good error message conditional with modifier registers an offense and corrects `unless` / `else` with modifier registers an offense and corrects nested conditionals accepts ternary with modifier registers an offense and corrects conditional with modifier in body accepts RuboCop::Cop::Style::EvenOdd converts (x % 2) == 1 to #odd? converts x % 2 == 0 to #even? converts 1 % 2 != 1 to even? converts x % 2 == 1 to #odd? converts (x % 2) == 0 to #even? converts x % 2 != 1 to #even? accepts x % 2 == 2 converts complex examples converts (x._(y)) % 2 != 1 to even? converts (x._(y) % 2) != 1 to even? converts x % 2 != 0 to #odd? converts (x(y) % 2) != 1 to #even? converts (x.y % 2) != 1 to #even? accepts x % 3 != 0 accepts x % 3 == 0 converts x._(y) % 2 != 1 to even? converts (x % 2) != 0 to #odd? converts (y % 2) != 1 to #even? RuboCop::Cop::Style::PercentLiteralDelimiters `%` interpolated string registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for a string with no content does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters registers an offense for other delimiters registers an offense when the source contains invalid characters `%x` interpolated system call does not register an offense for preferred delimiters does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation `%q` string registers an offense for other delimiters does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters `%Q` interpolated string does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters does not register an offense for preferred delimiters `%I` interpolated symbol array registers an offense for other delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation does not register an offense for preferred delimiters `default` override allows individual preferred delimiters to override `default` allows all preferred delimiters to be set with one key auto-correct preserves line breaks when fixing a multiline array preserves indentation when correcting a multiline array preserves irregular indentation when correcting a multiline array fixes a string array in a scope behaves like escape characters corrects %s with \n in it corrects %s with \t in it behaves like escape characters corrects %r with \t in it corrects %r with \n in it behaves like escape characters corrects %i with \n in it corrects %i with \t in it behaves like escape characters corrects %w with \t in it corrects %w with \n in it behaves like escape characters corrects %Q with \n in it corrects %Q with \t in it behaves like escape characters corrects %q with \t in it corrects %q with \n in it behaves like escape characters corrects %W with \t in it corrects %W with \n in it behaves like escape characters corrects % with \t in it corrects % with \n in it behaves like escape characters corrects %x with \t in it corrects %x with \n in it `%s` symbol registers an offense for other delimiters does not register an offense for preferred delimiters invalid cop config raises an error when invalid configuration is specified `%r` interpolated regular expression registers an offense for other delimiters does not register an offense for preferred delimiters does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for a regular expression with option `%w` string array does not register an offense for preferred delimiters with not a pairing delimiter does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters does not register an offense for preferred delimiters with only a closing delimiter does not register an offense for preferred delimiters does not register an offense for preferred delimiters with a pairing delimiters `%W` interpolated string array does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters does not register an offense for preferred delimiters `%i` symbol array does not register an offense for preferred delimiters registers an offense for other delimiters does not register an offense for non-preferred delimiters enclosing escaped delimiters RuboCop::Cop::Utils::FormatString finds the correct number of fields #valid? returns false when there are numbered and named formats returns true when there are only named formats returns true when there are only named with escaped `%` formats returns false when there are unnumbered and numbered formats returns true when there are only unnumbered formats returns true when there are only numbered formats returns false when there are unnumbered and named formats #named_interpolation? behaves like named format sequence does not detect escaped named format sequence detects named format sequence behaves like named format sequence detects named format sequence does not detect escaped named format sequence behaves like named format sequence detects named format sequence does not detect escaped named format sequence behaves like named format sequence detects named format sequence does not detect escaped named format sequence RuboCop::Cop::Lint::DeprecatedClassMethods prefer `Dir.exist?` over `Dir.exists?` registers an offense and corrects Dir.exists? registers an offense and corrects ::Dir.exists? does not register an offense for Dir.exist? does not register an offense for offensive method `exists?`on other receivers prefer `File.exist?` over `File.exists?` registers an offense and corrects ::File.exists? does not register an offense for File.exist? registers an offense and corrects File.exists? prefer `block_given?` over `iterator?` does not register an offense for block_given? registers an offense and corrects iterator? does not register an offense for offensive method `iterator?`on other receivers RuboCop Project changelog has link definitions for all implicit links has newline at end of file has either entries, headers, or empty lines entry has a whitespace between the * and the body after version 0.14.0 has a link to the contributors at the end link to related issue has a colon and a whitespace at the end has an issue number prefixed with # has a valid URL contributor name has a unique contributor name body does not start with a lower case ends with a punctuation requiring all of `lib` with verbose warnings enabled emits no warnings default configuration file has a SupportedStyles for all EnforcedStyle and EnforcedStyle is valid has a period at EOL of description has a nicely formatted description for all cops sorts configuration keys alphabetically does not have nay duplication requires a nicely formatted `VersionAdded` metadata for all cops has configuration for all cops cop message end with a period or a question mark RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor registers an offense and corrects for code that immediately follows accessor accepts code that separates a attribute accessor from the code with a newline accepts code that separates attribute accessors from the code with a newline accepts code when used in class definition accepts code when attribute method is method chained does not registers an offense and corrects when using `if` ... `else` branches registers an offense and corrects for code that immediately follows accessor with comment when `AllowAliasSyntax: false` registers an offense for code that immediately `alias` syntax after accessor when `AllowedMethods: []` registers an offense for code that immediately ignored methods after accessor when `AllowedMethods: private` does not register an offense for code that immediately ignored methods after accessor when `AllowAliasSyntax: true` does not register an offense for code that immediately `alias` syntax after accessor RuboCop::Cop::Style::PreferredHashMethods with enforced `short` style accepts has_key? with no args accepts has_value? with no args registers an offense for has_key? with one arg registers an offense for has_value? with one arg when using safe navigation operator registers an offense for has_value? with one arg with enforced `verbose` style accepts value? with no args registers an offense for value? with one arg registers an offense for key? with one arg accepts key? with no args RuboCop::Formatter::WorstOffendersFormatter #finished when there are many offenses sorts by offense count first and then by cop name RuboCop::Cop::Lint::TopLevelReturnWithArgument Code segment with only top-level return statement Expects multiple offenses from the return with arguments statements Expects offense from the return with arguments Expects no offense from the return without arguments Code segment with block level returns other than the top-level return Expects offense from the return with arguments Expects no offense from the return without arguments Code segment with method-level return statements Expects offense when method-level & top-level return co-exist Code segment with inline if along with top-level return Expects multiple offense from the return with arguments Expects no offense from the return without arguments Code segment containing semi-colon separated statements Expects no offense from the return with arguments and multi-line code Expects an offense from the return with arguments and multi-line code RuboCop::Formatter::FileListFormatter #file_finished displays parsable text RuboCop::Cop::Layout::SpaceAfterMethodName registers an offense and corrects def with space before the parenthesis registers offense and corrects assignment def with space before parenthesis accepts a defs without arguments accepts a def with arguments but no parentheses accepts an assignment def with arguments but no parentheses accepts a def without arguments registers offense and corrects class def with space before parenthesis accepts class method def with arguments but no parentheses RuboCop::Cop::Style::CollectionMethods accepts member? with more than 1 param accepts detect with more than 1 param registers an offense for collect with proc param registers an offense for find_all with block accepts collect with more than 1 param registers an offense for inject with block accepts member? without a block registers an offense for detect with block accepts inject without a block accepts collect without a block registers an offense for detect with proc param registers an offense for find_all with proc param registers an offense for member? with proc param registers an offense for inject with proc param registers an offense for member? with block accepts inject with more than 1 param accepts find_all with more than 1 param accepts find_all without a block registers an offense for collect with block accepts detect without a block RuboCop::Cop::Layout::SpaceInsideParens when EnforcedStyle is no_space accepts parentheses with line break registers an offense for spaces inside parens accepts parentheses in block parameter list accepts parentheses with no spaces accepts parentheses with comment and line break when EnforcedStyle is space registers an offense for no spaces inside parens accepts parentheses with spaces registers an offense in block parameter list with no spaces accepts parentheses with comment and line break accepts parentheses with line break RuboCop::Cop::Naming::ConstantName does not check names if rhs is a `Struct.new` with conditional assign does not check names if rhs is a `Class.new` does not check names if rhs is a method call registers an offense for snake case in const name allows screaming snake case in multiple const assignment checks qualified const names does not check names if rhs is a `Class.new` with conditional assign registers an offense for camel case in const namewhen using frozen range assignment registers an offense for camel case in const name does not check if rhs is a non-offensive const assignment registers 1 offense if rhs is offending const assignment registers an offense for camel case in const namewhen using frozen object assignment does not check names if rhs is a `Struct.new` allows screaming snake case in const name allows screaming snake case with POSIX upper case characters registers offenses for camel case in multiple const assignment does not check names if rhs is a method call with conditional assign registers an offense for non-POSIX upper case in const name does not check names if rhs is a method call with block does not check if rhs is another constant when a rhs is a conditional expression when conditional branches contain only string values registers an offense when conditional branches contain only constants does not check names when conditional branches contain a value other than a constant does not check names RuboCop::Cop::Style::NegatedWhile registers an offense for while with exclamation point condition does not blow up for empty while condition accepts a while where only part of the condition is negated does not blow up for empty until condition autocorrects by replacing while not with until registers an offense for while with "not" condition registers an offense for until with exclamation point condition accepts a while where the condition is doubly negated autocorrects by replacing until not with while RuboCop::Cop::Style::EvalWithLocation registers an offense when using `#eval` without any arguments registers an offense when using `#instance_eval` without any arguments registers an offense when using `#class_eval` without any arguments registers an offense when using `#module_eval` without any arguments registers an offense when using `#eval` without lineno accepts `eval` with a string, a filename and `__LINE__` accepts `eval` with a code that is a variable accepts `eval` with a heredoc, a filename and `__LINE__ + 1` registers an offense when using `#eval` with `binding` only registers an offense when using `#eval` with a string on a new line registers an offense when using `#eval` with an incorrect line number registers an offense when using `#class_eval` with an incorrect lineno registers an offense when using `#eval` with a heredoc and an incorrect line number accepts `eval` with a string, a filename and `__LINE__` on a new line RuboCop::Cop::Style::OptionalArguments allows methods with only optional arguments registers an offense when an optional argument is followed by a required argument allows methods without arguments registers an offense for each optional argument when multiple optional arguments are followed by a required argument allows methods with multiple optional arguments at the end allows methods with only required arguments allows methods with only one optional argument allows methods with only one required argument named params required params allows optional arguments before required named arguments registers an offense for optional arguments that come before required arguments where there are name arguments allows optional arguments to come before a mix of required and optional named argument with default values allows optional arguments before an optional named argument RuboCop::Cop::InternalAffairs::NodeDestructuring registers an offense when destructuring using a splat does not register an offense when receiver is named `array` when destructuring using `node.children` registers an offense when receiver is named `send_node` registers an offense when receiver is named `node` RuboCop::Cop::Naming::BinaryOperatorParameterName registers an offense for `#+` when argument is not named other does not register an offense for non binary operators does not register an offense for << works properly even if the argument not surrounded with braces registers an offense for `#eql?` when argument is not named other does not register an offense for [] does not register an offense for === does not register an offense for arg named _other registers an offense for `#equal?` when argument is not named other does not register an offense for []= does not register an offense for arg named other RuboCop::Cop::Style::BeginBlock reports an offense for a BEGIN block RuboCop::Cop::Style::DocumentationMethod when declaring methods outside a class with both public and private methods when required for non-public methods registers an offense when the public method has documentation does not register an offense when the public method has no documentation registers an offense when declaring methods in a class with both public and private methods when the public method has documentation does not register an offense when required for non-public methods registers an offense when the public method has no documentation registers an offense with annotation comment registers an offense with documentation comment when method is public does not register an offense does not register an offense with `end` on the same line with directive comment registers an offense without documentation comment when method is private does not register an offense with inline `private` and `end` does not register an offense with `end` on the same line does not register an offense with inline `private` does not register an offense when required for non-public methods registers an offense with `end` on the same line registers an offense registers an offense with inline `private` and `end` registers an offense with inline `private` wheh method is public registers an offense registers an offense with `end` on the same line without documentation comment when method is protected does not register an offense with inline `protected` does not register an offense when required for non-public methods registers an offense with inline `protected` registers an offense when method is private does not register an offense does not register an offense with `end` on the same line does not register an offense with inline `private` does not register an offense with inline `private` and `end` when required for non-public methods registers an offense with `end` on the same line registers an offense registers an offense with inline `private` and `end` registers an offense with inline `private` when method is public registers an offense with `end` on the same line registers an offense when declaring methods for class instance without documentation comment registers an offense registers an offense with `end` on the same line with documentation comment does not register an offense does not register an offense with `end` on the same line when method is private does not register an offense with inline `private` and `end` does not register an offense does not register an offense with inline `private` does not register an offense with `end` on the same line when required for non-public methods registers an offense with inline `private` registers an offense with `end` on the same line registers an offense registers an offense with inline `private` and `end` with both public and private methods when required for non-public methods registers an offense when the public method has no documentation registers an offense when the public method has documentation does not register an offense with documentation comment does not register an offense does not register an offense with `end` on the same line when declaring methods in a module without documentation comment when method is module_function registers an offense for inline def registers an offense for separate def when method is private does not register an offense with inline `private` and `end` does not register an offense with inline `private` does not register an offense with `end` on the same line does not register an offense when required for non-public methods registers an offense with inline `private` and `end` registers an offense registers an offense with `end` on the same line registers an offense with inline `private` when method is public registers an offense registers an offense with `end` on the same line with both public and private methods when the public method has no documentation registers an offense when the public method has documentation does not register an offense when required for non-public methods registers an offense with documentation comment when method is public does not register an offense with `end` on the same line does not register an offense when method is module_function does not register an offense for separate def does not register an offense for inline def RuboCop::Formatter::FuubarStyleFormatter #with_color when color is disabled outputs nothing when color is enabled outputs coloring sequence code at the beginning and the end #progressbar_color when a convention offense is detected in a file is yellow initially is green when no offenses are detected in a file is still green when a offense is detected in a file and auto-corrected is green when an error offense is detected in a file is red and then a convention offense is detected in the next file is still red when convention and error offenses are detected in a file is red RuboCop::Cop::Force #run_hook invokes a hook in all cops .force_name returns the class name without namespace RuboCop::Cop::Lint::AmbiguousRegexpLiteral with a regexp literal in the first argument with parentheses accepts without parentheses registers an offense and corrects when using block argument registers an offense and corrects when single argument registers an offense and corrects when multiple arguments registers an offense and corrects when nesting RuboCop::Cop::Layout::LineLength registers an offense for long line before __END__ but not after registers an offense for a line that's 81 characters wide accepts the first line if it is a shebang line highlights excessive characters accepts a line that's 80 characters wide when IgnoredPatterns option is set accepts long lines matching a pattern but not other long lines when IgnoreCopDirectives is disabled and the source is too long and has a trailing cop directive highlights the excess source and cop directive and the source is acceptable length with an inline comment highlights the excess comment with a trailing RuboCop directive highlights the excess directive registers an offense for the line when line is indented with tabs registers an offense for a long line accepts a short line autocorrection long blocks no spaces adds an offense and does correct it do/end adds an offense and does correct it braces adds an offense and does correct it lambda syntax when argument is not enclosed in parentheses registers an offense and corrects when argument is enclosed in parentheses registers an offense and corrects let block adds an offense and does correct it no breakable collections adds an offense and does not autocorrect it array when already on two lines does not add any offenses when has inside array adds an offense only to outer and autocorrects it when over limit adds an offense and autocorrects it when two arrays on two lines allows outer to get broken first adds an offense only to inner and does not autocorrect it when under limit does not add any offenses method call when under limit does not add any offenses when nested method calls allows outer to get broken up first adds offense and does not autocorrect when two method calls adds an offense only to outer and autocorrects it when over limit adds an offense and autocorrects it when call with hash on same line adds an offense only to outer and autocorrects it when two together does not add any offenses semicolon when over limit adds offense and autocorrects it by breaking the semicolonbefore the hash when over limit and many spaces around semicolon adds offense and autocorrects it by breaking the semicolonbefore the hash when under limit does not add any offenses semicolons inside string literal adds offense and autocorrects elsewhere when over limit and many semicolons adds offense and autocorrects it by breaking the semicolonbefore the hash semicolon inside string literal adds offense and autocorrects elsewhere when over limit and semicolon at end of line adds offense and autocorrects it by breaking the first semicolonbefore the hash when over limit and many semicolons at the end adds offense and does not autocorrectbefore the hash when over limit and one semicolon at the end adds offense and does not autocorrectbefore the hash HEREDOC when over limit with semicolon adds offense and does not autocorrect hash when under limit does not add any offenses when over limit and already on multiple lines long key adds an offense and does not autocorrect when nested hashes on same line adds an offense only to outer and autocorrects it when over limit rocket adds an offense and autocorrects it when over limit and keys already on multiple lines adds an offense and does not autocorrect when hash in method call adds an offense only to outer and autocorrects it when over limit rocket symbol adds an offense and autocorrects it when over limit because of a comment adds an offense and does not autocorrect when over limit adds an offense and autocorrects it comments when over limit with semicolon adds offense and does not autocorrect affecting by IndentationWidth from Layout\Tab with AllowURI option accepts a line that's including URI in quotes with text accepts a line that's including URI with text accepts a line that's including URI accepts a line that's including URI and exceeds by 1 char behaves like with tabs indentation accepts a line that's including 1 tab with size 2 and 28 other characters highlights excessive characters registers an offense for a line that's including 2 tab with size 2 and 28 other characters without AllowURI option behaves like with tabs indentation accepts a line that's including 1 tab with size 2 and 28 other characters highlights excessive characters registers an offense for a line that's including 2 tab with size 2 and 28 other characters when AllowHeredoc option is enabled accepts long lines in heredocs when the source has no AST does not crash and only certain heredoc delimiters are permitted rejects long lines in heredocs with not permitted delimiters when AllowURI option is enabled and all the excessive characters are part of a URL accepts the line and the URL is wrapped in double quotes accepts the line and the URL is wrapped in single quotes accepts the line and the URL fits within the max allowed characters registers an offense for the line and the excessive characters include part of a URL and another word registers an offense for the line and the excessive characters include a complete URL registers an offense for the line and an error other than URI::InvalidURIError is raised while validating a URI-ish string does not crash and the URL does not have a http(s) scheme rejects the line and the scheme has been configured does not register an offense when IgnoreCopDirectives is enabled and the Rubocop directive causes an excessive line length accepts the line and has explanatory text does not register an offense and the Rubocop directive is excessively long accepts the line and the source is too long registers an offense for the line highlights only the non-directive part and the source contains non-directive # as comment registers an offense for the line highlights only the non-directive part and the source contains non-directive #s as non-comment highlights only the non-directive part registers an offense for the line when AllowURI option is disabled and all the excessive characters are part of a URL registers an offense for the line RuboCop::Cop::Lint::UnreachableLoop handles inner loops with preceding continue statements does not register an offense when using `if-else` with all break branches does not register an offense when using `case-when-else` with all break branches does not register an offense when using `break` without preceding continue statements registers an offense when using `if-else` with all break branches registers an offense when using `break` does not register an offense when using `if` without `else` does not register an offense when using `case` without `else` does not register an offense when using `if-elsif-else` and not all branches are breaking does not register an offense when using `case-when-else` and not all branches are breaking registers an offense when using `case-when-else` with all break branches RuboCop::Cop::Style::Dir when using `#expand_path` and `#dirname` registers an offense registers an offense with ::File when using `#dirname` and `#realpath` registers an offense registers an offense with ::File RuboCop::Cop::Naming::HeredocDelimiterCase when enforced style is lowercase with an interpolated heredoc registers an offense with a camel case delimiter registers an offense with an uppercase delimiter does not register an offense with a lowercase delimiter with a squiggly heredoc registers an offense with an uppercase delimiter does not register an offense with a lowercase delimiter registers an offense with a camel case delimiter with a non-interpolated heredoc registers an offense with a camel case delimiter registers an offense with an uppercase delimiter does not register an offense with a lowercase delimiter when enforced style is uppercase with a non-interpolated heredoc when using double quoted delimiters registers an offense with a lowercase delimiter registers an offense with a camel case delimiter does not register an offense with an uppercase delimiter when using back tick delimiters does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter registers an offense with a lowercase delimiter when using single quoted delimiters does not register an offense with an uppercase delimiter registers an offense with a lowercase delimiter registers an offense with a camel case delimiter when using non-word delimiters does not register an offense with a squiggly heredoc does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter registers an offense with a lowercase delimiter with an interpolated heredoc registers an offense with a camel case delimiter registers an offense with a lowercase delimiter does not register an offense with an uppercase delimiter RuboCop::Cop::Layout::EmptyLineBetweenDefs accepts the first def without leading empty line in a class accepts a def that follows an empty line and then a comment accepts a def that is the first of a module doesn't allow more than the required number of newlines auto-corrects when there are too many new lines accepts a def that follows code and a comment accepts a nested def registers an offense for adjacent one-liners by default accepts a def that follows a line with code treats lines with whitespaces as blank finds offenses in inner classes class methods mixed instance and class methods registers an offense for missing blank line between methods adjacent class methods registers an offense for missing blank line between methods when multiple lines between defs are allowed registers an offense and corrects when there are too many new lines treats lines with whitespaces as blank conditional method definitions accepts defs inside a conditional without blank lines in between registers an offense for consecutive defs inside a conditional when AllowAdjacentOneLineDefs is enabled registers an offense for adjacent defs if some are multi-line accepts adjacent one-liners when there are only comments between defs registers an offense when a maximum of empty lines is specified finds no offense for one empty line finds no offense for no empty line finds an offense for two empty lines RuboCop::Cop::Naming::RescuedExceptionsVariableName with the `PreferredName` setup registers an offense when using `_e` does not register an offense when using `_exception` registers offenses when using `foo` and `bar` in multiple rescues registers an offense when using `e` does not register an offense when using `exception` with default config with implicit rescue with `Exception` variable does not register an offense when using `e` does not register an offense when using `_e` registers an offense when using `_exc` registers an offense when using `exc` without `Exception` variable does not register an offense with variable being referenced renames the variable references when auto-correcting with explicit rescue with lower letters class name does not register an offense with method as `Exception` registers an offense with unexpected variable name does not register an offense without variable name does not register an offense with expected variable name without `Exception` variable does not register an offense with `Exception` variable registers an offense when using `exc` does not register an offense when using `_e` registers an offense when using `_exc` registers offenses when using `foo` and `bar` in multiple rescues does not register an offense when using `e` does not register an offense when using _e followed by e with splat operator as `Exception` list registers an offense with unexpected variable name does not register an offense with expected variable name does not register an offense without variable name RuboCop::Cop::MessageAnnotator #annotate with options on returns an annotated message when the output format is JSON returns the message unannotated with default options returns the message with style guide url when StyleGuide is set in the config adds style guide url when StyleGuide is not set in the config does not add style guide url when a base URL is specified can use a path-based setting does not specify a URL if a cop does not have one can accept relative paths if base has a full path combines correctly with a target-based setting allows absolute URLs in the cop config when a department other than AllCops is specified returns style guide url when it is specified #urls returns style guide and reference url when they are specified returns reference url when it is specified returns an empty array without StyleGuide URL returns style guide url when it is specified returns an empty array if the reference url is blank returns multiple reference urls RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords accepts empty begin accepts empty method definition registers an offense for rescue section ending with a blank registers an offense for above rescue keyword with a blank accepts no empty line with complex begin-end - registers many offenses registers an offense for rescue section ending for method definition a blank accepts empty lines around begin body with complex method definition - registers many offenses registers an offense for rescue section starting with a blank RuboCop::Cop::Style::MultilineMethodSignature when arguments span a single line when defining an class method when method signature is on a single line does not register an offense for unparameterized method does not register an offense for parameterized method when arguments span a single line registers an offense when closing paren is on the following line when defining an instance method registers an offense when closing paren is on the following line when method signature is on a single line does not register an offense for unparameterized method does not register an offense for parameterized method when arguments span multiple lines when correction would exceed maximum line length does not register an offense when defining an class method registers an offense when `end` is on the following line registers an offense when `end` is on the same line when defining an instance method registers an offense when `end` is on the same line registers an offense when `end` is on the following line when correction would not exceed maximum line length registers an offense RuboCop::Cop::Lint::RandOne behaves like no offense Kernel.rand does not register an offense behaves like no offense rand does not register an offense behaves like offenses ::Kernel.rand(1) registers an offense behaves like offenses rand 1 registers an offense behaves like offenses Kernel.rand(1) registers an offense behaves like offenses rand(1.0) registers an offense behaves like no offense ::Kernel.rand does not register an offense behaves like no offense Kernel.rand(-1..1) does not register an offense behaves like offenses Kernel.rand(-1) registers an offense behaves like offenses rand(-1) registers an offense behaves like offenses Kernel.rand 1.0 registers an offense behaves like no offense Kernel.rand 2 does not register an offense behaves like offenses Kernel.rand(-1.0) registers an offense behaves like no offense rand(2) does not register an offense behaves like offenses rand(-1.0) registers an offense behaves like no offense rand(-1..1) does not register an offense RuboCop::Cop::Style::Encoding registers no offense when encoding present but not UTF-8 registers no offense when no encoding present registers no offense when encoding is in the wrong place registers an offense when encoding present and UTF-8 registers an offense when encoding present on 2nd line after shebang registers an offense for vim-style encoding comments registers an offense for encoding inserted by magic_encoding gem RuboCop::Cop::Style::ArrayCoercion registers an offense and corrects when splatting variable into array does not register an offense when splatting multiple variables into array does not register an offense when splat is not in array registers an offense and corrects when converting variable into array with check does not register an offense when converting variable into other named array variable with check RuboCop::Cop::Style::OptionHash registers an offense when there are no arguments does not register an offense when the last argument is an options hash named something else does not register an offense when the argument name is in the list of suspicious names registers an offense when the last argument is a non-options-hash optional hash does not register an offense when passing options hash to super does not register an offense does not register an offense when code exists before call to super does not register an offense when call to super is in a nested block permitted list ignores if the method is permitted RuboCop::Cop::Lint::EmptyConditionalBody does not register an offense for missing `elsif` body with a comment registers an offense for missing `if` body registers an offense for missing `elsif` body does not register an offense for missing `if` body with a comment does not register an offense for missing `unless` body with a comment registers an offense for missing `unless` body when AllowComments is false registers an offense for missing `unless` body with a comment registers an offense for missing `if` body with a comment registers an offense for missing `elsif` body with a comment RuboCop::Cop::Style::MultilineMemoization EnforcedStyle: keyword with a multiline memoization without a `begin` and `end` block allows with another block on the first line allows with a conditional on the following line allows with another block on the following line allows with a conditional on the first line with a multiline memoization without a `begin` and `end` block when the expression is wrapped in parentheses registers an offense when expression starts on first line registers an offense when expression starts on following line registers an offense with multiline expression with a single line memoization allows expression on the following line allows expression on first line EnforcedStyle: braces with a single line memoization allows expression on the following line allows expression on first line with a multiline memoization without a `begin` and `end` block allows with a conditional on the first line allows with another block on the following line allows with another block on the first line allows with a conditional on the following line with a multiline memoization without braces when the expression is wrapped in `begin` and `end` keywords registers an offense for begin...end block on first line registers an offense for begin...end block on following line RuboCop::CLI can correct MethodCallWithoutArgsParentheses and EmptyLiteral offenses can correct MethodDefParentheses and other offense corrects Style/InverseMethods and Style/Not offenses can correct single line methods can correct HashSyntax and SpaceAroundOperators offenses can correct two empty lines at end of class body does not hang SpaceAfterPunctuation and SpaceInsideArrayLiteralBrackets can change block comments and indent them corrects Style/BlockDelimiters offenses when specifingLayout/SpaceInsideBlockBraces together can correct a problems and the problem it creates does not correct ExtraSpacing in a hash that would be changed back corrects IndentationWidth, RedundantBegin, and RescueEnsureAlignment offenses corrects InitialIndentation offenses corrects code with indentation problems can correct TrailingEmptyLines and TrailingWhitespace offenses does not say [Corrected] if correction was avoided corrects IndentationWidth and IndentationConsistency offenses can correct SpaceAfterComma and HashSyntax offenses honors Exclude settings in individual cops corrects LineEndConcatenation offenses leaving the RedundantInterpolation offense unchanged can correct HashSyntax when --only is used corrects RedundantBegin offenses and fixes indentation etc corrects only IndentationWidth without crashing corrects Style/Next and Style/SafeNavigation offenses does not correct SpaceAroundOperators in a hash that would be changed back can correct IndentHash offenses with separator style handles different SpaceInsideBlockBraces and SpaceInsideHashLiteralBraces corrects TrailingCommaIn(Array|Hash)Literal and Multiline(Array|Hash)BraceLayout offenses can correct WordArray and SpaceAfterComma offenses corrects `Lint/Lambda` and `Lint/UnusedBlockArgument` offenses can be disabled for any cop in configuration corrects RedundantCopDisableDirective offenses plays nicely with default cops in complex ExtraSpacing scenarios can correct two problems in the same place can correct indentation and another thing corrects Tab and IndentationConsistency offenses corrects `EnforcedStyle: hash_rockets` of `Style/HashSyntax` with `Layout/HashAlignment` corrects IndentationWidth and IndentationConsistency offenseswhen using `EnforcedStyle: outdent` and `EnforcedStyle: indented_internal_methods` corrects `Layout/SpaceAroundOperators` and `Layout/ExtraSpacing` offenses when using `ForceEqualSignAlignment: true` corrects HeredocArgumentClosingParenthesis offenses and ignores TrailingCommaInArguments offense corrects Style/BlockDelimiters offenses when specifyingLayout/SpaceBeforeBlockBraces with `EnforcedStyle: no_space` together corrects SymbolProc and SpaceBeforeBlockBraces offenses can correct empty line inside special form of nested modules does not hang SpaceAfterPunctuation and SpaceInsideParens can correct two problems with blocks space_inside_bracket cops when array style is compact & reference style is space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is compact & reference style is no_space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is no_space & reference style is space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is space & reference style is no space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when BlockDelimiters has braces_for_chaining style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses when BlockDelimiters has semantic style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses trailing comma cops when the style is `consistent_comma` corrects TrailingCommaInLiteral and TrailingCommaInArguments without producing a double comma when the style is `comma` corrects TrailingCommaInLiteral and TrailingCommaInArguments without producing a double comma when BlockDelimiters has line_count_based style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses caching with no offenses in the cache doesn't correct offenses with an offense in the cache corrects offenses RuboCop::Cop::Layout::IndentationStyle when EnforcedStyle is tabs accepts a line with tabs between string literals registers an offense for a line indented with mixed whitespace registers an offense for a line indented with multiple spaces registers an offense for a line indented with space accepts a line which begins with tab in a heredoc registers offenses before __END__ but not after auto-corrects a line indented with fractional number ofindentation groups by rounding down accepts a line with tab in a string auto-corrects a line with tab in a string indented with space accepts a line a tab other than indentation accepts a line which begins with tab in a multiline heredoc does not auto-corrects a line with tab other than indentation auto-corrects a line indented with space auto-corrects a line indented with multiple spaces accepts a line which begins with tab in a string auto-corrects a line indented with mixed whitespace custom indentation width uses the configured number of spaces to replace with a tab when EnforcedStyle is spaces registers offenses before __END__ but not after accepts a line with a tab between string literals auto-corrects a line indented with multiple tabs does not auto-correct a line with tab other than indentation registers an offense for a line indented with multiple tabs registers an offense for a line indented with tab accepts a line which begins with tab in a string accepts a line with a tab other than indentation auto-corrects a line indented with mixed whitespace auto-corrects a line indented with tab accepts a line which begins with tab in a heredoc registers an offense for a line indented with mixed whitespace auto-corrects a line with tab in a string indented with tab accepts a line which begins with tab in a multiline heredoc accepts a line with tab in a string custom indentation width uses the configured number of spaces to replace a tab RuboCop::Cop::Lint::NonDeterministicRequireOrder when requiring files with unsorted index registers an offsense with extra logic registers an offsense and autocorrects to add .sort with top-level ::Dir registers an offense and corrects to add .sort with require block passed as parameter registers an offense an autocorrects to add sort with sorted glob does not register an offense with unsorted glob registers an offsense and autocorrects to add .sort with require block passed as parameter registers an offense an autocorrects to add sort with top-level ::Dir registers an offense and corrects to add .sort with sorted index does not register an offense with direct block glob registers an offsense and autocorrects to add .sort.each with top-level ::Dir registers an offense and corrects to add .sort.each with require block passed as parameter registers an offense and autocorrects to add sort when not requiring files does not register an offense RuboCop::Cop::Layout::HashAlignment accepts single line hash accepts pairs that don't start a line register no offense for superclass call without args accepts several pairs per line register no offense for yield without args with multiple preferred(key and table) alignment configuration accepts an empty hash accepts aligned hash keys with mixed hash style registers an offense and corrects misaligned hash values accepts aligned hash keys, by both registers an offense and corrects misaligned hash keys with mixed hash style accepts aligned hash keys, by table registers an offense and corrects misaligned hash values, prefer key when least offenses accepts aligned hash keys, by keys registers an offense and corrects misaligned hash values, works separate for each hash registers an offense and corrects misaligned hash values, prefer table when least offenses table and key config registers an offense and corrects misaligned hash values, prefer table because it is specified first ignore explicit last argument hash registers an offense and corrects misaligned keys in implicit hash accepts misaligned keys in explicit hash for yield accepts misaligned keys in explicit hash for super registers an offense and corrects misaligned keys in implicit hash for super accepts misaligned keys in explicit hash registers an offense and corrects misaligned keys in implicit hash for yield ignore implicit last argument hash registers an offense and corrects misaligned keys in explicit hash accepts misaligned keys in implicit hash registers an offense and corrects misaligned keys in explicit hash for yield accepts misaligned keys in implicit hash for yield accepts misaligned keys in implicit hash for super registers an offense and corrects misaligned keys in explicit hash for super with table+separator alignment configuration accepts a single method argument entry with colon with invalid configuration fails with different settings for => and : accepts aligned entries registers offenses and correct misaligned entries with default configuration registers an offense and corrects table alignment registers an offense and corrects mixed hash styles does not register an offense when value starts on next line registers an offense and corrects separator alignment registers an offense and corrects misaligned hash keys registers an offense and corrects alignment when using double splat in an explicit hash registers an offense and corrects multiline value starts in wrong place registers an offense and corrects misaligned mixed multiline hash keys registers an offense and corrects alignment when using double splat in braces accepts left-aligned hash keys with single spaces registers an offense and corrects zero or multiple spaces with implicit hash as last argument accepts aligned hash keys accepts an empty hash registers an offense and corrects right alignment of keys registers an offense and corrects misaligned hash keys with table alignment configuration accepts hashes that use different separators accepts aligned hash keys and values accepts single line hash accepts hashes that use different separators and double splats accepts an empty hash accepts pairs that don't start a line registers an offense for misaligned hash values registers an offense and corrects misaligned hash rockets registers an offense and corrects for misaligned hash keys accepts a keyword splat only hash accepts a symbol only hash followed by a keyword splat accepts a multiline array of single line hashes accepts several pairs per line with separator alignment configuration accepts an empty hash accepts pairs that don't start a line registers an offense and corrects misaligned hash values accepts aligned hash keys accepts several pairs per line doesn't break code by moving long keys too far left accepts single line hash registers an offense and corrects mixed indentation and spacing accepts hashes with different separators registers an offense and corrects misaligned hash rockets always ignore last argument hash accepts misaligned keys in explicit hash for yield accepts misaligned keys in explicit hash accepts misaligned keys in implicit hash accepts misaligned keys in explicit hash for super accepts misaligned keys in implicit hash for yield accepts misaligned keys in implicit hash for super always inspect last argument hash registers offense and corrects misaligned keys in explicit hash registers offense and corrects misaligned keys in implicit hash registers an offense and corrects misaligned keys in explicit hash for yield registers an offense and corrects misaligned keys in explicit hash for super registers an offense and corrects misaligned keys in implicit hash for super registers an offense and corrects misaligned keys in implicit hash for yield RuboCop::Cop::Style::RedundantCondition when inverted condition (unless) registers no offense when condition and else branch are same registers an offense accepts complex unless branches ternary expression (?:) accepts expressions when the condition and if branch do not match when condition and if_branch are same registers an offense and corrects registers an offense and corrects functions registers an offense and corrects when the else branch contains an irange registers an offense and corrects when the else branch contains `and` registers an offense and corrects when the else branch contains `rescue` registers an offense and corrects class vars registers an offense and corrects nested vars registers an offense and corrects when the else branch contains an erange when regular condition (if) accepts elsif accepts different when the condition does not match the branch when condition and if_branch are same registers an offense and corrects registers an offense and corrects when using modifier if registers an offense and corrects when `raise` without argument parentheses in `else` registers an offense and corrects when `if` condition and `then` branch are the same and it has no `else` branch registers an offense and corrects multiline nodes registers an offense and corrects when a method without argument parentheses in `else` accepts an elsif branch registers an offense and corrects when the else branch contains an irange accepts when using ternary if in `else` branch registers an offense and corrects modifier nodes offense registers an offense and corrects complex one liners auto-corrects when using `<<` method higher precedence than `||` operator accepts complex else branches RuboCop::Cop::Style::ConditionalAssignment allows modifier if inside of if else registers an offense for assignment in if elsif else allows assignment in multiple branches when it is wrapped in a modifier allows if elsif else with the same assignment only in elsif else allows aref assignment with different indices in if..else allows method calls in conditionals allows assignment using different (method) operators in if..else counts array assignment when determining multiple assignment allows assignment of different variables in case when else doesn't crash when assignment statement uses chars which have special meaning in a regex allows if else without variable assignment registers an offense for assignment in if then elsif then else allows if elsif else with the same assignment only in if else allows assignment to the result of a ternary operation registers an offense for assignment in ternary operation using strings autocorrects assignment in if else when the assignment spans multiple lines registers an offense for assignment in case with when when else doesn't crash with empty braces allows modifier if registers an offense in an if else if the assignment is already at the line length limit allows different assignment types in case with when when else registers an offense for assignment in case when then else allows if elsif else with the same assignment only in if elsif allows assignment using different operators in if elsif else registers an offense for assignment in if elsif elsif else allows method calls in if else registers an offense for assignment in unless else allows assignment using different operators in if else allows assignment of different variables in if else behaves like all variable types allows assignment to the return of case when registers an offense assigning any variable type in if else allows assignment to the return of if else registers an offense assigning any variable type in case when registers an offense assigning any variable type in ternary allows assignment to the return of a ternary behaves like all assignment types for a constant lval registers an offense for assignment using = in ternary with end alignment to keyword for a local variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a class variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a constant lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a instance variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a global variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a local variable lval registers an offense for assignment using = in ternary for a global variable lval registers an offense for assignment using = in ternary for a instance variable lval registers an offense for assignment using = in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a constant lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a global variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a class variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a local variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a class variable lval registers an offense for assignment using = in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with end alignment to keyword corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when behaves like all variable types registers an offense assigning any variable type in if else allows assignment to the return of if else allows assignment to the return of a ternary allows assignment to the return of case when registers an offense assigning any variable type in case when registers an offense assigning any variable type in ternary correction would exceed max line length allows assignment to the same variable in if else if the correction would cause the condition to exceed the configured LineLength allows assignment to the same variable in case when else if the correction would create a line longer than the configured LineLength allows assignment to the same variable in if else if the correction would create a line longer than the configured LineLength behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else behaves like all assignment types for a global variable lval registers an offense for assignment using **= in ternary for a class variable lval registers an offense for assignment using **= in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a instance variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a constant lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a class variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a local variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a local variable lval registers an offense for assignment using **= in ternary for a instance variable lval registers an offense for assignment using **= in ternary for a constant lval registers an offense for assignment using **= in ternary with end alignment to keyword for a global variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a local variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a constant lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a class variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a instance variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when behaves like all assignment types for a local variable lval registers an offense for assignment using += in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a local variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a constant lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a class variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a instance variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a global variable lval registers an offense for assignment using += in ternary for a class variable lval registers an offense for assignment using += in ternary for a instance variable lval registers an offense for assignment using += in ternary for a constant lval registers an offense for assignment using += in ternary with end alignment to keyword for a global variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a class variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a constant lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a instance variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a local variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when behaves like all variable types allows assignment to the return of case when allows assignment to the return of a ternary registers an offense assigning any variable type in if else registers an offense assigning any variable type in case when registers an offense assigning any variable type in ternary allows assignment to the return of if else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else behaves like all variable types allows assignment to the return of case when allows assignment to the return of a ternary registers an offense assigning any variable type in if else registers an offense assigning any variable type in ternary registers an offense assigning any variable type in case when allows assignment to the return of if else behaves like all assignment types with end alignment to keyword for a instance variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a local variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a global variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a class variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a constant lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when with end alignment to start_of_line for a local variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a global variable lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a constant lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a instance variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a class variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a instance variable lval registers an offense for assignment using << in ternary for a constant lval registers an offense for assignment using << in ternary for a global variable lval registers an offense for assignment using << in ternary for a local variable lval registers an offense for assignment using << in ternary for a class variable lval registers an offense for assignment using << in ternary behaves like all variable types allows assignment to the return of if else registers an offense assigning any variable type in ternary registers an offense assigning any variable type in if else allows assignment to the return of case when registers an offense assigning any variable type in case when allows assignment to the return of a ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else empty branch allows if elsif without else allows an empty elsif statement allows assignment in unless without an else allows assignment in if without an else allows an empty when branch with an else allows an empty if statement allows case with an empty else allows assignment in case when without an else behaves like all variable types registers an offense assigning any variable type in case when allows assignment to the return of case when allows assignment to the return of a ternary allows assignment to the return of if else registers an offense assigning any variable type in ternary registers an offense assigning any variable type in if else behaves like all assignment types for a instance variable lval registers an offense for assignment using &= in ternary for a global variable lval registers an offense for assignment using &= in ternary for a local variable lval registers an offense for assignment using &= in ternary for a constant lval registers an offense for assignment using &= in ternary with end alignment to keyword for a constant lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a instance variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a class variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a local variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a global variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else with end alignment to start_of_line for a class variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a local variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a instance variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a global variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a constant lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a class variable lval registers an offense for assignment using &= in ternary behaves like all assignment types with end alignment to keyword for a class variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a local variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a global variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a constant lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a instance variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a class variable lval registers an offense for assignment using /= in ternary for a local variable lval registers an offense for assignment using /= in ternary for a instance variable lval registers an offense for assignment using /= in ternary for a constant lval registers an offense for assignment using /= in ternary with end alignment to start_of_line for a constant lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a global variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a local variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a instance variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a class variable lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a global variable lval registers an offense for assignment using /= in ternary assignment as the last statement allows more than variable assignment in if elsif else allows multiple assignment in unless else allows more than variable assignment in if else allows multiple assignments in case when with multiple whens allows assignment in if elsif else with some branches only containing variable assignment and others containing more than variable assignment allows variable assignment in unless else with more than variable assignment allows multiple assignment in case statements when the last assignment is the same and the earlier assignments do not appear in all branches allows multiple assignment in if elsif elsif else allows multiple assignment in case when else when the last assignment is the same and the earlier assignments do not appear in all branches allows multiple assignment in if else allows variable assignment in case when else with more than variable assignment allows multiple assignment in if elsif else allows multiple assignments in case when with only one when allows multiple assignments in case when if there are uniq variables in the when branches allows multiple assignment in if elsif else when the last assignment is the same and the earlier assignments do not appear in all branches behaves like allows out of order multiple assignment in if elsif else allows out of order multiple assignment in if elsif else multiple assignment in only one branch registers an offense when multiple assignment is in else allows multiple assignment is in if allows multiple assignment is in elsif behaves like else followed by new conditional without else allows if elsif else unless behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else with end alignment to start_of_line corrects comparison methods in unless else corrects comparison methods in case when corrects comparison methods in if elsif else configured to check conditions with multiple statements allows assignment in multiple branches when it is wrapped in a modifier registers an offense for multiple assignment when an earlier assignment is is protected by a modifier auto-correct corrects multiple assignment in if else corrects multiple assignment in unless else corrects assignment in an if statement that is nested in unless else corrects multiple assignment in case when corrects multiple assignment in if elsif else corrects multiple assignment in if elsif else with multiple elsifs corrects multiple assignment in case when with multiple whens assignment as the last statement registers an offense in if elsif else with more than variable assignment registers offense for multiple assignment in if elsif elsif else registers an offense in if else with more than variable assignment registers an offense in unless else with more than variable assignment register an offense for multiple assignment in if else registers offense for multiple assignments in case when with only one when registers an offense in if elsif else with some branches only containing variable assignment and others containing more than variable assignment registers an offense in case when else with more than variable assignment registers offense for multiple assignments in case when with multiple whens registers offense for multiple assignment in unless else registers an offense for multiple assignment in if elsif else behaves like allows out of order multiple assignment in if elsif else allows out of order multiple assignment in if elsif else multiple assignment in only one branch registers an offense when multiple assignment is in elsif registers an offense when multiple assignment is in if registers an offense when multiple assignment is in else behaves like all assignment types for a constant lval registers an offense for assignment using |= in ternary with end alignment to keyword for a constant lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a global variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a instance variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a local variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a class variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else with end alignment to start_of_line for a constant lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a global variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a instance variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a class variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a local variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a class variable lval registers an offense for assignment using |= in ternary for a global variable lval registers an offense for assignment using |= in ternary for a local variable lval registers an offense for assignment using |= in ternary for a instance variable lval registers an offense for assignment using |= in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with end alignment to keyword corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with nested conditionals eventually autocorrects all branches does not consider branches of nested ifs behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else behaves like all assignment types for a constant lval registers an offense for assignment using ^= in ternary for a local variable lval registers an offense for assignment using ^= in ternary for a class variable lval registers an offense for assignment using ^= in ternary for a instance variable lval registers an offense for assignment using ^= in ternary with end alignment to start_of_line for a local variable lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a global variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a constant lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a class variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a instance variable lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a global variable lval registers an offense for assignment using ^= in ternary with end alignment to keyword for a global variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a constant lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a class variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a instance variable lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a local variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else behaves like all assignment types for a constant lval registers an offense for assignment using <<= in ternary for a instance variable lval registers an offense for assignment using <<= in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a class variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a global variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a constant lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a local variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a global variable lval registers an offense for assignment using <<= in ternary for a class variable lval registers an offense for assignment using <<= in ternary for a local variable lval registers an offense for assignment using <<= in ternary with end alignment to keyword for a global variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a instance variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a constant lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a local variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a class variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else EndAlignment configured to start_of_line auto-correct uses proper end alignment in unless uses proper end alignment in case uses proper end alignment in if behaves like all assignment types for a constant lval registers an offense for assignment using *= in ternary for a local variable lval registers an offense for assignment using *= in ternary with end alignment to keyword for a local variable lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a class variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a global variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a constant lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a instance variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a global variable lval registers an offense for assignment using *= in ternary for a class variable lval registers an offense for assignment using *= in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a constant lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a local variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a global variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a class variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a instance variable lval registers an offense for assignment using *= in ternary IncludeTernaryExpressions false allows assignment in ternary operation behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else behaves like all assignment types for a instance variable lval registers an offense for assignment using -= in ternary for a constant lval registers an offense for assignment using -= in ternary with end alignment to start_of_line for a constant lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a instance variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a class variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a local variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a global variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else with end alignment to keyword for a instance variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a global variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a local variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a constant lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a class variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a local variable lval registers an offense for assignment using -= in ternary for a global variable lval registers an offense for assignment using -= in ternary for a class variable lval registers an offense for assignment using -= in ternary behaves like all assignment types for a instance variable lval registers an offense for assignment using ||= in ternary with end alignment to keyword for a class variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a global variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a constant lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a instance variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a local variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a constant lval registers an offense for assignment using ||= in ternary for a global variable lval registers an offense for assignment using ||= in ternary with end alignment to start_of_line for a class variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a local variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a global variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a instance variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a constant lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a local variable lval registers an offense for assignment using ||= in ternary for a class variable lval registers an offense for assignment using ||= in ternary auto-correct preserves comments during correction in case when else corrects assignment to unbracketed array in if else corrects =~ in ternary operations preserves comments during correction in if else aref assignment corrects if..else with different indices doesn't register an offense self.attribute= assignment corrects if..else with different receivers doesn't register an offense constant assignment corrects if..else with top-level constant corrects if..else with namespaced constant multiple assignment does not register an offense in if else does not register an offense in case when assignment from a method corrects unless else corrects if else corrects case when behaves like else followed by new conditional without else allows if elsif else if behaves like all assignment types for a constant lval registers an offense for assignment using %= in ternary for a instance variable lval registers an offense for assignment using %= in ternary for a class variable lval registers an offense for assignment using %= in ternary with end alignment to keyword for a global variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a constant lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a local variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a class variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a instance variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else with end alignment to start_of_line for a instance variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a global variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a class variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a local variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a constant lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a global variable lval registers an offense for assignment using %= in ternary for a local variable lval registers an offense for assignment using %= in ternary behaves like all assignment types with end alignment to start_of_line for a instance variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a local variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a class variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a constant lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a global variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else with end alignment to keyword for a global variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a class variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a instance variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a local variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a constant lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a constant lval registers an offense for assignment using >>= in ternary for a global variable lval registers an offense for assignment using >>= in ternary for a class variable lval registers an offense for assignment using >>= in ternary for a instance variable lval registers an offense for assignment using >>= in ternary for a local variable lval registers an offense for assignment using >>= in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else behaves like all variable types allows assignment to the return of case when registers an offense assigning any variable type in if else allows assignment to the return of a ternary allows assignment to the return of if else registers an offense assigning any variable type in case when registers an offense assigning any variable type in ternary for if elsif else if else autocorrects the inner offense first autocorrects the outer offense later behaves like all assignment types for a class variable lval registers an offense for assignment using &&= in ternary with end alignment to keyword for a instance variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else for a constant lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a global variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a local variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a class variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else for a constant lval registers an offense for assignment using &&= in ternary for a global variable lval registers an offense for assignment using &&= in ternary for a local variable lval registers an offense for assignment using &&= in ternary for a instance variable lval registers an offense for assignment using &&= in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a class variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a constant lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a instance variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a local variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else RuboCop::Formatter::PacmanFormatter #next_step when no offenses are detected calls the step function with a dot when a offense is detected in a file calls the step function with a dot #step character is Pacman removes the first • and puts a ᗧ character is a Pacdot leaves the progress_line as it is character is ghost removes the first • and puts a ghosts character is normal dot removes the first • and puts a . #update_progress_line when total_files is greater than columns in the terminal updates the progress_line properly when need to change the line updates the progress_line properly when total_files less than columns in the terminal updates the progress_line properly RuboCop::ConfigObsoletion #validate when the configuration includes any obsolete cop name prints a warning message when the configuration includes any obsolete parameters prints a warning message RuboCop::Cop::Layout::ArrayAlignment when aligned with fixed indentation registers an offense and corrects misaligned array elements accepts aligned array with fullwidth characters accepts single line array accepts several elements per line accepts aligned array keys auto-corrects array if the first element being on a new row does not indent heredoc strings in autocorrect does not auto-correct array within array with too much indentation does not auto-correct array within array with too little indentation accepts the first element being on a new row when aligned with first parameter accepts the first element being on a new row auto-corrects array if the first element being on a new row does not indent heredoc strings in autocorrect does not auto-correct array within array with too much indentation accepts several elements per line does not auto-correct array within array with too little indentation accepts aligned array keys accepts single line array registers an offense and corrects misaligned array elements accepts aligned array with fullwidth characters RuboCop::Cop::Security::MarshalLoad does not register an offense for Marshal.dump registers an offense for using Marshal.restore registers an offense for using Marshal.load allows using dangerous Marshal methods for deep cloning does not register an offense Marshal methods under another namespace RuboCop::Cop::Style::RedundantSelf accepts a self receiver used to distinguish from argument of block accepts a self receiver for methods named like ruby keywords does not report an offense when self receiver in a method argument and lvalue have the same name accepts a self receiver on an lvalue of an and-assignment accepts a self receiver of .() accepts a self receiver with the double less-than operator accepts a self receiver of methods also defined on `Kernel` accepts a self receiver on an lvalue of an or-assignment accepts a self receiver with the square bracket operator reports an offense a self receiver of .call does not report an offense when self receiver in a method argument and multiple assigned lvalue have the same name accepts a self receiver on an lvalue of an assignment accepts a self receiver on an lvalue of a plus-assignment does not report an offense when receiver and lvalue have the same name accepts a self receiver used to distinguish from constant reports an offense a self receiver on an rvalue does not report an offense when receiver and multiple assigned lvalue have the same name accepts a self receiver on an lvalue of a parallel assignment instance methods accepts a self receiver used to distinguish from blockarg accepts a self receiver used to distinguish from argument accepts a self receiver used to distinguish from optional argument accepts a self receiver used to distinguish from local variable accepts a self receiver used to distinguish from an argument when an inner method is defined accepts a self receiver used to distinguish from an argument class methods accepts a self receiver used to distinguish from blockarg accepts a self receiver used to distinguish from optional argument accepts a self receiver used to distinguish from argument accepts a self receiver used to distinguish from local variable RuboCop::Cop::Lint::StructNewOverride registers an offense using `Struct.new(string, ...symbols)` registers an offense using `Struct.new(...)` with multiple overrides registers an offense using `Struct.new(symbol, string)` registers an offense using `Struct.new(...symbols)` registers an offense using `Struct.new(...)` with an option argument registers an offense using `::Struct.new(symbol)` does not register an offense with an override within a given block registers an offense using `Struct.new(symbol)` registers an offense using `Struct.new(...)` with a block does not register an offense with no overrides RuboCop::Cop::Layout::LeadingEmptyLines registers an offense and corrects a new line before code allows blank lines without any comments or code accepts not having a blank line before a comment accepts not having a blank line before a class registers an offense and corrects multiple new lines before a class allows an empty input registers an offense and corrects a new line before a class accepts not having a blank line before code registers an offense and corrects a new line before a comment auto-correct in collaboration does not invoke conflicts with other cops RuboCop::Cop::Style::WhenThen registers an offense for when x; accepts ; separating statements in the body of when when inspecting a case statement with an empty branch does not register an offense RuboCop::Cop::Lint::NumberConversion registers an offense when using `#to_i` for integer when `#to_i` called on a variable when `#to_i` called on a hash value when `#to_i` called on a variable on a array when using `#to_f` when `#to_i` called on a variable on a hash when using `#to_c` when using `#to_i` does not register an offense when using Integer() with integer when `#to_i` called without a receiver when using Float() when using DateTime when using Complex() when using Time when using Time/DateTime with multiple method calls RuboCop::Cop::Lint::MissingCopEnableDirective when the maximum range size is infinite does not register an offense when the disable cop is re-enabled registers an offense when a cop is disabled and never re-enabled when the maximum range size is finite registers an offense when a cop is disabled for too many lines registers an offense when a cop is disabled and never re-enabled does not register an offense when the disable cop is re-enabled within the limit RuboCop::Cop::Lint::BigDecimalNew registers an offense and corrects using `BigDecimal.new()` does not register an offense when using `BigDecimal()` registers an offense and corrects using `::BigDecimal.new()` RuboCop::Cop::Style::Semicolon accepts semicolon after params if so configured registers an offense for semicolon at the end no matter what registers an offense for several expressions accepts semicolon before end if so configured registers an offense for a single expression accepts one line method definitions registers an offense for a semicolon at the beginning of a line accepts one line empty module definitions registers an offense for one line method with two statements accepts one line empty class definitions accepts one line empty method definitions accept semicolons inside strings when AllowAsExpressionSeparator is true accepts one line method with two statements accepts several expressions with a multi-expression line without a semicolon does not register an offense RuboCop::Cop::Style::NegatedUnless does not blow up for empty if condition does not blow up for empty unless condition does not blow up on a negated ternary operator does not blow up for ternary ops with “prefix” style does not register an offense for postfix registers an offense for prefix with “both” style accepts an unless where the condition is doubly negated autocorrects by replacing parenthesized unless not with if registers an offense for unless with exclamation point condition accepts an unless where only part of the condition is negated registers an offense for unless with "not" condition accepts an unless/else with negative condition with “postfix” style registers an offense for postfix does not register an offense for prefix RuboCop::Cop::Lint::InheritException when class inherits from `Exception` with enforced style set to `runtime_error` registers an offense and corrects when creating a subclass using Class.new registers an offense and corrects with enforced style set to `standard_error` registers an offense and corrects when creating a subclass using Class.new registers an offense and corrects RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands does not register an offense when using binary operator with different operands registers an offense when binary operator has identical nodes does not register an offense when using arithmetic operator with numerics RuboCop::Cop::Style::LambdaCall when style is set to call registers an offense for x.() registers an offense for correct + opposite when style is set to braces auto-corrects x.call to x.() registers an offense for x.call() registers an offense for opposite + correct auto-corrects x.call asdf, x123 to x.(asdf, x123) accepts a call without receiver RuboCop::Formatter::ProgressFormatter #file_finished when no offenses are detected calls #report_as_with_mark when any offenses are detected calls #report_as_with_mark #finished calls #report_summary when any offenses are detected reports all detected offenses for all failed files when no offenses are detected does not report offenses #report_file_as_mark when a refactor severity offense is detected prints "R" when no offenses are detected prints "." when different severity offenses are detected prints highest level mark when a refactor convention offense is detected prints "C" RuboCop::Cop::Layout::MultilineAssignmentLayout same_line style registers an offense for masgn with multi-line lhs registers an offense when the rhs is a different line in []= registers an offense when the rhs is a different line registers an offense when the rhs is a different line in setters ignores arrays allows multi-line assignments on the same line when supported types is block registers an offense when multi-line assignments using block definition on separate lines allows multi-line block defines on separate lines allows multi-line assignments when using shovel operator allows when multi-line assignments using block definition is on the same line configured supported types allows supported types to be configured new_line style registers an offense when the rhs is on the same line in setters registers an offense for masgn with multi-line lhs ignores arrays registers an offense when the rhs is on the same line allows multi-line assignments on separate lines registers an offense when the rhs is on the same line in []= when supported types is block registers an offense when multi-line assignments using block definition is on the same line allows multi-line assignments when using block definition on separate lines allows multi-line assignments when using shovel operator allows multi-line block defines on separate lines configured supported types allows supported types to be configured RuboCop::Cop::Metrics::Utils::CodeLengthCalculator #calculate raises when unknown foldable type is passed when class does not count blank lines folds hashes if asked does not count lines of inner classes counts comments if asked folds heredocs if asked folds arrays if asked calculates class length when method folds hashes if asked does not count blank lines counts comments if asked folds arrays if asked folds heredocs if asked calculates method length RuboCop::Cop::Metrics::AbcSize when Max is 1.3 reports size and max as <1, 1, 4> 4.24/1.3 when Max is 10.3 reports size and max as <10, 10, 40> 42.43/10.3 when Max is 1000.3 reports size and max as <1000, 1000, 4000> 4243/1000 when Max is 100.321 reports size and max as <100, 100, 400> 424.3/100.3 when Max is 0 treats safe navigation method calls like regular method calls + a condition registers an offense for an assignment of a local variable registers an offense for an if modifier registers an offense for a `define_method` registers an offense for an assignment of an element accepts an empty method accepts an empty `define_method` registers an offense for complex content including A, B, and C scores when method is in list of ignored methods does not register an offense when defining an instance method does not register an offense when using `define_method` does not register an offense when defining a class method when Max is 2.3 accepts a total score of 2.24 when Max is 2 accepts two assignments RuboCop::Cop::Style::MutableConstant Strict: true freezes a heredoc allows calls to freeze behaves like mutable objects when assigning with = registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze behaves like immutable objects allows Struct.new(:a, :b) to be ||= to a constant allows Struct.new(:a, :b) to be assigned to a constant behaves like immutable objects allows 1 to be ||= to a constant allows 1 to be assigned to a constant behaves like immutable objects allows Struct.new to be ||= to a constant allows Struct.new to be assigned to a constant behaves like immutable objects allows ::Struct.new to be ||= to a constant allows ::Struct.new to be assigned to a constant splat expansion expansion of a range registers an offense and corrects to use to_a.freeze with parentheses registers an offense and corrects to use to_a.freeze behaves like immutable objects allows 1.5 to be assigned to a constant allows 1.5 to be ||= to a constant behaves like immutable objects allows Namespace::OTHER_CONST to be assigned to a constant allows Namespace::OTHER_CONST to be ||= to a constant behaves like immutable objects allows ::ENV['foo'] to be ||= to a constant allows ::ENV['foo'] to be assigned to a constant when assigning an array without brackets adds brackets when auto-correcting does not add brackets to %w() arrays behaves like immutable objects allows ::OTHER_CONST to be assigned to a constant allows ::OTHER_CONST to be ||= to a constant when the frozen string literal comment is true behaves like immutable objects allows "#{a}" to be assigned to a constant allows "#{a}" to be ||= to a constant behaves like mutable objects when assigning with ||= registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze behaves like immutable objects allows OTHER_CONST to be assigned to a constant allows OTHER_CONST to be ||= to a constant behaves like mutable objects when assigning with = registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze behaves like immutable objects allows ENV['foo'] to be ||= to a constant allows ENV['foo'] to be assigned to a constant methods and operators that produce frozen objects accepts assigning to an environment variable with a fallback accepts operating on a constant and an interger accepts checking fixed size accepts operating on multiple floats accepts comparison operators accepts operating on multiple integers accepts operating on a constant and a float behaves like immutable objects allows Struct.new(:node) do def assignment? true end end to be ||= to a constant allows Struct.new(:node) do def assignment? true end end to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze operators that produce unfrozen objects registers an offense when operating on multiple strings registers an offense when operating on a constant and a string behaves like mutable objects when assigning with = registers an offense for Something.new assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for Something.new assigned to a constant and corrects by adding .freeze behaves like mutable objects when assigning with = registers an offense for 'str' assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for 'str' assigned to a constant and corrects by adding .freeze when the frozen string literal comment is missing behaves like mutable objects when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze behaves like immutable objects allows ::Namespace::OTHER_CONST to be assigned to a constant allows ::Namespace::OTHER_CONST to be ||= to a constant when the frozen string literal comment is false behaves like mutable objects when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with an operator behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like immutable objects allows :sym to be ||= to a constant allows :sym to be assigned to a constant when assigning with multiple operator calls registers an offense and corrects with parens and freeze Strict: false allows method call assignments behaves like immutable objects allows FOO + BAR to be ||= to a constant allows FOO + BAR to be assigned to a constant when assigning an array without brackets adds brackets when auto-correcting does not add brackets to %w() arrays behaves like immutable objects allows 1 to be assigned to a constant allows 1 to be ||= to a constant splat expansion expansion of a range registers an offense and corrects to use to_a.freeze with parentheses registers an offense and corrects to use to_a.freeze behaves like mutable objects when assigning with ||= registers an offense for 'str' assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for 'str' assigned to a constant and corrects by adding .freeze behaves like immutable objects allows :sym to be ||= to a constant allows :sym to be assigned to a constant when assigning a range (irange) without parenthesis adds parenthesis when auto-correcting does not add parenthesis to range enclosed in parentheses when assigning a range (erange) without parenthesis adds parenthesis when auto-correcting does not add parenthesis to range enclosed in parentheses behaves like mutable objects when assigning with ||= registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze behaves like immutable objects allows ::ENV['foo'] to be assigned to a constant allows ::ENV['foo'] to be ||= to a constant behaves like immutable objects allows 'foo' + 'bar' to be assigned to a constant allows 'foo' + 'bar' to be ||= to a constant behaves like immutable objects allows ENV['foo'] to be ||= to a constant allows ENV['foo'] to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze behaves like immutable objects allows 1.5 to be ||= to a constant allows 1.5 to be assigned to a constant behaves like mutable objects when assigning with ||= registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze behaves like mutable objects when assigning with = registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze when the constant is a frozen string literal when the frozen string literal comment is false behaves like mutable objects when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when the frozen string literal comment is missing behaves like mutable objects when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when the frozen string literal comment is true behaves like immutable objects allows "#{a}" to be assigned to a constant allows "#{a}" to be ||= to a constant behaves like immutable objects allows FOO - BAR to be assigned to a constant allows FOO - BAR to be ||= to a constant RuboCop::Cop::Layout::SpaceAroundMethodCallOperator does not register an offense when no method call operator safe navigation operator autocorrects offense when space around intermediate method call operator registers an offense when spaces after method call registers an offense when space after method call does not register an offense when no space around method call registers an offense when space around multiple method call operator autocorrects offense when space after first method call operator autocorrects offense when space after last method call operator autocorrects offense when space after method call registers an offense when space after first method call operator autocorrects offense when spaces before method call registers an offense when space before last method call operator registers an offense when space before method call autocorrects offense when space before method call autocorrects offense when space before first method call operator registers an offense when space around intermediate method call operator autocorrects offense when space around multiple method call operator autocorrects offense when space before last method call operator autocorrects offense when spaces after method call registers an offense when spaces before method call autocorrects offense when spaces around method call registers an offense when spaces around method call does not register an offense when no space around any `.` operators registers an offense when space after last method call operator registers an offense when space before first method call operator when multi line method call does not register an offense when no space after the `&.` registers an offense when space before method call in suffix chaining autocorrects offense when space before method call registers an offense when space before method call autocorrects offense when space before method call in suffix chaining dot operator registers an offense when space before first method call operator autocorrects offense when spaces around method call autocorrects offense when space before last method call operator autocorrects offense when space before first method call operator does not register an offense when no space around any `.` operators autocorrects offense when spaces after `Proc#call` shorthand call does not register an offense when no space around method call autocorrects offense when space after first method call operator registers an offense when space around multiple method call operator registers an offense when spaces around method call autocorrects offense when space before method call registers an offense when space after first method call operator autocorrects offense when spaces before method call registers an offense when spaces before method call autocorrects offense when space after method call registers an offense when space around intermediate method call operator registers an offense when space before last method call operator registers an offense when space after last method call operator registers an offense when spaces after method call registers an offense when spaces after `Proc#call` shorthand call autocorrects offense when space after last method call operator registers an offense when space before method call autocorrects offense when space around multiple method call operator registers an offense when space after method call autocorrects offense when spaces after method call autocorrects offense when space around intermediate method call operator when multi line method call does not register an offense when no space after the `.` autocorrects offense when space before method call registers an offense when space before method call autocorrects offense when space before method call in suffix chaining registers an offense when space before method call in suffix chaining when there is a space between `.` operator and a comment does not register an offense when there is not a space before `.` registers an offense when there is a space before `.` :: operator registers an offense when space around intermediate method call operator autocorrects offense when space after last method call operator registers an offense when space around multiple method call operator autocorrects offense when space after first operator with assignment registers an offense when space after last method call operator registers an offense when space after method call autocorrects offense when space around multiple method call operator autocorrects offense when space around intermediate method call operator autocorrects offense when multiple spaces with assignment registers an offense when spaces after method call autocorrects offense when space after method call does not register an offense if no space before `::` operator with assignment does not register an offense if no space with conditionals registers an offense when multiple spaces with assignment does not register an offense if no space before `::` operator with inheritance does not register an offense when no space around method call autocorrects offense when spaces after method call registers an offense when space after first operator with assignment does not register an offense when no space around any `.` operators when multi line method call autocorrects offense when space before method call does not register an offense when no space after the `::` registers an offense when space before method call RuboCop::CLI --stdin requires a file path causes source code to be read from stdin detects CR at end of line does not accept more than one file path prints corrected code to stdout if --auto-correct-all is used -S/--display-style-guide shows reference entry shows style guide and reference entries shows style guide entry -D/--display-cop-names shows cop names DisplayCopNames: false in .rubocop.yml shows cop names without --display-cop-names does not show cop names --no-display-cop-names does not show cop names --force-exclusion when explicitly excluded excludes files specified in the configuration Exclude even if they are explicitly passed as arguments with already excluded by default excludes files excluded by default even if they are explicitly passed as arguments --only-recognized-file-types when explicitly included includes the file given on the command line when not explicitly included does not include the file given on the command line but option is not given includes the file given on the command line --show-cops with --force-default-config prioritizes default config with one cop given prints that cop and nothing else prints the current configuration with no args prints all available cops and their description prints all departments prints the current configuration prints all cops in their right department listing with one of the cops misspelled skips the unknown cop with two cops given prints the current configuration --version exits cleanly --list-target-files when there are some files when there are no includes or excludes prints known ruby files when there is an include and exclude prints the included files and not the excluded ones when there are no files prints nothing with --list-target-files prints nothing with -L --fail-level option fails when option is less than the severity level fails when option is equal to the severity level succeeds when option is greater than the severity level with --display-only-fail-level-offenses outputs offense message when fail-level is equal to the severity outputs offense message when fail-level is less than the severity doesn't output offense message when less than the fail-level with disabled line still checks unprinted offense if they're a redundant disable doesn't consider a unprinted offense to be a redundant disable with --auto-correct-all fails when option is A and all offenses are autocorrected succeeds when option is not given and all offenses are autocorrected fails when option is autocorrect and all offenses are autocorrected succeeds when option is refactor and all offenses are autocorrected option is invalid suggests to use the --help flag --except when one cop is given without namespace disables the given cop when one name is given exits with error if Syntax is given exits with error if an empty string is given exits with error if the cop name is incorrect displays correction candidate if an incorrect cop name is given exits with error if Lint/Syntax is given when several cops are given disables the given cops including Lint disables the given cops including Lint/RedundantCopDisableDirective disables the given cops including RedundantCopDisableDirective when one cop plus one namespace are given runs all cops except the given when a cop name is not specified displays how to use `--except` option -d/--debug shows config files shows cop names --lint runs only lint cops -f/--format can be used multiple times builtin formatters when unknown format name is specified aborts with error message when html format is specified and offenses come from the cache and a message has binary encoding outputs HTML code without crashing when simple format is specified outputs with simple format when emacs format is specified outputs with emacs format when clang format is specified outputs with clang format when json format is specified and offenses come from the cache and a message has binary encoding outputs JSON code without crashing custom formatter when a class name is specified uses the class as a formatter when unknown class name is specified aborts with error message --only when a namespace is given runs all enabled cops in that namespace when several cops are given runs the given cops and --lint runs the given cops plus all enabled lint cops when three namespaces are given runs all enabled cops in those namespaces when a cop name is not specified displays how to use `--only` option when one cop is given exits with error if an incorrect cop name is passed only checks syntax if Lint/Syntax is given exits with error if cop name Lint/RedundantCopDisableDirective is passed exits with error if an empty string is given only checks syntax if Syntax is given accepts cop names from plugins displays correction candidate if an incorrect cop name is given exits with error if cop name RedundantCopDisableDirective is passed enables the given cop runs just one cop when specifying a pending cop when Style department is disabled does not show pending cop warning when Style department is enabled when using `--disable-pending-cops` command-line option does not display a pending cop warning when `VersionAdded` is not specified accepts cop names from plugins with a pending cop warning when specifying `NewCops: disable` in .rubocop.yml does not display a pending cop warning when `VersionAdded` is specified accepts cop names from plugins with a pending cop warning when specifying `NewCops: pending` in .rubocop.yml displays a pending cop warning when specifying `NewCops: enable` in .rubocop.yml does not display a pending cop warning when using `--enable-pending-cops` command-line option does not display a pending cop warning without using namespace runs just one cop with --auto-correct-all and disabled offense succeeds when there is only a disabled offense -E/--extra-details shows extra details --parallel in combination with --force-default-config does not parse local configuration in combination with --ignore-parent-exclusion does ignore the exclusion in the parent directory configuration on Unix-like systems does not print a message if --debug is not specified prints a message if --debug is specified combined with AllCops:UseCache:false fails with an error message -o/--out option is applied to the previously specified formatter redirects output to the specified file -V exits cleanly RuboCop::Cop::Lint::RequireParentheses registers an offense for missing parentheses around expression with || operator accepts method calls that are all operations accepts calls to methods that are operators accepts method call with parentheses in ternary accepts parentheses around expression with boolean operator registers an offense for missing parentheses around expression in ternary registers an offense for missing parentheses around expression with && operator accepts missing parentheses around expression with + operator accepts calls to methods that are setters accepts method calls without parentheses followed by keyword and/or accepts missing parentheses when method is not a predicate accepts condition that is not a call when using safe navigation operator registers an offense for missing parentheses around expression with && operator RuboCop::Cop::Style::ModuleFunction when enforced style is `extend_self` accepts module_function with an argument registers an offense for `module_function` without an argument when enforced style is `forbidden` registers an offense for `module_function` without an argument accepts `extend self` in a class registers an offense for `extend self` in a module with private methods in a module with declarative private in a module when enforced style is `module_function` accepts `extend self` in a class registers an offense for `extend self` in a module accepts for `extend self` in a module with private methods accepts for `extend self` in a module with declarative private RuboCop::Cop::Style::Alias when EnforcedStyle is prefer_alias registers an offense for alias with symbol args does not register an offense for alias_method with non-literal constant argument registers an offense for alias_method at the top level does not register an offense for alias_method with explicit receiver registers an offense for alias_method in a module block does not register an offense for alias_method in a block does not register an offense for alias with bareword args registers an offense for alias_method in a class block does not register an offense for alias_method in self.method def does not register an offense for alias_method with non-literal method call argument does not register an offense for alias in an instance_eval block does not register an offense for alias_method in a method def when EnforcedStyle is prefer_alias_method registers an offense for alias with symbol args does not register an offense for alias with gvars does not register an offense for alias_method does not register an offense for alias in an instance_eval block registers an offense for alias with bareword args RuboCop::Cop::InternalAffairs::UselessMessageAssertion registers an offense for described_class::MSG in let registers an offense for specs that assert using the MSG does not register an offense for an assertion about the message RuboCop::Cop::Style::PerlBackrefs auto-corrects #$1 to #{Regexp.last_match(1)} registers an offense for $9 registers an offense for $1 RuboCop::Cop::Metrics::MethodLength accepts a method with less than 5 lines is not fooled by one-liner methods, syntax #2 does not count commented lines by default properly counts lines when method ends with block accepts empty methods does not count blank lines is not fooled by one-liner methods, syntax #1 accepts a method with multiline arguments and less than 5 lines of body when `CountAsOne` is not empty folds array into one line when method is a class method registers an offense when method is defined with `define_method` registers an offense when method is an instance method registers an offense when method is defined in `ExcludedMethods` still rejects other methods with more than 5 lines accepts the foo method with more than 5 lines when method is defined on a singleton class registers an offense when CountComments is enabled also counts commented lines RuboCop::Cop::Lint::UselessAccessModifier behaves like method named by access modifier name registers an offense for `public` behaves like at the end of the body registers an offense for trailing `public` behaves like method named by access modifier name registers an offense for `protected` behaves like repeated visibility modifiers registers an offense when `public` is repeated behaves like method defined using class_eval registers an offense if no method is defined doesn't register an offense if a method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the block and no method is defined behaves like method defined with define_method doesn't register an offense if a block is passed doesn't register an offense if a -> is passed doesn't register an offense if a proc is passed doesn't register an offense if a lambda is passed when an access modifier is followed by attr_* does not register an offense when only a constant or local variable is defined after the modifier registers an offense and corrects registers an offense and corrects behaves like nested in a begin..end block still flags repeated `protected` doesn't flag an access modifier from surrounding scope behaves like nested in a begin..end block still flags repeated `protected` doesn't flag an access modifier from surrounding scope behaves like def in new block doesn't register an offense if a method is defined in ::Struct.new registers an offense if no method is defined in ::Struct.new behaves like nested in a begin..end block still flags repeated `private` doesn't flag an access modifier from surrounding scope when using the class_methods method from ActiveSupport::Concern is aware that this creates a new scope behaves like at the end of the body registers an offense for trailing `private` behaves like def in new block doesn't register an offense if a method is defined in Struct.new registers an offense if no method is defined in Struct.new behaves like method named by access modifier name registers an offense for `private` behaves like nested in a begin..end block doesn't flag an access modifier from surrounding scope still flags repeated `private` behaves like at the end of the body registers an offense for trailing `protected` behaves like at the end of the body registers an offense for trailing `protected` behaves like unused visibility modifiers registers an offense and corrects when visibility is immediately changed without any intervening defs behaves like unused visibility modifiers registers an offense and corrects when visibility is immediately changed without any intervening defs behaves like nested modules doesn't register an offense for nested classs unused modifiers registers an offense with a nested class registers an offense when outside a nested class registers an offense when inside a nested class behaves like method defined with define_method doesn't register an offense if a lambda is passed doesn't register an offense if a -> is passed doesn't register an offense if a proc is passed doesn't register an offense if a block is passed behaves like at the top of the body registers an offense and corrects for `public` doesn't register an offense for `protected` doesn't register an offense for `private` when passing method as symbol does not register an offense behaves like methods defined in an iteration doesn't register an offense for each doesn't register an offense for map when an access modifier has no methods registers an offense and corrects behaves like nested modules doesn't register an offense for nested modules unused modifiers registers an offense when inside a nested module registers an offense with a nested module registers an offense when outside a nested module behaves like repeated visibility modifiers registers an offense when `protected` is repeated behaves like nested in a begin..end block still flags repeated `public` behaves like def in new block registers an offense if no method is defined in ::Struct.new doesn't register an offense if a method is defined in ::Struct.new behaves like at the end of the body registers an offense for trailing `public` behaves like method defined on a singleton class inside a class registers an offense if no method is defined doesn't register an offense if the modifier is the same as outside the meta-class registers an offense even if a non-singleton-class method is defined doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier outside a class registers an offense if no method is defined after the modifier doesn't register an offense if a method is defined registers an offense if no method is defined behaves like method defined using instance_eval registers an offense if no method is defined doesn't register an offense if a method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the and no method is defined behaves like conditionally defined method doesn't register an offense for unless doesn't register an offense for if when using a known method-creating method is aware that this creates a new method still points out redundant uses within the module behaves like conditionally defined method doesn't register an offense for unless doesn't register an offense for if behaves like non-repeated visibility modifiers registers an offense and corrects even when `public` is not repeated doesn't register an offense when `private` is not repeated doesn't register an offense when `protected` is not repeated behaves like method defined using class_eval doesn't register an offense if a method is defined registers an offense if no method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the block and no method is defined when using inline modifiers does not register an offense behaves like def in new block doesn't register an offense if a method is defined in Class.new registers an offense if no method is defined in Class.new behaves like method defined on a singleton class outside a class registers an offense if no method is defined after the modifier doesn't register an offense if a method is defined registers an offense if no method is defined inside a class registers an offense even if a non-singleton-class method is defined doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier doesn't register an offense if the modifier is the same as outside the meta-class registers an offense if no method is defined behaves like method defined on a singleton class inside a class doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier registers an offense even if a non-singleton-class method is defined doesn't register an offense if the modifier is the same as outside the meta-class registers an offense if no method is defined outside a class registers an offense if no method is defined registers an offense if no method is defined after the modifier doesn't register an offense if a method is defined behaves like methods defined in an iteration doesn't register an offense for map doesn't register an offense for each when an access modifier has no effect registers an offense and corrects behaves like def in new block doesn't register an offense if a method is defined in ::Module.new registers an offense if no method is defined in ::Module.new behaves like repeated visibility modifiers registers an offense when `protected` is repeated behaves like method named by access modifier name registers an offense for `private` behaves like repeated visibility modifiers registers an offense when `private` is repeated when there are consecutive access modifiers registers an offense and corrects when private_class_method is used with arguments does not register an offense when class is empty save modifier registers an offense and corrects behaves like method defined using instance_eval registers an offense if no method is defined doesn't register an offense if a method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the and no method is defined behaves like def in new block registers an offense if no method is defined in ::Class.new doesn't register an offense if a method is defined in ::Class.new behaves like repeated visibility modifiers registers an offense when `public` is repeated behaves like at the top of the body registers an offense and corrects for `public` doesn't register an offense for `protected` doesn't register an offense for `private` behaves like conditionally defined method doesn't register an offense for unless doesn't register an offense for if when private_class_method is used without arguments registers an offense and corrects behaves like method defined with define_method doesn't register an offense if a -> is passed doesn't register an offense if a lambda is passed doesn't register an offense if a block is passed doesn't register an offense if a proc is passed behaves like def in new block doesn't register an offense if a method is defined in ::Class.new registers an offense if no method is defined in ::Class.new behaves like method defined with define_method doesn't register an offense if a proc is passed doesn't register an offense if a -> is passed doesn't register an offense if a block is passed doesn't register an offense if a lambda is passed when a def is an argument to a method call does not register an offense behaves like method defined on a singleton class inside a class registers an offense if no method is defined doesn't register an offense if the modifier is the same as outside the meta-class doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier registers an offense even if a non-singleton-class method is defined outside a class doesn't register an offense if a method is defined registers an offense if no method is defined registers an offense if no method is defined after the modifier behaves like repeated visibility modifiers registers an offense when `private` is repeated behaves like nested modules doesn't register an offense for nested modules unused modifiers registers an offense when inside a nested module registers an offense with a nested module registers an offense when outside a nested module behaves like method named by access modifier name registers an offense for `protected` behaves like methods defined in an iteration doesn't register an offense for map doesn't register an offense for each behaves like nested modules doesn't register an offense for nested classs unused modifiers registers an offense when outside a nested class registers an offense when inside a nested class registers an offense with a nested class behaves like at the end of the body registers an offense for trailing `private` behaves like nested in a begin..end block still flags repeated `public` behaves like methods defined in an iteration doesn't register an offense for each doesn't register an offense for map behaves like def in new block doesn't register an offense if a method is defined in Module.new registers an offense if no method is defined in Module.new when an access modifier is followed by a class method defined on constant registers an offense and corrects behaves like def in new block registers an offense if no method is defined in Struct.new doesn't register an offense if a method is defined in Struct.new behaves like method named by access modifier name registers an offense for `public` when multiple class definitions in file but only one has offense registers an offense and corrects behaves like def in new block registers an offense if no method is defined in Class.new doesn't register an offense if a method is defined in Class.new behaves like non-repeated visibility modifiers doesn't register an offense when `protected` is not repeated doesn't register an offense when `private` is not repeated registers an offense and corrects even when `public` is not repeated behaves like def in new block registers an offense if no method is defined in Module.new doesn't register an offense if a method is defined in Module.new when using ActiveSupport's `concerning` method still points out redundant uses within the block is aware that this creates a new scope when using ActiveSupport behavior when Rails is not eabled reports offenses and corrects behaves like def in new block doesn't register an offense if a method is defined in ::Module.new registers an offense if no method is defined in ::Module.new behaves like conditionally defined method doesn't register an offense for if doesn't register an offense for unless RuboCop::Cop::Style::RandomWithOffset registers an offense when using Random.rand registers an offense when using rand(int).succ registers an offense when using offset - rand(irange) registers an offense when using Kernel.rand registers an offense when using rand(erange) - offset registers an offense when using rand(int).next does not register an offense when using range with triple dots registers an offense when using Random.rand(int).succ registers an offense when using rand(irange).succ registers an offense when using rand(erange) + offset registers an offense when using rand(int) - offset registers an offense when using rand(int) + offset registers an offense when using rand(irange) + offset registers an offense when using ::Kernel.rand registers an offense when using rand(int).pred registers an offense when using offset + Random.rand(int) registers an offense when using offset + rand(int) does not register an offense when using range with double dots registers an offense when using ::Random.rand(int).pred registers an offense when using offset - ::Random.rand(int) registers an offense when using rand(irange) - offset registers an offense when using offset - rand(erange) registers an offense when using ::Random.rand registers an offense when using rand(erange).succ registers an offense when using offset - rand(int) RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks when second argument starts on same line as end of first registers an offense and corrects when many arguments including hash are on multiple lines, three on same line registers an offense and corrects when many arguments are on multiple lines, three on same line registers an offense and corrects when two arguments are on next line does not add any offenses when argument starts on same line but ends on different line registers an offense and corrects when bracket hash assignment on multiple lines does not add any offenses when one argument on same line does not add any offenses when many arguments are on multiple lines, two on same line registers an offense and corrects when bracket hash assignment key on multiple lines does not add any offenses RuboCop::Cop::Lint::ParenthesesAsGroupedExpression does not register an offense for a call with multiple arguments does not register an offense for expression followed by an operator registers an offense and corrects for predicate method call with space before the parenthesis accepts an operator call with argument in parentheses does not register an offense for math expression registers an offense and corrects for method call with space before the parenthesis does not register an offense for expression followed by chained expression accepts method with parens as arg to method without accepts a chain of method calls does not register an offense for math expression with `to_i` does not register an offesne when heredoc has a space between the same string as the method name and `(` accepts a method call without arguments accepts a space inside opening paren followed by left paren accepts a method call with arguments but no parentheses when using safe navigation operator registers an offense and corrects for method call with space before the parenthesis RuboCop::Cop::Lint::ShadowingOuterLocalVariable when an outer scope variable is referenced in a block does not register an offense when multiple block arguments have a same name starts with "_" does not register an offense when a block local variable has same name as an outer scope variable registers an offense when a block block argument has same name as an outer scope variable registers an offense when a block argument has different name with outer scope variables does not register an offense when an outer scope variable is reassigned in a block does not register an offense when a block argument has same name as an outer scope variable registers an offense when a block argument has a same name starts with "_" as an outer scope variable does not register an offense when a splat block argument has same name as an outer scope variable registers an offense when a method argument has same name as an outer scope variable does not register an offense when a block argument has same name "_" as outer scope variable "_" does not register an offense when multiple block arguments have same name "_" does not register an offense RuboCop::Cop::Style::ExponentialNotation EnforcedStyle is integral registers an offense for decimal mantissa registers no offense for negative mantissa registers no offense for negative exponent registers no offense for an integral mantissa registers an offense for mantissa divisible by 10 registers no offense for a regular float registers no offense for a float smaller than 1 EnforcedStyle is engineering registers no offense for a negative mantissa registers no offense for a large mantissa registers an offense for mantissa smaller than -1000 registers an offense for mantissa smaller than 0.1 registers no offense for a negative exponent registers an offense for exponent equal to 4 registers no offense for a mantissa equal to 1 registers no offense for a float smaller than 1 registers an offense for a mantissa greater than -0.1 registers no offense for a regular float registers an offense for exponent equal to -2 EnforcedStyle is scientific registers no offense for a float smaller than 1 registers no offense for a regular float registers no offense for a negative exponent registers no offense for a negative mantissa registers an offense for mantissa equal to 10 registers an offense for mantissa greater than 10 registers an offense for mantissa smaller than 1 registers no offense for a mantissa between 1 and 10 registers no offense for a mantissa equal to 1 RuboCop::Cop::Lint::LiteralAsCondition registers an offense for literal {} in ! registers an offense for literal :sym in while registers an offense for literal 1 in complex ! registers an offense for literal 1 in if registers an offense for `not 2.0` accepts literal [1] if it's not an and/or operand registers an offense for `!:"#{a}"` accepts array literal in case, if it has nested non-literal element registers an offense for literal :"#{a}" in while registers an offense for literal [1] in complex ! registers an offense for `not 1` registers an offense for literal :"#{a}" in if registers an offense for literal [1] in a when of a case without anything after case keyword accepts literal :sym in a when of a case with something after case keyword registers an offense for literal {} in case registers an offense for `not {}` registers an offense for literal 1 in case accepts `false` literal in post-loop `until` registers an offense for `!1` accepts dstr literal in case registers an offense for case with a primitive array condition registers an offense for literal 2.0 in a when of a case without anything after case keyword registers an offense for `!2.0` registers an offense for literal 1 in ! registers an offense for literal [1] in complex cond accepts literal 2.0 in a when of a case with something after case keyword accepts literal [1] in non-toplevel and/or accepts literal 1 in a when of a case with something after case keyword registers an offense for literal [1] in until registers an offense for literal 2.0 in case accepts literal {} in non-toplevel and/or registers an offense for literal 1 in while registers an offense for literal {} in complex ! registers an offense for literal :sym in a when of a case without anything after case keyword registers an offense for literal {} in && accepts `false` literal in `until` registers an offense for literal :sym in complex cond registers an offense for literal :"#{a}" in && accepts literal [1] in a when of a case with something after case keyword registers an offense for literal {} in until accepts `true` literal in `while` registers an offense for literal {} in post-loop until accepts array literal in case, if it has non-literal elements registers an offense for literal 2.0 in while registers an offense for `not :sym` registers an offense for literal {} in complex cond registers an offense for literal 1 in post-loop while registers an offense for literal :sym in ! accepts literal 1 if it's not an and/or operand accepts literal :"#{a}" in a when of a case with something after case keyword registers an offense for `!:sym` accepts literal :sym if it's not an and/or operand registers an offense for literal 2.0 in && registers an offense for `not :"#{a}"` registers an offense for literal [1] in case registers an offense for literal :"#{a}" in a when of a case without anything after case keyword accepts literal :"#{a}" if it's not an and/or operand registers an offense for literal :"#{a}" in complex cond registers an offense for literal 2.0 in post-loop until registers an offense for literal :"#{a}" in until registers an offense for literal [1] in if registers an offense for literal 1 in complex cond registers an offense for literal 1 in until registers an offense for literal :sym in until registers an offense for literal 1 in && registers an offense for literal :"#{a}" in post-loop until accepts literal 1 in non-toplevel and/or accepts literal :sym in non-toplevel and/or registers an offense for literal :"#{a}" in post-loop while registers an offense for literal 2.0 in if registers an offense for literal 1 in a when of a case without anything after case keyword accepts `true` literal in post-loop `while` registers an offense for `!{}` registers an offense for literal [1] in post-loop while registers an offense for literal {} in a when of a case without anything after case keyword accepts literal :"#{a}" in non-toplevel and/or registers an offense for literal :sym in case accepts literal {} if it's not an and/or operand registers an offense for literal 1 in post-loop until registers an offense for `![1]` registers an offense for literal :sym in if registers an offense for literal :"#{a}" in complex ! registers an offense for literal [1] in post-loop until registers an offense for literal 2.0 in ! registers an offense for literal {} in if registers an offense for literal 2.0 in complex cond registers an offense for literal :"#{a}" in ! registers an offense for literal 2.0 in until registers an offense for literal :sym in && registers an offense for literal {} in while registers an offense for literal :"#{a}" in case registers an offense for literal 2.0 in post-loop while registers an offense for literal [1] in ! registers an offense for literal [1] in while accepts literal 2.0 if it's not an and/or operand registers an offense for literal :sym in post-loop while registers an offense for literal :sym in complex ! registers an offense for literal [1] in && registers an offense for `not [1]` accepts literal 2.0 in non-toplevel and/or registers an offense for literal 2.0 in complex ! registers an offense for literal {} in post-loop while accepts literal {} in a when of a case with something after case keyword registers an offense for literal :sym in post-loop until RuboCop::Cop::Lint::ConstantResolution registers an offense not qualifying a const registers no offense qualifying a namespace const registers no offense when qualifying a const registers an offense not qualifying a namespace const with Only set registers an offense when an unqualified namespace const registers an offense with an unqualified const registers no with a namespace const registers no offense not qualifying another const registers no offense qualifying a namespace const registers no offense when qualifying a const with Ignore set registers no offense when qualifying a const registers no offense when an unqualified namespace const registers an with a namespace const registers no offense with an unqualified const registers no offense qualifying a namespace const registers an offense not qualifying another const RuboCop::Cop::Layout::FirstArrayElementIndentation when EnforcedStyle is align_brackets accepts correctly indented first element accepts multi-assignments with brackets accepts several elements per line registers an offense and corrects incorrectly indented ] accepts a first element on the same line as the left bracket accepts single line array accepts an empty array accepts multi-assignments with no brackets when 'special_inside_parentheses' style is used registers an offense and corrects incorrect indentation when indentation width is overridden for this cop registers an offense and corrects indentation that does not match IndentationWidth accepts correctly indented first element when 'consistent' style is used registers an offense and corrects incorrect indentation registers an offense and corrects incorrectly indented 1st element when array is method argument and arguments are surrounded by parentheses and EnforcedStyle is special_inside_parentheses accepts special indentation for first argument registers an offense and corrects 'align_brackets' indentation accepts special indentation for second argument registers an offense and corrects 'consistent' indentation accepts normal indentation for array within array when using safe navigation operator registers an offense and corrects 'consistent' indentation and EnforcedStyle is consistent accepts normal indentation for second argument registers an offense and corrects incorrect indentation accepts normal indentation for first argument and argument are not surrounded by parentheses accepts single line array with brackets accepts a correctly indented multi-line array with brackets registers an offense and corrects incorrectly indented multi-line array with brackets accepts bracketless array when array is operand accepts correctly indented first element registers an offense and corrects incorrectly indented ] registers an offense and corrects incorrectly indented first element when indentation width is overridden for this cop accepts correctly indented first element registers an offense and corrects incorrectly indented 1st element when array is argument to setter accepts correctly indented first element registers an offense and corrects incorrectly indented first element when array is right hand side in assignment accepts single line array accepts multi-assignments with brackets accepts several elements per line accepts an empty array accepts correctly indented first element registers an offense and corrects incorrectly indented first element accepts a first element on the same line as the left bracket accepts multi-assignments with no brackets RuboCop::Cop::Style::IdenticalConditionalBranches when one of the case branches is empty does not register an offense with empty brace does not raise any error on if..else with identical bodies registers an offense on if..else with identical leading lines registers an offense on case with identical trailing lines registers an offense on case with identical leading lines registers an offense on case without else doesn't register an offense on case with identical bodies registers an offense on if..else with identical trailing lines registers an offense on if..elsif with no else doesn't register an offense on if..else with slightly different trailing lines doesn't register an offense on case with empty when doesn't register an offense RuboCop::Cop::Layout::MultilineHashKeyLineBreaks without line break after opening bracket registers an offense and corrects when key starts on same line as another registers an offense and corrects nested hashes when on same line does not add any offenses with line break after opening bracket registers an offense and corrects when key starts on same line as another when on all keys on one line different than brackets does not add any offenses when key starts on same line as another with rockets adds an offense when on different lines than brackets but keys on one does not add any offenses RuboCop::Cop::Style::WhileUntilModifier behaves like condition modifier cop for a multiline 'until' accepts it when condition has local variable assignment accepts it if single line would not fit on one line accepts an empty body corrects it when assignment is in body accepts it if body spans more than one line corrects it if result fits in one line when Layout/LineLength is disabled registers an offense even for a long modifier statement accepts multiline condition in modifier form registers an offense behaves like condition modifier cop for a multiline 'while' corrects it if result fits in one line accepts an empty body accepts it if single line would not fit on one line corrects it when assignment is in body accepts it if body spans more than one line accepts it when condition has local variable assignment when Layout/LineLength is disabled registers an offense even for a long modifier statement accepts multiline condition in modifier form registers an offense RuboCop::Cop::Style::Attr accepts attr when it has a receiver registers offense for attr within class_eval does not register offense for custom `attr` method registers an offense attr accepts attr when it does not take arguments registers offense for attr within module_eval auto-corrects attr with multiple names to attr_reader attr, false to attr_reader attr to attr_reader attr :name, true to attr_accessor :name RuboCop::Cop::Style::AutoResourceCleanup does not register an offense for File.open with block does not register an offense for File.open with immediate close does not register an offense for File.open with block-pass registers an offense for File.open without block RuboCop::Cop::Layout::CommentIndentation auto-corrects registers offenses and corrects before __END__ but not after around program structure keywords accepts correctly indented comments with a blank line following the comment accepts a correctly indented comment near various kinds of brackets is unaffected by closing bracket that does not begin a line accepts correctly indented comments on outer level accepts a correctly indented comment registers an offense and corrects an incorrectly indented (1) comment registers an offense and corrects an incorrectly indented (2) comment registers an offense and corrects a documentation comment registers an offense for each incorrectly indented comment accepts a comment that follows code RuboCop::Cop::Lint::UnusedMethodArgument when IgnoreNotImplementedMethods config parameter is set accepts an empty singleton method with a single unused parameter &raise NotImplementedError accepts an empty method with multiple unused parameters accepts a method with a single unused parameter & raises NotImplementedError accepts a method with a single unused parameter & raises ::NotImplementedError registers an offense for a non-empty method with multiple unused parameters accepts a method with a single unused parameter & fails with message registers an offense for a non-empty method with a single unused parameter accepts a method with a single unused parameter & fails without message inspection when a variable is unused does not care in a method calling `super` without arguments when a method argument is not used explicitly accepts since the arguments are guaranteed to be the same as superclass' ones and the user has no control on them when an argument with a default value is unused registers an offense and preserves the default value when an optional keyword argument is unused registers an offense but does not suggest underscore-prefix and AllowUnusedKeywordArguments set does not care when a method takes multiple arguments and an argument is unused registers an offense and adds underscore-prefix and one argument is assigned to another, whilst other's value is not used registers an offense and arguments are swap-assigned accepts and there is some whitespace around the unused argument registers an offense and preserves whitespace and all the arguments are unused registers offenses and suggests the use of `*` and auto-corrects to add underscore-prefix to all arguments in a method calling `super` with arguments when a method argument is unused registers an offense when a singleton method argument is unused registers an offense when an underscore-prefixed method argument is unused accepts when a splat argument is unused registers an offense and preserves the splat when a trailing block argument is unused registers an offense and removes the unused block arg in a method calling `binding` with arguments when a method argument is unused registers an offense when a block argument is unused does not care when a required keyword argument is unused registers an offense but does not suggest underscore-prefix when a method argument is used accepts in a method calling `binding` without arguments accepts all arguments inside another method definition registers offenses when IgnoreEmptyMethods config parameter is set accepts an empty singleton method with a single unused parameter accepts an empty method with multiple unused parameters accepts an empty method with a single unused parameter registers an offense for a non-empty method with a single unused parameter registers an offense for a non-empty method with multiple unused parameters RuboCop::Cop::Bundler::DuplicatedGem when investigating Gemfiles and the file is empty does not register any offenses and a gem is duplicated in default group registers an offense and no duplicate gems are present does not register any offenses and a duplicated gem is in a git/path/group/platforms block registers an offense when investigating Ruby files does not register any offenses RuboCop::Cop::Lint::RedundantSplatExpansion allows expansions of an array that is assigned to a variable in rescue allows an array using a constructor allows assigning to a splat variable accepts expanding a variable as a method parameter allows splat expansion inside of an array allows expanding a method call on an array literal allows assigning to an expanded range allows assigning a variable to a splat expansion of a variable allows assigning to a splat registers an offense and corrects an array literal being expanded in a rescue behaves like splat expansion method parameters registers an offense and converts to an array behaves like splat literal assignment registers an offense and converts to an array behaves like splat expansion method parameters registers an offense and converts to an array behaves like splat literal assignment registers an offense and converts to an array behaves like array splat expansion method parameters registers an offense and converts to a list of arguments behaves like splat literal assignment registers an offense and removes the splat from array behaves like array splat expansion method parameters registers an offense and converts to a list of arguments behaves like splat literal assignment registers an offense and removes the splat from array behaves like array splat expansion method parameters registers an offense and converts to a list of arguments behaves like splat literal assignment registers an offense and removes the splat from array assignment to splat expansion registers an offense and corrects an array using a constructor registers and corrects an array using top-level const expanding Array.new call on array literal when the array literal contains more than one element accepts when the array literal contains exactly one element registers an offense and corrects with ::Array.new when the array literal contains exactly one element registers an offense and corrects arrays being expanded with %i variants using splat expansion splat expansion of method parameters registers an offense and corrects an array literal %i registers an offense and corrects an array literal %I splat expansion inside of an array registers an offense and corrects %i to a list of symbols registers an offense and changes %I to a list of symbols behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments behaves like splat expansion method parameters registers an offense and converts to an array behaves like splat literal assignment registers an offense and converts to an array behaves like splat expansion method parameters registers an offense and converts to an array behaves like splat literal assignment registers an offense and converts to an array splat expansion inside of an array registers an offense and corrects expansion of %W to a list of words registers an offense and corrects expansion of %w to a list of words registers an offense and corrects the expansion of an array literalinside of an array literal behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments expanding an array literal in a when condition registers an offense and corrects %i to a list of symbols allows an array that is assigned to a variable registers an offense and corrects %I to a list of symbols registers an offense and corrects an array using %W registers an offense and corrects an array using [] registers an offense and corrects an array using %w allows an array using a constructor RuboCop::Cop::Layout::EndAlignment registers an offense for mismatched puts 1; class Test end registers an offense for mismatched if test end registers an offense for mismatched module Test end accepts matching puts 1; case ... end accepts matching module ... end can handle modifier if auto-corrects mismatched module Test end accepts matching puts 1; module ... end auto-corrects mismatched puts 1; while test end accepts matching puts 1; if ... end registers an offense for mismatched puts 1; class Test end can handle ternary if auto-corrects mismatched unless test end registers an offense for mismatched puts 1; case a when b end accepts matching until ... end accepts matching puts 1; class ... end accepts matching unless ... end accepts matching if ... end auto-corrects mismatched module Test end auto-corrects mismatched puts 1; until test end auto-corrects mismatched puts 1; case a when b end registers an offense for mismatched puts 1; unless test end auto-corrects mismatched until test end accepts matching while ... end auto-corrects mismatched puts 1; class Test end auto-corrects mismatched case a when b end registers an offense for mismatched unless test end accepts matching puts 1; until ... end accepts matching class ... end auto-corrects mismatched while test end accepts matching class ... end auto-corrects mismatched puts 1; if test end registers an offense for mismatched until test end auto-corrects mismatched puts 1; class Test end accepts matching puts 1; while ... end registers an offense for mismatched puts 1; until test end registers an offense for mismatched module Test end registers an offense for mismatched puts 1; while test end auto-corrects mismatched puts 1; unless test end registers an offense for mismatched puts 1; if test end registers an offense for mismatched case a when b end accepts matching case ... end accepts matching puts 1; unless ... end registers an offense for mismatched while test end auto-corrects mismatched if test end case as argument when EnforcedStyleAlignWith is start_of_line auto-corrects mismatched test case a when b end registers an offense for mismatched test case a when b end accepts matching test case a when b ... end when EnforcedStyleAlignWith is variable auto-corrects mismatched test case a when b end registers an offense for mismatched test case a when b end accepts matching test case ... end when EnforcedStyleAlignWith is keyword auto-corrects mismatched test case a when b end registers an offense for mismatched test case a when b end accepts matching test case ... end when end is preceded by something else than whitespace does not register an offense regarding assignment when EnforcedStyleAlignWith is keyword accepts matching var = while ... end accepts matching var = until ... end registers an offense for mismatched var = unless test end registers an offense for mismatched var = while test end accepts matching var[0] = case ... end accepts matching var = case ... end auto-corrects mismatched var = unless test end accepts matching var = unless ... end registers an offense for mismatched var << until test end auto-corrects mismatched var = until test end auto-corrects mismatched var = if test end accepts matching var = if ... end auto-corrects mismatched var << until test end auto-corrects mismatched var = while test end registers an offense for mismatched var = until test end registers an offense for mismatched var = if test end when EnforcedStyleAlignWith is variable accepts matching var << if ... end registers an offense for mismatched var = if test end registers an offense for mismatched @@var << if test end accepts matching var = if ... end accepts matching $var = if ... end auto-corrects mismatched var = unless test end auto-corrects mismatched var = if test end auto-corrects mismatched var << if test end accepts matching var = if ... end auto-corrects mismatched var << unless test end auto-corrects mismatched var = # comment while test end auto-corrects mismatched @var = if test end registers an offense for mismatched var = unless test end auto-corrects mismatched $var << if test end auto-corrects mismatched CNST = if test end auto-corrects mismatched var += if test end accepts matching CNST = if ... end registers an offense for mismatched var << if test end auto-corrects mismatched var = until test end.j registers an offense for mismatched var ||= if test end accepts matching a, b = if ... end auto-corrects mismatched h.k = if test end auto-corrects mismatched CNST << if test end registers an offense for mismatched var = while test end accepts matching var = case ... end auto-corrects mismatched var = if test end accepts matching var = while ... end auto-corrects mismatched @var << if test end registers an offense for mismatched a, b = if test end registers an offense for mismatched @var << if test end auto-corrects mismatched var = case a when b end registers an offense for mismatched h.k = if test end auto-corrects mismatched var = while test end accepts matching @@var = if ... end auto-corrects mismatched h[k] = if test end accepts matching h.k = if ... end registers an offense for mismatched var = unless test end registers an offense for mismatched $var << if test end registers an offense for mismatched var[x] = while test end auto-corrects mismatched var ||= if test end auto-corrects mismatched var = until test do_something end registers an offense for mismatched var = until test do_something end auto-corrects mismatched a, b = if test end registers an offense for mismatched var = if test end registers an offense for mismatched CNST = if test end accepts matching h[k] = if ... end registers an offense for mismatched var = until test end.j auto-corrects mismatched var = unless test end accepts matching var = until ... end auto-corrects mismatched $var = if test end accepts matching var ||= if ... end auto-corrects mismatched var << until test end registers an offense for mismatched h[k] = if test end registers an offense for mismatched var &&= if test end registers an offense for mismatched $var = if test end registers an offense for mismatched var = case a when b end auto-corrects mismatched var[x] = while test end auto-corrects mismatched h[k] << if test end registers an offense for mismatched @@var = if test end registers an offense for mismatched var << until test end registers an offense for mismatched var = # comment while test end registers an offense for mismatched var << unless test end accepts matching var = until ... end accepts matching var &&= if ... end auto-corrects mismatched @@var = if test end registers an offense for mismatched var += if test end accepts matching var = until ... end auto-corrects mismatched @@var << if test end accepts matching @var = if ... end registers an offense for mismatched @var = if test end accepts matching var += if ... end registers an offense for mismatched var = until test end accepts matching var = unless ... end auto-corrects mismatched var = until test end registers an offense for mismatched h[k] << if test end registers an offense for mismatched CNST << if test end registers an offense for mismatched var << case a when b end auto-corrects mismatched var << case a when b end auto-corrects mismatched var &&= if test end when EnforcedStyleAlignWith is start_of_line registers an offense for mismatched puts(if test end) auto-corrects mismatched unless test end auto-corrects mismatched while test end registers an offense for mismatched puts 1; module Test end auto-corrects mismatched var = until test end accepts matching var = until ... end registers an offense for mismatched var = case a when b end auto-corrects mismatched var << while test end accepts matching puts 1; until ... end accepts matching puts 1; class ... end registers an offense for mismatched puts 1; case a when b end auto-corrects mismatched puts(if test end) registers an offense for mismatched case a when b end registers an offense for mismatched var = if test end registers an offense for mismatched var << until test end auto-corrects mismatched var = unless test end auto-corrects mismatched module Test end registers an offense for mismatched puts 1; if test end accepts matching var = case ... end registers an offense for mismatched var << unless test end registers an offense for mismatched puts 1; unless test end auto-corrects mismatched var = while test end accepts matching var = unless ... end registers an offense for mismatched puts 1; until test end accepts matching puts 1; module ... end auto-corrects mismatched var << unless test end auto-corrects mismatched case a when b end auto-corrects mismatched class Test end accepts matching puts 1; unless ... end registers an offense for mismatched var = unless test end registers an offense for mismatched var << if test end accepts matching var = while ... end registers an offense for mismatched if test end accepts matching puts 1; while ... end registers an offense for mismatched var = while test end registers an offense for mismatched until test end registers an offense for mismatched var = until test end registers an offense for mismatched while test end registers an offense for mismatched puts 1; while test end registers an offense for mismatched module Test end registers an offense for mismatched class Test end accepts matching var << while ... end registers an offense for mismatched var = if test end auto-corrects mismatched puts 1; while test end auto-corrects mismatched if test end accepts matching var = if ... end auto-corrects mismatched puts 1; until test end auto-corrects mismatched puts 1; if test end registers an offense for mismatched unless test end registers an offense for mismatched puts 1; class Test end auto-corrects mismatched puts 1; case a when b end auto-corrects mismatched puts 1; module Test end auto-corrects mismatched puts 1; unless test end auto-corrects mismatched puts 1; class Test end auto-corrects mismatched var = if test end accepts matching puts 1; case ... end registers an offense for mismatched var << case a when b end accepts matching var = if ... end auto-corrects mismatched var << until test end auto-corrects mismatched var = if test end registers an offense for mismatched var << while test end auto-corrects mismatched until test end auto-corrects mismatched var << if test end auto-corrects mismatched var << case a when b end auto-corrects mismatched var = case a when b end accepts matching puts 1; if ... end when EnforcedStyleAlignWith is variable registers an offense for mismatched if test end accepts matching puts 1; if ... end accepts matching case ... end registers an offense for mismatched puts 1; if test end accepts matching if ... end auto-corrects mismatched if test end registers an offense for mismatched until test end auto-corrects mismatched puts 1; while test end registers an offense for mismatched module Test end accepts matching puts 1; module ... end auto-corrects mismatched until test end auto-corrects mismatched puts 1; case a when b end auto-corrects mismatched unless test end accepts matching class ... end auto-corrects mismatched class Test end auto-corrects mismatched puts 1; class Test end registers an offense for mismatched unless test end registers an offense for mismatched while test end registers an offense for mismatched puts 1; class Test end auto-corrects mismatched puts 1; if test end accepts matching puts 1; case ... end auto-corrects mismatched case a when b end registers an offense for mismatched class Test end registers an offense for mismatched puts 1; case a when b end registers an offense for mismatched puts 1; while test end registers an offense for mismatched puts 1; unless test end accepts matching puts 1; until ... end accepts matching module ... end auto-corrects mismatched puts 1; unless test end auto-corrects mismatched puts 1; until test end auto-corrects mismatched puts 1; module Test end accepts matching puts 1; class ... end accepts matching while ... end registers an offense for mismatched puts 1; until test end auto-corrects mismatched while test end accepts matching puts 1; while ... end registers an offense for mismatched case a when b end accepts matching puts 1; unless ... end accepts matching unless ... end registers an offense for mismatched puts 1; module Test end accepts matching until ... end auto-corrects mismatched module Test end correct + opposite registers an offense and corrects RuboCop::Cop::Style::ClassCheck when enforced style is is_a? registers an offense for kind_of? and corrects to is_a? when enforced style is kind_of? registers an offense for is_a? and corrects to kind_of? RuboCop::Cop::Metrics::BlockLength rejects a block with more than 5 lines reports the correct beginning and end lines does not count blank lines rejects brace blocks too accepts a block with less than 3 lines accepts empty blocks properly counts nested blocks does not count commented lines by default accepts a block with multiline receiver and less than 3 lines of body when ExcludedMethods is enabled when a method is ignored, but receiver is a module does not report an offense when receiver contains whitespaces ignores whitespaces behaves like ignoring an offense on an excluded method still rejects other methods with long blocks accepts the foo method with a long block behaves like ignoring an offense on an excluded method accepts the foo method with a long block still rejects other methods with long blocks when `CountAsOne` is not empty folds array into one line when CountComments is enabled also counts commented lines when defining a class does not register an offense when defining a module does not register an offense RuboCop::Cop::Style::SignalException when enforced style is `fail` registers an offense for raise in def body registers an offense for raise in rescue section accepts `raise` with explicit receiver registers an offense for `raise` with `Kernel` as explicit receiver registers an offense for raise in begin section when enforced style is `raise` accepts `fail` if a custom `fail` singleton method is defined accepts `fail` with explicit receiver accepts `fail` if a custom `fail` instance method is defined registers an offense for fail in rescue section registers an offense for fail in begin section registers an offense for `fail` with `Kernel` as explicit receiver registers an offense for fail in def body when enforced style is `semantic` registers one offense for each raise registers an offense for `raise` and `fail` with `Kernel` as explicit receiver registers an offense for fail in rescue section accepts raise in def rescue section registers only offense for one raise that should be fail is not confused by nested begin/rescue accepts `raise` and `fail` with explicit receiver registers an offense for raise not in a begin/rescue/end registers an offense for fail in second rescue registers an offense for fail in def rescue section accepts raise in def with multiple rescues registers an offense for raise in begin section registers an offense for `raise` and `fail` with `::Kernel` as explicit receiver accepts raise in rescue section registers an offense for raise in def body RuboCop::Cop::Style::GlobalVars does not register an offense for built-in variable $DEFAULT_INPUT does not register an offense for built-in variable $SAFE does not register an offense for built-in variable $FIELD_SEPARATOR does not register an offense for built-in variable $/ does not register an offense for built-in variable $-a does not register an offense for built-in variable $DEBUG does not register an offense for built-in variable $OFS does not register an offense for built-in variable $RS does not register an offense for built-in variable $OUTPUT_FIELD_SEPARATOR does not register an offense for built-in variable $-I does not register an offense for built-in variable $FS does not register an offense for built-in variable $$ does not register an offense for built-in variable $MATCH does not register an offense for built-in variable $-v does not register an offense for built-in variable $stdout does not register an offense for built-in variable $ORS does not register an offense for built-in variable $JRUBY_VERSION allows user permitted variables does not register an offense for built-in variable $@ does not register an offense for built-in variable $FILENAME does not register an offense for built-in variable $-F does not register an offense for built-in variable $LOAD_PATH does not register an offense for built-in variable $DEFAULT_OUTPUT does not register an offense for built-in variable $PREMATCH does not register an offense for built-in variable $0 does not register an offense for built-in variable $ERROR_INFO does not register an offense for built-in variable $* does not register an offense for built-in variable $` does not register an offense for built-in variable $= does not register an offense for built-in variable $-i registers an offense for $custom does not register an offense for built-in variable $ARGV does not register an offense for built-in variable $NR does not register an offense for built-in variable $PROCESS_ID does not register an offense for built-in variable $? does not register an offense for built-in variable $& does not register an offense for built-in variable $stdin does not register an offense for built-in variable $. does not register an offense for built-in variable $; does not register an offense for built-in variable $LOADED_FEATURES does not register an offense for built-in variable $ENV_JAVA does not register an offense for built-in variable $" does not register an offense for built-in variable $IGNORECASE does not register an offense for built-in variable $! does not register an offense for built-in variable $, does not register an offense for built-in variable $LAST_READ_LINE does not register an offense for built-in variable $-w does not register an offense for built-in variable $LAST_MATCH_INFO does not register an offense for built-in variable $ERROR_POSITION does not register an offense for built-in variable $+ does not register an offense for built-in variable $LAST_PAREN_MATCH does not register an offense for built-in variable $INPUT_LINE_NUMBER does not register an offense for built-in variable $-l does not register an offense for built-in variable $POSTMATCH does not register an offense for built-in variable $_ does not register an offense for built-in variable $CLASSPATH does not register an offense for built-in variable $INPUT_RECORD_SEPARATOR does not register an offense for built-in variable $-0 does not register an offense for built-in variable $-d does not register an offense for built-in variable $PID does not register an offense for built-in variable $~ does not register an offense for built-in variable $< does not register an offense for built-in variable $-p does not register an offense for built-in variable $: does not register an offense for backrefs like $1 does not register an offense for built-in variable $stderr does not register an offense for built-in variable $> does not register an offense for built-in variable $PROGRAM_NAME does not register an offense for built-in variable $\ does not register an offense for built-in variable $OUTPUT_RECORD_SEPARATOR does not register an offense for built-in variable $CHILD_STATUS does not register an offense for built-in variable $JRUBY_REVISION does not register an offense for built-in variable $' does not register an offense for built-in variable $VERBOSE RuboCop::Cop::Layout::IndentationConsistency with while/until registers an offense and corrects bad indentation in an until body registers an offense and corrects bad indentation in a while body accepts an empty while registers an offense and corrects bad indentation in begin/end/while with top-level code accepts an empty expression string interpolation with case accepts case/when/else laid out as a table accepts correctly indented case/when/else accepts indented when/else plus indented body registers an offense and corrects bad indentation in a case/when body registers an offense and corrects bad indentation in a case/else body accepts case/when/else with then beginning a line with for registers an offense and corrects bad indentation in a for body accepts an empty for with class with indented_internal_methods style configured accepts different indentation in different visibility sections with normal style configured accepts indented public, protected, and private accepts an empty class body registers an offense and corrects bad indentation in a class body registers an offense and corrects bad indentation in def but not for outdented public, protected, and private with def/defs registers an offense and corrects bad indentation in a defs body accepts an empty def body accepts an empty defs body registers an offense and corrects bad indentation in a def body with module accepts an empty module body registers an offense and corrects bad indentation in a module body registers an offense and corrects bad indentation of private methods even when there are no public methods registers an offense and corrects bad indentation of private methods with if statement registers an offense and corrects bad indentation in an if body accepts a one line if statement accepts an empty if registers an offense and corrects bad indentation in an else body accepts a correctly aligned if/elsif/else/end accepts an if/else in assignment with end aligned with variable accepts if/elsif/else/end with fullwidth characters registers an offense and corrects bad indentation in an elsif body accepts if/elsif/else/end laid out as a table accepts if/then/else/end laid out as another table accepts an if/else in assignment on next line with end aligned with if accepts an if in assignment with end aligned with variable accepts an if in assignment with end aligned with if accepts an if/else in assignment with end aligned with variable and chaining after the end accepts an if/else in assignment with end aligned with if accepts an if/else in assignment with end aligned with variable and chaining with a block after the end accepts an if/else branches with rescue clauses with unless registers an offense and corrects bad indentation in an unless body accepts an empty unless with block does not auto-correct an offense within another offense accepts a correctly indented block body registers an offense and corrects bad indentation in a {} body registers an offense and correct bad indentation in a do/end body accepts an empty block body RuboCop::Cop::Style::NegatedIf does not blow up for ternary ops does not blow up for empty if condition does not blow up for empty unless condition does not blow up on a negated ternary operator with “postfix” style registers an offense for postfix does not register an offense for prefix with “both” style registers an offense for if with exclamation point condition registers an offense for if with "not" condition autocorrects by replacing parenthesized if not with unless is not confused by negated elsif accepts an if where only part of the condition is negated accepts an if/else with negative condition accepts an if where the condition is doubly negated with “prefix” style registers an offense for prefix does not register an offense for postfix RuboCop::Cop::Layout::SpaceAfterColon registers an offense and corrects a keyword optional argument without a space accepts colons denoting required keyword argument accepts hash rockets accepts colon in ternary followed by space accepts colons in symbols accepts colons in strings accepts required keyword arguments registers an offense and corrects colon without space after it accepts if accepts hashes with a space after colons RuboCop::Cop::Layout::MultilineBlockLayout registers an offense and corrects line-break within arguments considers the extra space required to join the lines together registers an offense and corrects for missing newline in {} block with params registers an offense and corrects a line-break within arguments registers an offense and corrects for missing newline before opening parenthesis `(` for block body registers an offense and corrects for missing newline in do/end block with params does not register an offense for one-line {} blocks registers an offense and corrects line-break before arguments auto-corrects nested parens correctly does not register offenses when there is a newline for do/end block registers an offense and corrects a do/end block with a mult-line body registers offenses when there are not too many parameters to fit on one line does not register an offense for one-line do/end blocks registers an offense and corrects for missing newline in {} block w/o params does not register offenses when there is a newline for {} block autocorrects in more complex case with lambda and assignment, and aligns the next line two spaces out from the start of the block doesn't move end keyword in a way which causes infinite loop in combination with Style/BlockEndNewLine registers an offense and corrects a line break within destructured arguments does not register offenses when there are too many parameters to fit on one line registers offenses and corrects for lambdas registers offenses and corrrects for new lambda literal syntax does not auto-correct a trailing comma when only one argument is present registers an offense for missing newline in do/end block w/o params registers an offense and corrects line-break before arguments with empty block does not error out when the block is empty RuboCop::Formatter::QuietFormatter #report_summary when a file inspected and no offenses detected handles pluralization correctly when 2 offenses are corrected handles pluralization correctly when an offense is corrected prints about correction when no files inspected handles pluralization correctly when a offense detected handles pluralization correctly when 2 offenses detected handles pluralization correctly #report_file the file is outside of the current working directory prints as absolute path the file is under the current working directory prints as relative path when the offense is not corrected prints message as-is when the offense is automatically corrected prints [Corrected] along with message RuboCop::Options option -h/--help exits cleanly lists all builtin formatters shows help text -s/--stdin fails if more than one path is given succeeds with exactly one path fails if no paths are given --display-only-failed works if given with --format junit fails if given without --format junit --disable-uncorrectable accepts together with --auto-correct fails if given alone without --auto-correct/-a accepts together with --auto-correct-all --safe-auto-correct is a deprecated alias --cache fails if no argument is given fails if unrecognized argument is given accepts false as argument accepts true as argument --require requires the passed path --fail-level accepts the "fake" severities A/autocorrect accepts full severity names accepts severity initial letters --exclude-limit fails if given last without argument fails if given without --auto-gen-config fails if given first without argument fails if given alone without argument incompatible cli options rejects using -v with --show-cops rejects using -v with -V rejects using -V with --show-cops mentions all incompatible options when more than two are used --auto-gen-only-exclude fails if given without --auto-gen-config --auto-gen-config accepts other options --parallel combined with --auto-gen-config fails with an error message combined with --cache false fails with an error message combined with --auto-correct fails with an error message combined with --fail-fast fails with an error message options precedence .rubocop file has lower precedence then options from RUBOCOP_OPTS env variable has lower precedence then command line options RUBOCOP_OPTS environment variable has higher precedence then options from .rubocop file has lower precedence then command line options .rubocop directory is ignored and command line options are used RuboCop::Cop::Metrics::BlockNesting accepts `Max` levels of nesting accepts if/elsif nested modifier `while` registers an offense nested `for` registers an offense nested `case` registers an offense nested `rescue` registers an offense nested `while` registers an offense Multiple nested `ifs` at same level registers 2 offenses when CountBlocks is true nested multiline block registers an offense nested inline block registers an offense nested `until` registers an offense when CountBlocks is false accepts nested inline blocks accepts nested multiline blocks `Max + 2` levels of `if` nesting registers an offense nested modifier `until` registers an offense `Max + 1` levels of `if` nesting registers an offense RuboCop::Cop::Lint::CircularArgumentReference circular argument references in keyword arguments when there are multiple offensive keyword arguments registers an offense when there is one circular argument reference registers an offense when the keyword argument is not circular, and calls a method does not register an offense when the keyword argument is not circular, but calls a method of some other object with the same name does not register an offense when the keyword argument is not circular does not register an offense when the keyword argument is not circular, but calls a method of its own class with a self specification does not register an offense circular argument references in ordinal arguments when the method contains a circular argument reference registers an offense when the method does not contain a circular argument reference does not register an offense when the seemingly-circular default value is a method call does not register an offense RuboCop::Cop::Style::RedundantPercentQ accepts %q containing string interpolation accepts a heredoc string that contains %q accepts %Q at the beginning of a section of a double quoted string with interpolation accepts %q at the beginning of a double quoted string with interpolation accepts %q at the beginning of a section of a double quoted string with interpolation accepts %Q at the beginning of a double quoted string with interpolation with %Q strings registers an offense for static string with only double quotes accepts a string with double quotes and an escaped special character registers an offense for static string without quotes auto-corrects for strings that are concatenated with backslash accepts a string with double quotes and an escaped normal character accepts a dynamic %Q string with double quotes registers an offense for dynamic string without quotes accepts regular expressions starting with %Q accepts a string with single quotes and double quotes with %q strings accepts a string with single quotes and double quotes registers an offense for only double quotes accepts a string with escaped non-backslash characters accepts regular expressions starting with %q auto-corrects for strings that are concatenated with backslash registers an offense for only single quotes registers an offense for no quotes registers an offfense for a string containing escaped backslashes accepts a string with escaped backslash and non-backslash characters RuboCop::Cop::Style::ExplicitBlockArgument registers an offense and corrects when block yields several first its arguments correctly corrects when method already has an explicit block argument does not register an offense when `yield` arguments is not a prefix of block arguments registers an offense and corrects when `yield` inside block has no arguments registers an offense and corrects when block just yields its arguments correctly corrects when the method call has a trailing comma in its argument list does not register an offense when `yield` is not inside block registers an offense and corrects when method contains multiple `yield`s does not register an offense when `yield` is the sole block body RuboCop::Cop::Style::MethodDefParentheses require_no_parentheses behaves like no parentheses reports an offense for def with no args and parens accepts def with no args and no parens reports an offense for opposite + correct reports an offense for def with parameters with parens accepts a class def with parameters with parens reports an offense for class def with parameters with parens accepts a def with parameters but no parens auto-removes the parens for defs require_parentheses auto-adds required parens to argument lists on multiple lines accepts def with no args and no parens reports an offense for class def with parameters but no parens reports an offense for correct + opposite reports an offense for def with parameters but no parens auto-adds required parens for a defs require_no_parentheses_except_multiline when args are all on a single line behaves like no parentheses auto-removes the parens for defs accepts def with no args and no parens reports an offense for def with no args and parens reports an offense for class def with parameters with parens reports an offense for def with parameters with parens accepts a class def with parameters with parens accepts a def with parameters but no parens reports an offense for opposite + correct when args span multiple lines reports an offense for correct + opposite auto-adds required parens to argument lists on multiple lines RuboCop::Cop::Style::Not parenthesizes when `not` would change the meaning of a binary exp parenthesizes when `not` is applied to a ternary op auto-corrects "not" followed by parens with ! does not register an offense for ! registers an offense for not auto-corrects "not" with ! parenthesizes when `not` is applied to or parenthesizes when `not` is applied to and uses the reverse operator when `not` is applied to a comparison RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective registers an offense for disabled cop within source code registers an offense for enabled cop within source code RuboCop::Cop::Style::ParenthesesAroundCondition accepts parentheses if there is no space between the keyword and (. is not confused by parentheses in subexpression allows parens if the condition node is a modifier unless op does not blow up for empty unless condition allows parens if the condition node is a modifier while op is not confused by leading parentheses in subexpression registers an offense for parentheses around condition allows parens if the condition node is a modifier rescue op does not blow up when the condition is a ternary op allows parens if the condition node is a modifier if op allows parens if the condition node is a modifier until op does not blow up for empty if condition accepts parentheses around condition in a ternary parentheses in multiline conditions are allowed registers an offense for parentheses in single line condition accepts parentheses around multiline condition parentheses in multiline conditions are not allowed registers an offense for parentheses around multiline condition safe assignment is not allowed does not accept element assignment in condition surrounded with parentheses does not accept variable assignment in condition surrounded with parentheses safe assignment is allowed accepts element assignment in condition surrounded with parentheses accepts setter in condition surrounded with parentheses accepts variable assignment in condition surrounded with parentheses RuboCop::FileFinder #find_file_upwards returns nil when file is not found returns a file to be found upwards #find_last_file_upwards returns nil when file is not found returns the last file found upwards RuboCop::Cop::Lint::FloatOutOfRange does not register an offense for 0.0 does not register an offense for respectably sized floats does not register an offense for tiny little itty bitty floats on whopping big floats which tip the scales registers an offense on floats so close to zero that nobody can tell the difference registers an offense RuboCop::Cop::Style::HashEachMethods when node matches a keys#each or values#each when receiver is implicit does not register an offense for each_key does not register an offense for `keys.each` does not register an offense for `values.each` does not register an offense for each_value when receiver is a hash literal does not register an offense for {}#each_key registers offense, auto-corrects {}#values.each with {}#each_value does not register an offense for {}#each_value registers offense, auto-corrects {}#keys.each with {}#each_key when receiver is a send does not register an offense for Hash#each_value registers offense, auto-corrects foo#values.each to foo#each_value registers offense, auto-corrects foo#keys.each to foo#each_key does not register an offense for foo#each_key RuboCop::Cop::Layout::SpaceAroundKeyword behaves like accept after accepts `+` after keyword in `+begin end` behaves like accept after accepts `(` after keyword in `defined?(1)` behaves like accept after accepts `[` after keyword in `super[1]` behaves like missing after auto-corrects registers an offense for missing space after keyword in `break""` behaves like accept before accepts `!` before keyword in `!yield.method` behaves like missing after auto-corrects registers an offense for missing space after keyword in `1 until""` behaves like accept before accepts `!` before keyword in `!yield` behaves like missing after registers an offense for missing space after keyword in `a do|x| end` auto-corrects behaves like accept before accepts `=*` before keyword in `a=*begin end` behaves like accept after accepts `#` after keyword in `next#comment` behaves like accept after accepts `(` after keyword in `break(1)` behaves like accept after accepts `::` after keyword in `super::ModuleName` behaves like missing before registers an offense for missing space before keyword in `begin "a"end` auto-corrects behaves like missing before registers an offense for missing space before keyword in `a "b"do end` auto-corrects behaves like accept after accepts `(` after keyword in `next(1)` behaves like missing before auto-corrects registers an offense for missing space before keyword in `""rescue a` behaves like missing after registers an offense for missing space after keyword in `super{}` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `while 1do end` behaves like accept after accepts `.` after keyword in `yield.method` behaves like missing before registers an offense for missing space before keyword in `for x in [] do "x"end` auto-corrects behaves like accept around accepts `,` around keyword in `a 1,next,1` behaves like missing before registers an offense for missing space before keyword in `case a; when b; ""else end` auto-corrects behaves like accept after accepts `\n` after keyword in `test do end` behaves like accept before accepts `<` before keyword in `a` before keyword in `a>begin end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `yield""` behaves like accept before accepts `!` before keyword in `!super.method` behaves like missing before registers an offense for missing space before keyword in `if a; ""else end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `1while ""` behaves like accept after accepts `(` after keyword in `not(1)` behaves like missing before registers an offense for missing space before keyword in `begin rescue; ""else end` auto-corrects behaves like missing after registers an offense for missing space after keyword in `1 while""` auto-corrects behaves like missing after registers an offense for missing space after keyword in `begin ensure"" end` auto-corrects behaves like missing after registers an offense for missing space after keyword in `if a; elsif""; end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `case a; when b; else"" end` behaves like missing before registers an offense for missing space before keyword in `if a; "b"end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `1or 2` behaves like missing after registers an offense for missing space after keyword in `1 or(2)` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `begin+1 end` behaves like accept before accepts `+` before keyword in `a+begin end` behaves like missing after registers an offense for missing space after keyword in `begin rescue; else"" end` auto-corrects behaves like missing before registers an offense for missing space before keyword in `for x in []do end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `return""` behaves like accept after accepts `{` after keyword in `loop{}` behaves like missing before registers an offense for missing space before keyword in `a do "a"end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `if a; ""elsif b; end` behaves like accept before accepts `=` before keyword in `a=begin end` behaves like accept before accepts `/` before keyword in `a/begin end` behaves like missing after registers an offense for missing space after keyword in `defined?1` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `if""; end` behaves like accept around accepts `{}` around keyword in `loop {next}` behaves like accept before accepts `-` before keyword in `a-begin end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `BEGIN{}` behaves like missing before auto-corrects registers an offense for missing space before keyword in `until 1do end` behaves like missing before registers an offense for missing space before keyword in `if a; ""elsif b; end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `END{}` behaves like accept before accepts `+` before keyword in `a+begin; end.method` behaves like accept around accepts `{}` around keyword in `{a: begin end}` behaves like missing after auto-corrects registers an offense for missing space after keyword in `if a; elsif""; end` behaves like accept after accepts `rescue` after keyword in `begin; rescue(Error); end` behaves like accept after accepts `.` after keyword in `begin end.inspect` behaves like missing after registers an offense for missing space after keyword in `unless""; end` auto-corrects behaves like accept after accepts `(` after keyword in `return(1)` behaves like missing after registers an offense for missing space after keyword in `if a then"" end` auto-corrects behaves like accept before accepts `|` before keyword in `loop { |x|break }` behaves like missing before auto-corrects registers an offense for missing space before keyword in `if ""then a end` behaves like accept before accepts `==` before keyword in `a==begin end` behaves like missing after registers an offense for missing space after keyword in `super""` auto-corrects behaves like missing after registers an offense for missing space after keyword in `a rescue""` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `until 1 do"x" end` behaves like missing before registers an offense for missing space before keyword in `1and 2` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `until 1 do "x"end` &. behaves like accept after accepts `&.` after keyword in `super&.foo` behaves like accept after accepts `&.` after keyword in `yield&.foo` behaves like accept before accepts `**` before keyword in `a**begin end` behaves like accept before accepts `||` before keyword in `a||begin end` behaves like accept around accepts `()` around keyword in `(next)` behaves like missing after registers an offense for missing space after keyword in `case a when""; end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `begin"" end` behaves like accept around accepts `{}` around keyword in `"#{begin end}"` behaves like accept around accepts `[]` around keyword in `a[begin end]` behaves like missing before registers an offense for missing space before keyword in `while 1 do "x"end` auto-corrects behaves like accept after accepts `(` after keyword in `yield(1)` behaves like accept around accepts `;` around keyword in `test do;end` behaves like accept around accepts `[]` around keyword in `[begin end]` behaves like accept before accepts `&&` before keyword in `a&&begin end` behaves like accept after accepts `[` after keyword in `yield[1]` behaves like missing after registers an offense for missing space after keyword in `next""` auto-corrects behaves like missing before registers an offense for missing space before keyword in `begin ""ensure end` auto-corrects behaves like accept before accepts `*` before keyword in `a*begin end` behaves like missing before auto-corrects registers an offense for missing space before keyword in `case ""when a; end` behaves like accept after accepts `(` after keyword in `super(1)` behaves like accept after accepts `\` after keyword in `test do\ end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `if a; else"" end` behaves like missing after registers an offense for missing space after keyword in `1 and(2)` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `for x in [] do"x" end` behaves like missing before registers an offense for missing space before keyword in `1until ""` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `case"" when 1; end` RuboCop::Cop::Style::RedundantReturn reports an offense for defs with only a return accepts return in a non-final position does not blow up on empty method body auto-corrects by removing redundant returns does not blow up on empty if body reports an offense for defs ending with return reports an offense for def ending with return reports an offense for def with only a return when multi-value returns are not allowed auto-corrects removes return when using an explicit hash reports an offense for def ending with return reports an offense for defs ending with return reports an offense for defs with only a return reports an offense for def with only a return auto-corrects by making an implicit hash explicit when return is inside a when-branch registers an offense and auto-corrects when rescue and return blocks present does register an offense and auto-corrects when inside function or rescue block when return has no arguments behaves like common behavior registers an offense for return() and autocorrects replacing return() with nil behaves like common behavior registers an offense for return and autocorrects replacing return with nil when multi-value returns are allowed accepts def ending with return accepts def with only a return accepts defs with only a return accepts defs ending with return when case nodes are empty accepts empty when nodes when return is inside begin-end body registers an offense and auto-corrects when return is inside an if-branch registers an offense and auto-corrects RuboCop::Cop::Layout::AccessModifierIndentation when EnforcedStyle is set to outdent accepts private def indented to method depth in module defined with Module.new accepts protected indented to the containing class indent level accepts private with argument indented to method depth in a module accepts module fn def indented to method depth in a module registers an offense and corrects private indented to method depth in singleton class accepts private with argument indented to method depth in singleton class registers an offense and corrects private indented to method depth in a module accepts private with argument indented to method depth in class defined with Class.new registers an offense and corrects private indented to method depth in module defined with Module.new accepts module fn with argument indented to method depth in a module accepts private indented to the containing class indent level registers an offense and corrects module_function indented to method depth in a module registers an offense and corrects private indented to method depth in class defined with Class.new accepts private with argument indented to method depth in a class accepts private def indented to method depth in a module accepts private def indented to method depth in singleton class registers an offense and corrects misaligned access modifiers in nested classes accepts private def indented to method depth in class defined with Class.new accepts private def indented to method depth in a class registers offense and corrects private indented to method depth in a class accepts private with argument indented to method depth in module defined with Module.new when EnforcedStyle is set to indent registers an offense and corrects misaligned module_function in module accepts properly indented private registers an offense and corrects misaligned private in a singleton class registers an offense and corrects access modifiers in arbitrary blocks (PENDING: Failing in Debian - needs investigation) registers an offense and corrects misaligned private registers an offense and corrects misaligned protected accepts indented access modifiers with arguments in nested classes registers an offense and corrects opposite + correct alignment registers an offense and corrects misaligned private in class defined with Class.new accepts an empty class accepts properly indented protected accepts properly indented private in module defined with Module.new registers an offense and corrects misaligned private in module registers an offense and corrects correct + opposite alignment accepts methods with a body registers an offense and corrects misaligned private in module defined with Module.new registers an offense and corrects misaligned access modifiers in nested classes when indentation width is overridden for this cop only accepts properly indented private when 4 spaces per indent level are used accepts properly indented private RuboCop::Cop::Severity has a few required attributes is frozen overrides #to_s redefines == to compare severities Comparable warning is expected to be < error refactor is expected to be < convention error is expected to be < fatal convention is expected to be < warning constructs from code W is expected to eq # E is expected to eq # F is expected to eq # C is expected to eq # R is expected to eq # #level warning is expected to eq 3 convention is expected to eq 2 fatal is expected to eq 5 refactor is expected to eq 1 error is expected to eq 4 #code warning is expected to eq "W" convention is expected to eq "C" refactor is expected to eq "R" error is expected to eq "E" fatal is expected to eq "F" RuboCop::MagicComment returns nil for encoding when comment is # frozen_string_literal: true returns true for frozen_string_literal when comment is # frozen_string_literal: true returns nil for encoding when comment is # frozen_string_literal: invalid returns nil for frozen_string_literal when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # frozen_string_literal: true encoding: ascii-8bit returns nil for frozen_string_literal when comment is # eNcOdInG: utf-8 returns "utf-8" for encoding when comment is # coding: utf-8 vim: filetype=ruby, fileencoding=ascii-8bit returns "ascii-8bit" for encoding when comment is # vim: filetype=python, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # vim:fileencoding=utf-8 returns nil for encoding when comment is # returns nil for encoding when comment is # vim:fileencoding=utf-8 returns "utf-8" for encoding when comment is # coding: utf-8 returns "utf-8" for encoding when comment is # encoding: utf-8 returns "ascii-8bit" for encoding when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns nil for encoding when comment is # -*- frozen-string-literal: true -*- returns nil for frozen_string_literal when comment is # coding: utf-8 returns nil for encoding when comment is # incoding: utf-8 returns "invalid" for frozen_string_literal when comment is # frozen_string_literal: invalid returns nil for frozen_string_literal when comment is # vim: filetype=ruby,fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # returns "ascii-8bit" for encoding when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # vim: filetype=python, fileencoding=ascii-8bit returns nil for encoding when comment is # frozen_string_literal: false returns "ascii-8bit" for encoding when comment is # -*- encoding : ascii-8bit -*- returns "ascii-8bit" for encoding when comment is # frozen_string_literal: true encoding: ascii-8bit returns true for frozen_string_literal when comment is # frozen_string_literal:true returns "utf-8" for encoding when comment is # eNcOdInG: utf-8 returns "ascii-8bit" for encoding when comment is # encoding: ascii-8bit frozen_string_literal: true returns true for frozen_string_literal when comment is # frozen-string-literal: true returns nil for encoding when comment is # frozen-string-literal: true returns nil for encoding when comment is # vim: filetype=ruby,fileencoding=ascii-8bit returns true for frozen_string_literal when comment is # -*- coding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is # coding: utf-8 vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns true for frozen_string_literal when comment is # -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns true for frozen_string_literal when comment is # coding: utf-8 -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for encoding when comment is # FROZEN-STRING-LITERAL: true returns nil for frozen_string_literal when comment is # coding: utf-8 returns "utf-8" for encoding when comment is # coding: utf-8 returns true for frozen_string_literal when comment is # FROZEN-STRING-LITERAL: true returns nil for encoding when comment is # fRoZeN-sTrInG_lItErAl: true returns "ascii-8bit" for encoding when comment is # -*- coding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is # encoding: stateless-iso-2022-jp-kddi returns false for frozen_string_literal when comment is # frozen_string_literal: false returns nil for encoding when comment is CSV.generate(encoding: Encoding::UTF_8) do |csv| returns nil for encoding when comment is # frozen_string_literal:true returns nil for frozen_string_literal when comment is #vim: filetype=ruby, fileencoding=ascii-8bit returns true for frozen_string_literal when comment is # fRoZeN-sTrInG_lItErAl: true returns "ascii-8bit" for encoding when comment is # -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is # ENCODING: utf-8 returns "ascii-8bit" for encoding when comment is #vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # incoding: utf-8 returns nil for frozen_string_literal when comment is # encoding: utf-8 returns "ascii-8bit" for encoding when comment is # coding: utf-8 -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is CSV.generate(encoding: Encoding::UTF_8) do |csv| returns true for frozen_string_literal when comment is # -*- frozen-string-literal: true -*- returns "utf-8" for encoding when comment is # ENCODING: utf-8 returns nil for encoding when comment is # frozen_string_literal: true returns nil for frozen_string_literal when comment is # -*- encoding : ascii-8bit -*- returns true for frozen_string_literal when comment is # frozen_string_literal: true returns "stateless-iso-2022-jp-kddi" for encoding when comment is # encoding: stateless-iso-2022-jp-kddi returns nil for frozen_string_literal when comment is # encoding: ascii-8bit frozen_string_literal: true RuboCop::Cop::Lint::Debugger reports an offense for a pry binding call does not report an offense for a save_and_open_page method does not report an offense for a save_screenshot in comments reports an offense for a debugger with ::Kernel call reports an offense for a binding.pry with Kernel call reports an offense for a byebug call reports an offense for a web console binding call reports an offense for a pry_remote binding call reports an offense for a pry_remote binding with an argument call reports an offense for a remote_byebug call does not report an offense for a console method reports an offense for a remote_pry binding with an argument call reports an offense for a debugger call reports an offense for a byebug with an argument call does not report an offense for a byebug in comments does not report an offense for a save_and_open_page in comments does not report an offense for a debugger method does not report an offense for a non-pry binding reports an offense for a pry binding with an argument call does not report an offense for a irb method does not report an offense for a remote_pry method does not report an offense for a byebug method does not report an offense for a pry_remote method does not report an offense for a remote_pry in comments does not report an offense for a save_screenshot method does not report an offense for a pry_remote in comments does not report an offense for save_and_open_page with Kernel does not report an offense for a console in comments does not report an offense for a irb in comments does not report an offense for a remote_byebug in comments reports an offense for a Pry.rescue call does not report an offense for a pry method reports an offense for a binding.irb with Kernel call does not report an offense for a remote_byebug method reports an offense for a debugger with an argument call does not report an offense for a debugger in comments reports an offense for a irb binding call reports an offense for a debugger with Kernel call reports an offense for a remote_pry binding call does not report an offense for a save_and_open_screenshot method does not report an offense for a save_and_open_screenshot in comments does not report an offense for a pry in comments with capybara debug method call reports an offense for save_screenshot reports an offense for save_and_open_screenshot reports an offense for save_and_open_page with an argument reports an offense for save_and_open_screenshot reports an offense for save_screenshot reports an offense for save_and_open_page RuboCop::Cop::Layout::SpaceInLambdaLiteral when configured to enforce no space does not register an offense for no space between -> and ( registers an offense and corrects a space in the inner nested lambda does not register an offense for multi-line lambdas does not register an offense for a space between -> and { registers an offense and corrects spaces between -> and ( registers an offense and corrects a space in the outer nested lambda registers an offense and corrects a space between -> and ( register offenses and correct spaces in both lambdas when nested when configured to enforce spaces registers an offense and corrects no space in the outer nested lambda does not register an offense for multi-line lambdas registers an offense and corrects no space between -> and ( does not register an offense for a space between -> and ( does not register an offense for no space between -> and { registers an offense and corrects no space in the inner nested lambda registers an offense and corrects no space in both lambdas when nested RuboCop::Cop::Naming::MethodName when configured for snake_case registers an offense for capitalized camel case registers an offense for camel case in singleton method name registers an offense for opposite + correct registers an offense for singleton upper case method without corresponding class registers an offense for capitalized camel case name in attr. registers an offense for camel case method names in attr. accepts snake case in names accepts class emitter method in a class accepts snake case in attr. accepts class emitter method in a class, even when it is defined inside another method registers an offense for singleton camelCase method within class registers an offense for mixed snake case and camel case registers an offense for camel case in instance method name registers an offense for mixed snake case and camel case in attr. accepts class emitter method in a module accepts class emitter method in a module, even when it is defined inside another method registers an offense for camel case methods names in attr. registers an offense for mixed snake case and camel case in attr. accepts one line methods accepts operator definitions accepts unary operator definitions when specifying `IgnoredPatterns` does not register an offense for snake case method name in attr. does not register an offense for camel case method name matching `IgnoredPatterns` does not register an offense for snake case method name matching `IgnoredPatterns` does not register an offense for camel case method name in attr. when configured for camelCase registers an offense for snake case name in attr. accepts camel case in instance method name accepts unary operator definitions registers an offense for mixed snake case and camel case in attr. accepts operator definitions registers an offense for mixed snake case and camel case registers an offense for singleton snake_case method within class accepts class emitter method in a module registers an offense for snake case in names registers an offense for camel case methods names in attr. registers an offense for capitalized camel case name in attr. registers an offense for correct + opposite accepts one line methods registers an offense for capitalized camel case accepts class emitter method in a class accepts class emitter method in a module, even when it is defined inside another method registers an offense for mixed snake case and camel case in attr. accepts camel case in singleton method name registers an offense for singleton upper case method without corresponding class accepts class emitter method in a class, even when it is defined inside another method accepts camel case names in attr. when specifying `IgnoredPatterns` does not register an offense for camel case method name matching `IgnoredPatterns` does not register an offense for camel case method name in attr. does not register an offense for snake case method name in attr. does not register an offense for snake case method name matching `IgnoredPatterns` RuboCop::Cop::Style::IfInsideElse ignores ternary inside if..else ignores if inside unless catches an if..else nested inside an else isn't offended if there is a statement following the if node catches an if node nested inside an else isn't offended if there is a statement preceding the if node ignores nested ternary expressions ignores unless inside else isn't offended by if..elsif..else when AllowIfModifier is false catches a modifier if nested inside an else when AllowIfModifier is true accepts a modifier if nested inside an else RuboCop::Cop::Lint::FloatComparison registers an offense when comparing with arightmetic operator on floats does not register an offense when comparing with float method that can return numeric and returns integer registers an offense when comparing with float does not register an offense when comparing with float using epsilon registers an offense when comparing with float returning method registers an offense when comparing with float method that can return numeric and returns float registers an offense when comparing with method on float receiver RuboCop::Cop::Style::Lambda with enforced `literal` style with a single line lambda method call with arguments registers an offense without arguments registers an offense with a multiline lambda method call without arguments registers an offense with arguments registers an offense with default `line_count_dependent` style with a single line lambda literal does not register an offense when calling a lambda method without a block does not register an offense with a multiline braces lambda literal as a keyword argument registers an offense with a multiline lambda literal with arguments registers an offense without arguments registers an offense >= Ruby 2.7 when using numbered parameter with a multiline lambda method call does not register an offense with a single line lambda method call registers an offense with a single line lambda literal does not register an offense with a multiline lambda literal as an argument registers an offense with a multiline do-end lambda literal as a keyword argument registers an offense with a multiline lambda method call does not register an offense with a single line lambda method call with arguments registers an offense without arguments registers an offense unusual lack of spacing without spacing before arguments registers an offense with a multiline lambda literal with no parentheses and bad spacing registers an offense with no parentheses and many args registers an offense with no arguments and no spacing registers an offense without parentheses registers an offense with empty arguments registers an offense with no arguments and bad spacing registers an offense without any spacing registers an offense without spacing after arguments registers an offense with a multiline do-end lambda as a parenthesized kwarg registers an offense with enforced `lambda` style with a multiline lambda literal with arguments registers an offense without arguments registers an offense with a single line lambda literal without argument parens and spaces registers an offense without arguments registers an offense with arguments registers an offense when using safe navigation operator does not break RuboCop::RakeTask defining tasks creates a named task and a named auto_correct task creates a rubocop task and a rubocop auto_correct task running tasks will not error when result is not 0 and fail_on_error is false exits when result is not 0 and fail_on_error is true runs with default options allows nested arrays inside formatters, options, and requires uses the default formatter from .rubocop.yml if no formatter option is given runs with specified options if a block is given auto_correct runs with with the options that were passed to its parent task runs with --auto-correct-all RuboCop::Cop::Style::TrailingBodyOnMethodDefinition accepts a method with multiple lines of body auto-correction removes semicolon from method definition but not body registers an offense when body trails after method definition does not register offense with trailing body on method end accepts a method with one line of body auto-corrects body with method definition with args not in parens registers when body starts on def line & continues many more lines registers when body starts on def line & continues one more line auto-corrects with comment after body when method is not on first line of processed_source auto-corrects offense RuboCop::Cop::Lint::NextWithoutAccumulator behaves like reduce/inject given a reduce block registers an offense for a bare next accepts next with a value accepts next within a nested block behaves like reduce/inject given a inject block registers an offense for a bare next accepts next with a value accepts next within a nested block given an unrelated block accepts next with a value accepts a bare next RuboCop::Formatter::AutoGenConfigFormatter #report_file_as_mark when different severity offenses are detected prints highest level mark when a refactor convention offense is detected prints "C" when no offenses are detected prints "." when a refactor severity offense is detected prints "R" #finished calls #report_summary when no offenses are detected does not report offenses when any offenses are detected does not report offenses outputs report summary RuboCop::Cop::Style::TrailingMethodEndStatement register offense with trailing end on 3 line method auto-corrects all trailing ends for larger example register offense with trailing end on 2 line method does not register on single line method register offense with trailing end on method with block register offense with trailing end inside class does not register on single line no op register offense with trailing end on method with comment RuboCop::Cop::Lint::HeredocMethodCallPosition correct cases ignores if no call accepts chained correct case accepts simple correct case incorrect cases chained case no parens detects chained case with multiple line args detects chained case without args detects simple incorrect case detects chained case with parens detects simple incorrect case with paren detects with trailing comma in method call detects RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters accepts other percent literals accepts execute-string literals for i type and ["[", "]"] delimiters accepts multi-line literals within a method accepts multi-line literals accepts spaces between entries registers an offense for literals with escaped and other spaces registers an offense for spaces before final delimiter accepts newlines and additional following alignment spaces accepts literals with escaped spaces accepts literals without additional spaces registers an offense for spaces after first delimiter registers an offense for unnecessary spaces for w type and ["{", "}"] delimiters accepts newlines and additional following alignment spaces accepts multi-line literals registers an offense for spaces after first delimiter registers an offense for spaces before final delimiter accepts literals with escaped spaces registers an offense for literals with escaped and other spaces accepts multi-line literals within a method accepts spaces between entries registers an offense for unnecessary spaces accepts literals without additional spaces for I type and ["{", "}"] delimiters accepts newlines and additional following alignment spaces registers an offense for literals with escaped and other spaces accepts spaces between entries registers an offense for spaces before final delimiter accepts literals without additional spaces registers an offense for unnecessary spaces accepts multi-line literals registers an offense for spaces after first delimiter accepts multi-line literals within a method accepts literals with escaped spaces for i type and ["(", ")"] delimiters registers an offense for spaces before final delimiter accepts literals without additional spaces registers an offense for literals with escaped and other spaces accepts spaces between entries accepts literals with escaped spaces registers an offense for unnecessary spaces accepts multi-line literals registers an offense for spaces after first delimiter accepts multi-line literals within a method accepts newlines and additional following alignment spaces for x type and ["[", "]"] delimiters accepts literals with escaped spaces registers an offense for literals with escaped and other spaces registers an offense for spaces after first delimiter accepts spaces between entries registers an offense for spaces before final delimiter registers an offense for unnecessary spaces accepts multi-line literals accepts literals without additional spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces for I type and ["[", "]"] delimiters accepts literals with escaped spaces accepts spaces between entries registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces registers an offense for literals with escaped and other spaces registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter accepts multi-line literals within a method accepts literals without additional spaces accepts multi-line literals for I type and ["!", "!"] delimiters registers an offense for literals with escaped and other spaces accepts multi-line literals within a method accepts spaces between entries registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces registers an offense for spaces after first delimiter accepts multi-line literals registers an offense for spaces before final delimiter accepts literals without additional spaces accepts literals with escaped spaces for w type and ["[", "]"] delimiters accepts literals without additional spaces registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts literals with escaped spaces accepts multi-line literals within a method accepts multi-line literals registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter accepts spaces between entries for i type and ["{", "}"] delimiters accepts spaces between entries registers an offense for spaces before final delimiter accepts newlines and additional following alignment spaces accepts multi-line literals registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts literals with escaped spaces accepts literals without additional spaces registers an offense for unnecessary spaces accepts multi-line literals within a method for W type and ["!", "!"] delimiters registers an offense for spaces before final delimiter registers an offense for unnecessary spaces registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts multi-line literals within a method accepts literals without additional spaces accepts literals with escaped spaces accepts multi-line literals accepts spaces between entries accepts newlines and additional following alignment spaces for w type and ["!", "!"] delimiters accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter accepts literals without additional spaces accepts multi-line literals accepts literals with escaped spaces registers an offense for literals with escaped and other spaces registers an offense for spaces after first delimiter accepts spaces between entries registers an offense for unnecessary spaces accepts multi-line literals within a method for W type and ["{", "}"] delimiters registers an offense for spaces before final delimiter accepts literals with escaped spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces accepts spaces between entries accepts multi-line literals accepts literals without additional spaces registers an offense for literals with escaped and other spaces registers an offense for spaces after first delimiter registers an offense for unnecessary spaces for W type and ["[", "]"] delimiters accepts literals with escaped spaces registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter accepts multi-line literals within a method accepts literals without additional spaces accepts spaces between entries accepts multi-line literals accepts newlines and additional following alignment spaces registers an offense for unnecessary spaces registers an offense for literals with escaped and other spaces for W type and ["(", ")"] delimiters accepts spaces between entries registers an offense for literals with escaped and other spaces accepts multi-line literals within a method registers an offense for spaces after first delimiter registers an offense for unnecessary spaces accepts literals with escaped spaces accepts multi-line literals accepts literals without additional spaces accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter for x type and ["!", "!"] delimiters accepts multi-line literals within a method registers an offense for spaces after first delimiter accepts literals with escaped spaces registers an offense for spaces before final delimiter registers an offense for unnecessary spaces registers an offense for literals with escaped and other spaces accepts spaces between entries accepts multi-line literals accepts newlines and additional following alignment spaces accepts literals without additional spaces for I type and ["(", ")"] delimiters accepts literals without additional spaces registers an offense for spaces before final delimiter accepts newlines and additional following alignment spaces registers an offense for unnecessary spaces accepts literals with escaped spaces registers an offense for spaces after first delimiter accepts spaces between entries registers an offense for literals with escaped and other spaces accepts multi-line literals accepts multi-line literals within a method for x type and ["{", "}"] delimiters registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter registers an offense for unnecessary spaces accepts literals without additional spaces accepts multi-line literals within a method registers an offense for literals with escaped and other spaces accepts multi-line literals accepts literals with escaped spaces accepts spaces between entries accepts newlines and additional following alignment spaces for i type and ["!", "!"] delimiters accepts multi-line literals within a method accepts literals without additional spaces accepts multi-line literals registers an offense for unnecessary spaces registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts literals with escaped spaces accepts spaces between entries accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter for w type and ["(", ")"] delimiters accepts multi-line literals accepts multi-line literals within a method accepts newlines and additional following alignment spaces accepts literals without additional spaces registers an offense for spaces after first delimiter accepts literals with escaped spaces accepts spaces between entries registers an offense for spaces before final delimiter registers an offense for unnecessary spaces registers an offense for literals with escaped and other spaces for x type and ["(", ")"] delimiters accepts literals with escaped spaces accepts literals without additional spaces accepts newlines and additional following alignment spaces registers an offense for spaces after first delimiter accepts multi-line literals registers an offense for unnecessary spaces accepts spaces between entries registers an offense for spaces before final delimiter registers an offense for literals with escaped and other spaces accepts multi-line literals within a method RuboCop::Cop::Style::RedundantParentheses registers an offense for parens around a negative exponent registers an offense for parens around a literal hash value and following newline accepts parentheses around a constant passed to when registers an offense for parens around a literal hash value accepts parentheses around an irange accepts parentheses when enclosed in parentheses at `while-post` accepts parentheses when they touch the preceding keyword accepts parentheses around operator keywords registers an offense for parens around a variable after semicolon registers an offense for parens around a literal in array registers an offense for parens around an integer exponentiation base registers an offense for parens around a literal in array and following newline accepts parentheses around an erange accepts parentheses around a method call with unparenthesized arguments registers an offense for parens around method body registers an offense for parens around a positive exponent accepts parentheses inside an irange registers an offense when there is space around the parentheses accepts parentheses around the error passed to rescue registers an offense for parens around last expressions in block body registers an offense for parens around a block body accepts parentheses inside an erange registers an offense for parens around constant ternary condition accepts parentheses in yield call with hash accepts parentheses when enclosed in parentheses at `until-post` accepts parentheses when they touch the following keyword registers an offense for parens around last expressions in method body accepts parentheses in super call with hash registers an offense for parens around a float exponentiation base behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around an unary operation behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a literal when a hash literal is the second argument in a method call registers an offense behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around an unary operation behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a constant behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around an unary operation behaves like keyword with arguments behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like keyword with arguments behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like keyword with return value behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a literal behaves like keyword with return value behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around an unary operation behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized when a non-parenthesized call has an arg and a block accepts parens around the arg behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a variable behaves like redundant registers an offense for parentheses around a keyword when the first argument in a method call begins with a hash literal registers an offense if the argument list is parenthesized accepts parentheses if the argument list is not parenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a keyword behaves like keyword with return value behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a variable behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a variable behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized RuboCop::Cop::Style::ColonMethodDefinition accepts a class method defined using . using the class name registers an offense for a class method defined using :: using self registers an offense for a class method defined using :: RuboCop::CLI --auto-gen-config does not include a timestamp when --no-auto-gen-timestamp is used does not include offense counts when --no-offense-counts is used can generate Exclude properties with a given limit can generate a todo list can be called when there are no files to inspection generates a todo list that removes the reports honors rubocop:disable comments overwrites an existing todo file generates Exclude instead of Max when --auto-gen-only-exclude is used includes --auto-gen-only-exclude in the command comment when given does not generate configuration for the Syntax cop when --config is used can generate a todo list when working in a subdirectory can generate a todo list when .rubocop.yml inherits only from .rubocop_todo.yml in an array bases other cops' configuration on the code base's current maximum line length when .rubocop.yml does not exist bases other cops' configuration on the code base's current maximum line length when .rubocop.yml is empty bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits from another file and .rubocop_todo.yml bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits from another file bases other cops' configuration on the code base's current maximum line length with Layout/LineLength:Max overridden when .rubocop.yml has Layout/LineLength disabled skips the cop from both phases of the run when .rubocop.yml has Layout/LineLength:Max less than code base max bases other cops' configuration on the overridden LineLength:Max when .rubocop.yml has Layout/LineLength:Max more than code base max bases other cops' configuration on the overridden LineLength:Max when inheriting from a URL when there are multiple entries can generate a todo list when there is a single entry can generate a todo list when .rubocop.yml inherits from two other files bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits only from .rubocop_todo.yml bases other cops' configuration on the code base's current maximum line length console output displays report summary but no offenses when .rubocop.yml doesn't inherit bases other cops' configuration on the code base's current maximum line length when working with a cop who do not support auto-correction can generate a todo list when different styles appear in different files disables cop if --exclude-limit is exceeded generates Exclude list if --exclude-limit is not exceeded RuboCop::Cop::Style::MultilineWhenThen doesn't register an offense for singleline when statement with then autocorrects when the body of `when` branch starts with `then` does not register an offense for hash when statement with then doesn't register an offense for multiline when statement without then doesn't register an offense when `then` required for a body of `when` is used registers an offense for empty when statement with then does not register an offense for array when statement with then doesn't register an offense for empty when statement without then doesn't register an offense for multiline when statementwith then followed by other lines registers an offense for multiline when statement with then RuboCop::Cop::Generator::RequireFileInjector when a `require_relative` entry does not exist from before injects a `require_relative` statement on the right line in the root file when a cop of style department already exists injects a `require_relative` statement on the end of style department when using an unknown department inserts a `require_relative` statement to the bottom of the file when a `require` entry already exists does not write to any file RuboCop::Cop::Style::RedundantFileExtensionInRequire does not register an offense when requiring filename ending with `.so` does not register an offense when requiring variable as a filename registers an offense and corrects when requiring filename ending with `.rb` does not register an offense when requiring filename without an extension RuboCop::Cop::Metrics::ModuleLength rejects a module with more than 5 lines does not count blank lines accepts a module with 5 lines reports the correct beginning and end lines accepts empty modules accepts a module with less than 5 lines when `CountAsOne` is not empty folds array into one line when a module has inner classes does not count lines of inner classes rejects a module with 6 lines that belong to the module directly when inspecting a class defined with ::Module.new registers an offense when CountComments is enabled also counts commented lines when a module has inner modules rejects a module with 6 lines that belong to the module directly does not count lines of inner modules when inspecting a class defined with Module.new registers an offense RuboCop::Cop::Style::IpAddresses does not register an offense on an empty string with allowed addresses does not register an offense if the case differs does not register an offense for a allowed addresses IPv4 does not register an offense for an address inside larger text registers an offense for a valid address does not register an offense for an invalid address IPv6 registers an offense for the loopback address does not register an offense for an invalid address registers an offense for an address with 0s collapsed registers an offense for a valid address registers an offense for a shortened address registers an offense for a very short address the unspecified address :: (shortform of 0:0:0:0:0:0:0:0) does not register an offense when it is removed from the allowed addresses registers an offense RuboCop::Cop::Layout::ParameterAlignment aligned with first parameter registers an offense and corrects parameters with single indent accepts proper indentation registers an offense and corrects alignment in simple case accepts the first parameter being on a new row registers an offense and corrects parameters with double indent accepts parameter lists on a single line accepts a method definition without parameters doesn't get confused by splat defining self.method accepts proper indentation registers an offense and corrects parameters with single indent aligned with fixed indentation accepts the first parameter being on a new row accepts parameter lists on a single line registers an offense and corrects parameters aligned to first param accepts a method definition without parameters accepts proper indentation registers an offense and corrects parameters with double indent doesn't get confused by splat defining self.method accepts proper indentation registers an offense and corrects parameters aligned to first param RuboCop::Cop::Style::RedundantInterpolation registers an offense for "#{1 + 1; 2 + 2}" registers an offense for ["#{@var}"] registers an offense for "#@@var" registers an offense for "#{@@var}" accepts strings implicitly concatenated with an earlier string accepts strings with characters after the interpolation registers an offense for "#{var}" registers an offense for "#$1" registers an offense for "#{1 + 1}" accepts strings with characters before the interpolation accepts strings that are part of a %W() registers an offense for "#@var" registers an offense for "#{@var}" registers an offense for "#$+" registers an offense for "#{$1}" registers an offense for "#$var" registers an offense for "%|#{1 + 1}|" registers an offense for "#{$+}" registers an offense for "%Q(#{1 + 1})" accepts strings implicitly concatenated with a later string registers an offense for "#{$var}" RuboCop::Cop::Style::WhileUntilDo accepts do in single-line until registers an offense for do in multiline until accepts multi-line until without do accepts do in single-line while registers an offense for do in multiline while accepts multi-line while without do RuboCop::Cop::Layout::ArgumentAlignment aligned with first argument accepts calls that only span one line doesn't get confused by symbols with embedded expressions doesn't get confused by a symbol argument can handle heredoc strings doesn't get confused by a line break inside a parameter doesn't get confused by regexen with embedded expressions doesn't crash and burn when there are nested issues accepts braceless hashes registers an offense and corrects arguments with double indent can handle a correctly aligned string literal as first argument registers an offense and correct multi-line parametersindented too far can handle method calls without parentheses registers an offense and corrects multiline missed indendation doesn't get confused by extra comma at the end can handle a string literal as other argument accepts the first parameter being on a new row can handle a call embedded in a string accepts multiline []= method call can handle parentheses used with no arguments can handle a method call within a method call can handle a multiline hash as second parameter can handle do-end can handle a ternary condition with a block reference accepts correctly aligned arguments can handle other method calls without parentheses accepts correctly aligned arguments with fullwidth characters does not crash in autocorrect on dynamic string in parameter value registers an offense and corrects arguments with single indent registers an offense and corrects multi-line outdented parameters registers an offense and corrects splat operator can handle a call with a block inside another call when using safe navigation operator registers an offense and corrects arguments with single indent assigned methods accepts the first parameter being on a new row accepts the first parameter being on method row aligned with fixed indentation autocorrects by outdenting when indented too far autocorrects by indenting when not indented autocorrects when first line is indented assigned methods with IndentationWidth:Width set to 4 accepts the first parameter being on method row accepts the first parameter being on a new row autocorrects even when first argument is in wrong position with ArgumentAlignment:IndentationWidth set to 4 accepts the first parameter being on method row accepts the first parameter being on a new row multi-line method calls can handle existing indentation from multi-line method calls does not err on method call without a method name autocorrects relative to position of relevant method call registers offenses and corrects double indentation from relevant method RuboCop::Cop::Style::TrailingCommaInHashLiteral with multi-line list of values when EnforcedStyleForMultiline is consistent_comma accepts a multiline hash with a single pair and trailing comma accepts a multiline hash with pairs on a single line andtrailing comma accepts trailing comma accepts trailing comma after a heredoc registers an offense for no trailing comma when closing bracket is on same line as last value registers an offense for literal with no trailing comma when EnforcedStyleForMultiline is comma accepts trailing comma after a heredoc accepts a multiline hash with a single pair and trailing comma accepts trailing comma registers an offense for no trailing comma registers an offense for trailing comma in a comment when closing bracket is on same line as last value accepts literal with no trailing comma when EnforcedStyleForMultiline is no_comma registers an offense for trailing comma in literal accepts comma inside a heredoc parameters at the end accepts literal with no trailing comma accepts comma in comment after last value item with single line list of values when EnforcedStyleForMultiline is no_comma accepts single element literal without trailing comma accepts empty literal registers an offense for trailing comma in a literal accepts literal without trailing comma when EnforcedStyleForMultiline is comma accepts single element literal without trailing comma accepts literal without trailing comma accepts empty literal registers an offense for trailing comma in a literal when EnforcedStyleForMultiline is consistent_comma accepts single element literal without trailing comma accepts empty literal accepts literal without trailing comma registers an offense for trailing comma in a literal RuboCop::Cop::Style::TrailingCommaInArguments with a single argument spanning multiple lines when EnforcedStyleForMultiline is consistent_comma accepts a single argument with no trailing comma with single line list of values when EnforcedStyleForMultiline is comma accepts chained single-line method calls accepts heredoc without trailing comma registers an offense for trailing comma in a method call accepts method call without trailing comma when a line break before a method call accepts method call without trailing comma registers an offense for trailing comma preceded by whitespace in a method call accepts method call without parameters accepts method call without trailing comma with single element hash parameters at the end registers an offense for trailing comma in a method call with hash parameters at the end when using safe navigation operator registers an offense for trailing comma in a method call with hash parameters at the end registers an offense for trailing comma in a method call when EnforcedStyleForMultiline is consistent_comma registers an offense for trailing comma preceded by whitespace in a method call accepts method call without trailing comma accepts chained single-line method calls registers an offense for trailing comma in a method call with hash parameters at the end accepts method call without trailing comma with single element hash parameters at the end accepts heredoc without trailing comma registers an offense for trailing comma in a method call accepts method call without trailing comma when a line break before a method call accepts method call without parameters when using safe navigation operator registers an offense for trailing comma in a method call with hash parameters at the end registers an offense for trailing comma in a method call when EnforcedStyleForMultiline is no_comma accepts method call without parameters registers an offense for trailing comma in a method call accepts method call without trailing comma with single element hash parameters at the end accepts heredoc without trailing comma accepts method call without trailing comma when a line break before a method call accepts chained single-line method calls accepts method call without trailing comma registers an offense for trailing comma preceded by whitespace in a method call registers an offense for trailing comma in a method call with hash parameters at the end when using safe navigation operator registers an offense for trailing comma in a method call with hash parameters at the end registers an offense for trailing comma in a method call with a single argument of anonymous function spanning multiple lines when EnforcedStyleForMultiline is consistent_comma accepts a single argument with no trailing comma with multi-line list of values when EnforcedStyleForMultiline is comma does not break when a safe method call is chained on the offending more complex one accepts no trailing comma in a method call with a multiline braceless hash at the end with more than one parameter on a line accepts a method call with two parameters on the same line accepts trailing comma in a method call with hash parameters at the end accepts a multiline call with a single argument and trailing comma accepts missing comma after heredoc with comments accepts a trailing comma in a method call with single line hashes does not break when a method call is chaned on the offending one registers an offense for no trailing comma in a method call with hash parameters at the end does not break when a safe method call is chained on the offending simple one accepts an empty hash being passed as a method argument when closing bracket is on same line as last value accepts a method call with Hash as last parameter split on multiple lines when EnforcedStyleForMultiline is no_comma accepts comma inside a heredoc with method and comments inside accepts comma inside a heredoc with comments inside accepts comma inside a modified heredoc parameter accepts comma inside a heredoc in brackets auto-corrects unwanted comma after modified heredoc parameter accepts a method call with hash parameters at the end and no trailing comma accepts comma inside a heredoc parameter at the end registers an offense for trailing comma in a method call with hash parameters at the end when there is string interpolation inside heredoc parameter accepts comma inside a heredoc parameter when on a single line accepts comma inside a heredoc parameter auto-corrects unwanted comma inside string interpolation when EnforcedStyleForMultiline is consistent_comma accepts trailing comma in a method call with hash parameters at the end registers an offense for no trailing comma in a method call with hash parameters at the end accepts a trailing comma in a method call with a single hash parameter accepts a multiline call with arguments on a single line and trailing comma accepts a multiline call with single argument on multiple lines accepts a trailing comma in a method call with a single hash parameter to a receiver object registers an offense for no trailing comma in a method call withtwo parameters on the same line accepts no trailing comma in a method call with a block parameter at the end accepts a trailing comma in a method call with single line hashes auto-corrects missing comma after a heredoc accepts a multiline call with a single argument and trailing comma when closing bracket is on same line as last value registers an offense for a method call, with a Hash as the last parameter, split on multiple lines RuboCop::Cop::Lint::ScriptPermission with stdin skips investigation with file permission 0644 registers an offense for script permission if auto-correction is off leaves the file intact with file permission 0755 accepts without shebang line accepts with blank accepts with shebang line RuboCop::Cop::Style::MultilineTernaryOperator registers an offense and corrects when everything is on a separate line registers offense and corrects when the if branch and the else branch are on a separate line from the condition accepts a single line ternary operator expression registers an offense and corrects when the false branch is on a separate line RuboCop::Cop::Lint::RegexpAsCondition does not register an offense for a regexp literal outside conditions registers an offense and corrects for a regexp literal in `if` condition does not register an offense for a regexp literal with `=~` operator RuboCop::Cop::Lint::Loop accepts loop/break if accepts loop/break unless registers an offense for begin/end/until registers an offense and corrects for begin/end/while RuboCop::Cop::Layout::MultilineArrayBraceLayout ignores single-line arrays ignores implicit arrays ignores empty arrays behaves like multiline literal brace layout trailing comma same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element behaves like multiline literal brace layout same_line style opening brace on same line as first element detects closing brace on different line from last element allows closing brace on same line from last element autocorrects closing brace on different line as last element allows closing brace on same line as multi-line element detects closing brace on different line from multiline element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace opening brace on separate line from first element allows closing brace on same line as last multiline element autocorrects closing brace on different line from last element allows closing brace on same line as last element detects closing brace on different line from last element symmetrical style opening brace on separate line from first element autocorrects closing brace on same line from last element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element detects closing brace on same line as last element opening brace on same line as first element allows closing brace on same line as last element allows closing brace on same line as last multiline element autocorrects closing brace on different line from last element detects closing brace on different line from last element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace new_line style opening brace on same line as first element allows closing brace on different line from multi-line element allows closing brace on different line from last element detects closing brace on same line as last multiline element detects closing brace on same line as last element autocorrects closing brace on same line as last element opening brace on separate line from first element allows closing brace on separate line from last multiline element autocorrects closing brace on same line from last element allows closing brace on separate line from last element detects closing brace on same line as last element heredoc auto-corrects safe heredoc offenses ignores heredocs that could share a last line detects heredoc structures that are safe to add to when comment present before closing brace corrects closing brace without crashing behaves like multiline literal brace layout method argument when arguments to a method and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace but no comment after the last element autocorrects the closing brace RuboCop::Cop::Naming::AsciiIdentifiers when AsciiConstants is false registers an offense for a variable name with non-ascii chars accepts identifiers with only ascii chars does not get confused by a byte order mark accepts constants with only ascii chars registers an offense for a variable name with mixed chars does not get confused by an empty file when AsciiConstants is true does not get confused by a byte order mark registers an offense for a variable name with non-ascii chars registers an offense for a constant name with non-ascii chars does not get confused by an empty file accepts identifiers with only ascii chars registers an offense for a variable name with mixed chars RuboCop::Cop::VariableForce::Reference .new when non variable reference node is passed raises error RuboCop::Cop::Lint::DuplicateCaseCondition registers multiple offenses for repeated multi-value condtionals accepts non-redundant case expressions registers an offense for subsequent repeated case conditionals accepts similar but not equivalent && expressions accepts non-redundant case expressions with an else expression registers multiple offenses for multiple repeated case conditionals registers an offense for repeated case conditionals registers an offense for repeated logical operator when expressions accepts trivial case expressions RuboCop::Cop::Lint::UselessAssignment when a variable is referenced in rhs of named capture expression accepts when a variable is reassigned multiple times in main body of begin then referenced in rescue accepts when a unreferenced variable is reassigned on the right side of && and referenced after the && accepts when a block local variable is declared but not assigned accepts when a named capture is unreferenced in other than top level registers an offense when there's an unreferenced assignment in top level if branch while the variable is referenced in the paired else branch registers an offense for the assignment in the if branch when a rescued error variable is wrongly tried to be referenced in another rescue body registers an offense when a variable is assigned in each branch of if and referenced after the branching accepts when a variable is assigned while being passed to a method taking block and the variable is not used registers an offense and the variable is used accepts when a variable that has same name as outer scope variable is not referenced in a method defined in loop registers an offense when an optional method argument is not used accepts when a named capture is unreferenced in top level registers an offense when a variable is assigned in 2 identical if branches doesn't think 1 of the 2 assignments is useless when a block argument is not used accepts when a variable is assigned in loop body and referenced in post while condition accepts when a variable is assigned and unreferenced in a singleton method defined with variable name registers an offense when a variable is assigned on each side of && and referenced after the && accepts when a variable is assigned in loop body and unreferenced registers an offense when a variable is assigned and passed to a method followed by method taking block accepts when a keyword splat method argument is used accepts when a variable is assigned in loop body and referenced in post until condition accepts when a setter is invoked with operator assignment in loop body accepts when a variable is assigned in each branch of if and referenced in the else branch registers an offense for the assignment in the if branch when a variable is reassigned multiple times in main body of begin then referenced after the begin accepts when a variable is assigned with ||= before the last expression of the scope registers an offense when an anonymous keyword splat method argument is defined accepts when a variable is reassigned while referencing itself in rhs and referenced accepts when a variable is assigned in main body of begin, rescue and else then referenced after the begin accepts when a variable is assigned and unreferenced in a singleton method defined with self keyword registers an offense when a optional keyword method argument is not used accepts when a variable is reassigned multiple times in rescue and referenced after the begin registers an offense when there's an unreferenced reassignment in a if branch while the variable is referenced in a case branch in the paired else branch registers an offense for the reassignment in the if branch when a variable is reassigned with binary operator assignment while assigning to itself in rhs then referenced registers an offense for the assignment in rhs when a variable is assigned and referenced when defining a module does not register an offense when a variable is assigned with operator assignment in rescue and would be referenced with retry accepts when a splat method argument is not used accepts when a referenced variable is reassigned in a block accepts when a variable is reassigned in loop body but won't be referenced either next iteration or loop condition registers an offense (PENDING: Requires an advanced logic that checks whether the return value of an operator assignment is used or not.) when a variable is assigned with ||= at the last expression of the scope registers an offense when a variable is assigned and assigned again in a modifier condition accepts without parentheses accepts with parentheses when a variable is reassigned at the end of loop body and would be referenced in next iteration accepts when a block local variable is assigned and unreferenced registers offenses for the assignment when a variable is assigned in main body of begin, rescue and else and reassigned in ensure then referenced after the begin registers offenses for each assignment before ensure when a variable is reassigned with multiple assignment while referencing itself in rhs and referenced accepts when a variable is reassigned multiple times in rescue with ensure then referenced after the begin registers an offense when a unreferenced variable is reassigned on the left side of && and referenced after the && registers an offense for the unreferenced assignment when a variable is not used and the name starts with _ accepts when a variable is assigned and unreferenced in a module registers an offense when a method argument is reassigned and zero arity super is called accepts when a variable is assigned and unreferenced in a class registers an offense when a variable is assigned with operator assignment in top level registers an offense when a variable is reassigned multiple times in ensure with rescue then referenced after the begin registers an offense when a variable is shadowed by a block argument and unreferenced registers an offense when a variable is assigned in main body of begin with rescue but unreferenced registers an offense when a variable is assigned multiple times but unreferenced registers offenses for each assignment when a local variable is unreferenced and zero arity super is called registers an offense when a variable is assigned in branch of modifier if that references the variable in its conditional clauseand unreferenced registers an offense when a variable is reassigned in single branch if and referenced in the branch registers an offense for the unreferenced assignment when a method argument is reassigned but not passed to super registers an offense when a variable is assigned and unreferenced in a class subclassing another class stored in local variable registers an offense when there is only one AST node and it is unused variable registers an offense when a variable is reassigned in single branch if and referenced after the branching accepts when a block method argument is not used accepts when a variable is assigned at the end of rescue and would be referenced with retry accepts when a method argument is not used accepts when a variable is assigned with multiple assignment and unreferenced registers an offense when a variable is reassigned multiple times in main body of begin then referenced in ensure accepts when a variable is reassigned in a loop until loop accepts post while loop accepts for loop accepts post until loop accepts while loop accepts when a variable is assigned in single branch if and unreferenced registers an offense when a unreferenced variable is reassigned in same branch and referenced after the branching registers an offense for the unreferenced assignment when a variable is assigned in begin and referenced outside accepts when a keyword splat method argument is not used accepts when a referenced variable is reassigned but not re-referenced in a method defined in loop registers an offense when a variable is reassigned with binary operator assignment and referenced accepts when there's an unreferenced reassignment in a if branch while the variable is referenced in the paired elsif branch registers an offense for the reassignment in the if branch when a variable is reassigned with logical operator assignment and referenced accepts when a variable is assigned first with ||= and referenced accepts when an unreferenced variable is reassigned in a block accepts when a referenced variable is reassigned but not re-referenced registers an offense for the non-re-referenced assignment when a variable is reassigned and unreferenced in a if branch while the variable is referenced in the paired else branch registers an offense for the reassignment in the if branch when an unreferenced variable is reassigned and re-referenced registers an offense for the unreferenced assignment when an assignment in a if branch is referenced in another if branch accepts when a variable is assigned and unreferenced in top level registers an offense when a variable is assigned in branch of modifier if that references the variable in its conditional clauseand referenced after the branching accepts when a variable is reassigned at the end of loop body and would be referenced in loop condition accepts when a variable is assigned and unreferenced in a method registers an offense similar name suggestion when there's a similar variable-like method invocation suggests the method name when there are only less similar names does not suggest any name when there's a similar method invocation with explicit receiver does not suggest any name when there's a similar name but it's in inner scope does not suggest any name when there's a similar method invocation with arguments does not suggest any name when there's a similar variable suggests the variable name when a variable is assigned and unreferenced in a singleton class registers an offense when a named capture is referenced accepts RuboCop::Cop::Style::SingleLineMethods auto-corrects def with semicolon before end auto-corrects def with argument in parentheses registers an offense for a single-line method auto-corrects defs with parentheses after method name accepts a multi-line method auto-corrects def with semicolon after method name auto-corrects def with argument and no parentheses does not crash on an method with a capitalized name when AllowIfMethodIsEmpty is disabled registers an offense for an empty method when AllowIfMethodIsEmpty is enabled accepts a single-line empty method RuboCop::Cop::Style::FormatStringToken handles __FILE__ ignores xstr handles dstrs ignores time format (when used as argument to strptime) ignores regexp ignores http links ignores time format and unrelated `format` method using ignores time format (when used as argument to strftime) ignores placeholder arguments ignores percent escapes ignores `%r` regexp works inside hashes supports flags and modifiers ignores time format when it is stored in a variable behaves like enforced styles for format string tokens when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for template style configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" when enforced style is annotated supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for template style when enforced style is annotated gives a helpful error message when enforced style is unannotated gives a helpful error message behaves like enforced styles for format string tokens when enforced style is annotated configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for template style sets the enforced style to annotated after inspecting "%s" when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style when enforced style is template gives a helpful error message behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style when enforced style is template sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" when enforced style is annotated sets the enforced style to annotated after inspecting "%s" registers offenses for template style supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation when enforced style is annotated supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation when enforced style is annotated supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style when enforced style is annotated configures the enforced style to template after inspecting "%{a}" registers offenses for template style supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" when enforced style is annotated registers offenses for template style supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" when enforced style is annotated registers offenses for template style sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is template configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation when enforced style is annotated configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" registers offenses for template style supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is template configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" when enforced style is annotated configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" registers offenses for template style supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" when enforced style is annotated supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for template style configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" when enforced style is annotated registers offenses for template style configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation when enforced style is annotated registers offenses for template style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" registers offenses for template style supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" when enforced style is template sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation RuboCop::Cop::Style::MultilineIfThen does not get confused by a commented-out then registers an offense for then in multiline elsif accepts table style if/then/elsif/ends registers an offense for then in multiline unless does not get confused by a then in a when registers an offense for then in multiline if does not get confused by a postfix unless does not raise an error for an implicit match unless does not get confused by empty elsif branch does not get confused by a nested postfix unless does not raise an error for an implicit match if RuboCop::Cop::Style::SelfAssignment registers an offense for non-shorthand assignment ** and @@x registers an offense for non-shorthand assignment || and x registers an offense for non-shorthand assignment * and @@x registers an offense for non-shorthand assignment * and x registers an offense for non-shorthand assignment & and @x registers an offense for non-shorthand assignment | and @@x registers an offense for non-shorthand assignment | and @x registers an offense for non-shorthand assignment - and @@x registers an offense for non-shorthand assignment / and x registers an offense for non-shorthand assignment + and @x registers an offense for non-shorthand assignment || and @@x registers an offense for non-shorthand assignment || and @x registers an offense for non-shorthand assignment - and x registers an offense for non-shorthand assignment - and @x registers an offense for non-shorthand assignment + and @@x registers an offense for non-shorthand assignment / and @x registers an offense for non-shorthand assignment && and x registers an offense for non-shorthand assignment & and x registers an offense for non-shorthand assignment | and x registers an offense for non-shorthand assignment && and @@x registers an offense for non-shorthand assignment / and @@x registers an offense for non-shorthand assignment && and @x registers an offense for non-shorthand assignment & and @@x registers an offense for non-shorthand assignment ** and x registers an offense for non-shorthand assignment + and x registers an offense for non-shorthand assignment * and @x registers an offense for non-shorthand assignment ** and @x RuboCop::Cop::Lint::OrderedMagicComments does not register an offense when using `encoding: Encoding::SJIS` Hash notation after`frozen_string_literal` magic comment does not register an offense when using `encoding` magic comment is first line registers an offense and corrects when an `encoding` magic comment does not precede all other magic comments registers an offense and corrects when `-*- encoding : ascii-8bit -*-` magic comment does not precede all other magic comments does not register an offense when using `encoding` magic comment is next of shebang registers an offense and corrects when `coding` magic comment does not precede all other magic comments registers an offense and corrects when using `frozen_string_literal` magic comment is next of shebang does not register an offense when using `frozen_string_literal` magic comment only does not register an offense when using `encoding` magic comment only RuboCop::Cop::Style::RedundantBegin accepts a def with required begin block reports an offense for single line def with redundant begin block accepts a def with a begin block after a statement accepts a defs with required begin block doesn't modify spacing when auto-correcting reports an offense for def with redundant begin block auto-corrects when there are trailing comments reports an offense for defs with redundant begin block < Ruby 2.5 accepts a do-end block with a begin-end >= ruby 2.5 accepts a block with a begin block after a statement accepts super with block accepts a stabby lambda with a begin-end accepts a {} block with a begin-end registers an offense for a do-end block with redundant begin-end RuboCop::Cop::Layout::FirstMethodParameterLineBreak accepts params listed on a single line registers an offense and corrects params listed on the first line accepts single-line methods accepts params without parens accepts methods without params registers an offense and corrects params with default values registers an offense and corrects params on first line of singleton method RuboCop::Cop::Layout::EmptyLines registers an offense for consecutive empty lines does not register an offense for heredocs with empty lines inside works when there are no tokens handles comments does not register an offense for empty lines in a string RuboCop::Cop::Lint::RedundantStringCoercion does not explode on empty interpolation accepts #to_s with arguments in an interpolation registers an offense and corrects `to_s` in an interpolation with several expressions accepts interpolation without #to_s registers an offense and corrects `to_s` in interpolation registers an offense and corrects an implicit receiver RuboCop::Cop::Style::NumericLiteralPrefix binary literals registers an offense for uppercase prefix does not register offense for lowercase prefix octal literals when config is zero_with_o registers an offense for prefixes `0` and `0O` does not register offense for lowercase prefix when config is zero_only registers an offense for prefix `0O` and `0o` does not register offense for prefix `0` hex literals does not register offense for lowercase prefix registers an offense for uppercase prefix decimal literals does not register offense for no prefix registers an offense for prefixes RuboCop::Cop::Util #line_range returns line range of the expression #to_supported_styles when EnforcedStyle is expected to eq "SupportedStyles" when EnforcedStyleInsidePipes is expected to eq "SupportedStylesInsidePipes" RuboCop::Cop::Style::FloatDivision EnforcedStyle is fdiv registers offense for both coerce registers offense for left coerce with calculations registers offense for left coerce registers offense for right coerce does not register offense on usage of fdiv EnforcedStyle is right_coerce registers offense for both coerce registers offense for left coerce registers offense for left coerce with calculations does not register offense for right coerce EnforcedStyle is single_coerce registers offense for both coerce registers offense for left coerce with calculations does not register offense for left coerce only does not register offense for right coerce only EnforcedStyle is left_coerce does not register offense for left coerce registers offense for right coerce registers offense for right coerce with calculations registers offense for both coerce RuboCop::Cop::Style::IfWithSemicolon can handle modifier conditionals accepts without `else` branch registers an offense and corrects for one line if/;/end RuboCop::Cop::Naming::VariableName when configured for camelCase registers an offense for keyword arguments registers an offense for rest arguments accepts assignment with indexing of self accepts screaming snake case globals registers an offense for camel case when invoking method args accepts one symbol size local variables accepts assigning to camel case constant accepts local variables marked as unused registers an offense for default method arguments accepts screaming snake case constants accepts camel case local variables marked as unused registers an offense for snake case in method parameter registers an offense for snake case in local variable name registers an offense for keyword rest arguments accepts camel case in class variable name accepts camel case in instance variable name registers an offense for opposite + correct registers an offense for block arguments accepts camel case in local variable name when configured for snake_case registers an offense for keyword arguments registers an offense for camel case in local variable name registers an offense for camel case in class variable name registers an offense for correct + opposite registers an offense for keyword rest arguments accepts local variables marked as unused accepts screaming snake case constants accepts one symbol size local variables accepts screaming snake case globals registers an offense for default method arguments registers an offense for rest arguments registers an offense for method arguments accepts assigning to camel case constant registers an offense for block arguments accepts assignment with indexing of self registers an offense for camel case local variables marked as unused registers an offense for camel case when invoking method args registers an offense for camel case in instance variable name RuboCop::Cop::Style::CommentedKeyword accepts keyword letter sequences that are not keywords registers an offense when commenting on the same line as `begin` does not register an offense if there are no comments after keywords does not register an offense for certain comments registers an offense when commenting on the same line as `end` registers an offense when commenting on the same line as `module` registers an offense when commenting on the same line as `class` registers an offense when commenting on the same line as `def` registers an offense when commenting after keyword with spaces registers an offense when commenting on indented keywords does not register an offense if AST contains # symbol registers an offense for one-line cases RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault when EnforcedStyle is no_space accepts default value assignment without space registers an offense and corrects assignment of empty list with space registers an offense and corrects assignment of empty string with space registers an offense and corrects default value assignment with space when EnforcedStyle is space accepts default value assignment with spaces and unary + operator registers an offense and corrects assignment of empty list without space accepts default value assignment with space registers an offense and corrects assigning empty string without space registers an offense and corrects default value assignment without space registers an offense and corrects missing space for arguments with unary operators RuboCop::Cop::Naming::FileName with non-snake-case file names with a shebang does not report an offense when IgnoreExecutableScripts is disabled reports an offense with snake_case file names with multiple extensions does not report an offense with include acronym name does not register an offense with camelCase file names without file extension reports an offense with acronym class name does not register an offense with dotfiles does not report an offense when CheckDefinitionPathHierarchy is false on a file with a matching class does not register an offense on a file with a non-matching class registers an offense on an empty file registers an offense with a non-matching module containing a matching class does not register an offense in a non-matching directory, but with a matching class does not register an offense with a matching module containing a non-matching class does not register an offense with acronym namespace does not register an offense with snake_case names which use + does not report an offense when Regex is set with a matching name does not register an offense with a non-matching name registers an offense when ExpectMatchingDefinition is true on a file which defines multiple classes in a directory with multiple instances of spec does not register an offense in a directory with multiple instances of src does not register an offense in a matching directory under src does not register an offense in a directory elsewhere which only matches the module name does not register an offense in a directory with multiple instances of test does not register an offense in a directory with multiple instances of lib does not register an offense in a non-matching directory under spec registers an offense in a directory elsewhere which does not match the module name registers an offense in a non-matching directory under lib registers an offense in a matching directory under lib does not register an offense in a matching directory under test does not register an offense in a non-matching directory under test registers an offense in a non-matching directory under src registers an offense in a matching directory under spec does not register an offense on a file which defines no class or module at all under some other random directory registers an offense under src registers an offense under spec registers an offense under test registers an offense under lib registers an offense on a file which defines a nested module in a non-matching directory under lib registers an offense in a directory with multiple instances of lib does not register an offense in a directory with multiple instances of src does not register an offense in a matching directory under lib does not register an offense in a matching directory under test does not register an offense in a matching directory under spec does not register an offense in a directory with multiple instances of test does not register an offense in a non-matching directory under test registers an offense in a matching directory under src does not register an offense in a non-matching directory under spec registers an offense in a non-matching directory under src registers an offense in a directory with multiple instances of spec does not register an offense in a directory elsewhere which only matches the module name does not register an offense in a directory elsewhere which does not match the module name registers an offense on an empty file with a space in its filename registers an offense on a file which uses Name::Spaced::Module syntax in a directory elsewhere which does not match the module name registers an offense in a directory elsewhere which only matches the module name does not register an offense in a non-matching directory under src registers an offense in a directory with multiple instances of test does not register an offense in a matching directory under lib does not register an offense in a matching directory under spec does not register an offense in a non-matching directory under test registers an offense in a non-matching directory under lib registers an offense in a non-matching directory under spec registers an offense in a matching directory under src does not register an offense in a directory with multiple instances of src does not register an offense in a directory with multiple instances of spec does not register an offense in a matching directory under test does not register an offense in a directory with multiple instances of lib does not register an offense on an empty file registers an offense on a file which defines a nested class in a non-matching directory under src registers an offense in a directory elsewhere which only matches the module name does not register an offense in a non-matching directory under lib registers an offense in a matching directory under spec does not register an offense in a directory elsewhere which does not match the module name registers an offense in a matching directory under lib does not register an offense in a directory with multiple instances of test does not register an offense in a non-matching directory under spec registers an offense in a matching directory under test does not register an offense in a matching directory under src does not register an offense in a directory with multiple instances of spec does not register an offense in a directory with multiple instances of src does not register an offense in a directory with multiple instances of lib does not register an offense in a non-matching directory under test registers an offense with snake_case names which use ? and ! does not report an offense with snake_case file names with non-rb extension does not report an offense when the file is specified in AllCops/Include with a non-snake_case file name does not report an offense with camelCase file names ending in .rb reports an offense with snake_case file names ending in .rb reports an offense with snake_case file names without file extension does not report an offense RuboCop::Cop::Style::MixinUsage does not register an offense when using inside nested module prepend registers an offense when using outside class does not register an offense when using inside class include doesn't register an offense when `include` call is a method argument registers an offense when using only `include` statement does not register an offense when using inside class registers an offense when using outside class (used below) does not register an offense when using inside block does not register an offense when using `include` in method definition inside module registers an offense when using outside class (used above) does not register an offense when using outside class registers an offense when using `include` in method definition outside class or module does not register an offense when using `include` in method definition inside class does not register an offense when using inside block and `if` condition is after `include` Nested module registers an offense when using outside class Multiple definition classes in one does not register an offense when using inside class extend registers an offense when using outside class does not register an offense when using inside class RuboCop::Cop::Style::CaseEquality when AllowOnConstant is true registers an offense and corrects for === when the receiver is a regexp registers an offense and corrects for === when the receiver is a range does not register an offense for === when the receiver is a constant does not fail when the receiver is implicit registers an offense and does not correct for === when receiver is of some other type when AllowOnConstant is false registers an offense and does not correct for === when receiver is of some other type registers an offense and corrects for === when the receiver is a constant registers an offense and corrects for === when the receiver is a range does not fail when the receiver is implicit registers an offense and corrects for === when the receiver is a regexp RuboCop::Formatter::SimpleTextFormatter #report_summary when a offense detected handles pluralization correctly when an offense is corrected prints about correction when 2 offenses are corrected handles pluralization correctly when a file inspected and no offenses detected handles pluralization correctly when 2 offenses detected handles pluralization correctly when no files inspected handles pluralization correctly #report_file when the offense is not corrected prints message as-is when the offense is marked as todo prints [Todo] along with message when the offense is automatically corrected prints [Corrected] along with message the file is outside of the current working directory prints as absolute path the file is under the current working directory prints as relative path RuboCop::Cop::Layout::HeredocArgumentClosingParenthesis incorrect cases double case new line detects and fixes simple incorrect case with call after detects incorrect case with other param before detects simple incorrect case with call after trailing comma detects complex chained incorrect case with multiple calls detects and fixes the first incorrect case in array with spaced out comma detects incorrect case in array with nested calls and double heredoc and spaced out comma detects incorrect case nested method call with comma detects incorrect case with other param before constructor and raise call detects simple incorrect case comma with spaces detects simple incorrect case comma with spaces and comma in heredoc detects simple incorrect case detects incorrect case with other param before constructor detects incorrect case with other param after detects incorrect case in array with double heredoc and spaced out comma detects nested incorrect case detects double incorrect case detects simple incorrect case hash detects complex incorrect case with multiple calls detects and fixes the first detects and fixes the second double incorrect case new line chained calls detects simple incorrect case squiggles detects simple incorrect case comma detects correct cases accepts double correct case new line accepts double correct case accepts simple correct case accepts correct case with other param after accepts correct case with other param before accepts hash correct case accepts double correct case nested invocation after the HEREDOC ignores random call after ignores tr ignores random call RuboCop::ConfigStore .for always uses config specified in command line when no config specified in command line searches for config path if not available in cache gets config path and config from cache if available when --force-default-config option is specified uses default config without searching for config path RuboCop::Cop::Lint::UselessElseWithoutRescue with `else` with `rescue` accepts with `else` without `rescue` registers an offense RuboCop::Cop::Style::SafeNavigation allows an object check before a nil check on a short chain allows an object check before a method chain longer than 2 methods allows a method call as a parameter when the parameter is safe guarded with an object check allows calls to methods not safeguarded by respond_to allows for empty if blocks with comments allows an object check before a blank check allows a method call safeguarded with a negative check for the object when using `if` allows an object check before a negated predicate allows object checks in the condition of an elsif statement and a method call on that object in the body allows an object check before a long chain with a block allows an object check before a method chain that is used in a comparison allows an object check before hash access allows an object check before a nil check on a long chain allows a method chain that is used in a comparison safe guarded by an object check allows calls using safe navigation allows an object check before a negated predicate method chain allows an object check before a method call that is used in a regex comparison allows method calls that do not get called using . safe guarded by an object check allows method call that is used in a regex comparison safe guarded by an object check allows calls on nil allows chained method calls during arithmetic operations safe guarded by an object check allows an object check before a method call that is used in a negated regex comparison allows a method call safeguarded when using `unless nil?` allows method call that is used in a negated regex comparison safe guarded by an object check allows method call that is used in a spaceship comparison safe guarded by an object check allows an object check before a method call that is used in a comparison allows an object check before a method call that is used in a spaceship comparison allows a method call safeguarded with a negative check for the object when using `unless` allows method call that is used in a comparison safe guarded by an object check allows chained method calls during assignment safe guardedby an object check behaves like all variable types object check before method call allows a nil object check followed by a method call allows a non object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a non object check followed by a method call allows a nil object check followed by a method call with params and a block allows a nil object check followed by a method call with a block allows a nil object check followed by a method call with params allows a non object check followed by a method call with a block ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with params and a block allows a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call registers an offense for an object check followed by a method call with params allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method calls that nil responds to registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call method chaining corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a block ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with params registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call corrects an object check followed by a method call and another check registers an offense for an object check followed by a method call with params method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls allows an object check followed by chained method calls with blocks if expression registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with a block inside of a check for the object only moves comments that fall within the expression registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object does not lose comments within if expression registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object allows a single method call inside of a check for the object with an else ternary expression allows ternary expression modifier if registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call that nil responds to safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like all variable types if expression registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object only moves comments that fall within the expression registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with a block inside of a non-nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with params and a block inside of a check for the object does not lose comments within if expression registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call inside of a non-nil check for the object ternary expression allows ternary expression object check before method call allows a nil object check followed by a method call with a block allows a non object check followed by a method call with a block allows a non object check followed by a method call with params allows a nil object check followed by a method call with params allows a nil object check followed by a method call allows a non object check followed by a method call with params and a block allows a non object check followed by a method call allows a nil object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil false registers an offense for an object check followed by a method call with params and a block allows a non-nil object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call with a block allows a non-nil object check followed by a method call with params allows a non-nil object check followed by a method call registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call with a block method chaining corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a symbol proc ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call with params corrects an object check followed by a method call and another check registers an offense for an object check followed by a method call with a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls allows an object check followed by chained method calls with blocks modifier if registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like all variable types modifier if registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check if expression registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params inside of a check for the object does not lose comments within if expression registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call inside of a non-nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object only moves comments that fall within the expression registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with params and a block inside of a check for the object ternary expression allows ternary expression object check before method call allows a non object check followed by a method call with params and a block allows a nil object check followed by a method call with params allows a nil object check followed by a method call allows a nil object check followed by a method call with a block allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call allows a non object check followed by a method call with params allows a non object check followed by a method call with a block ConvertCodeThatCanStartToReturnNil false registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with a block allows a non-nil object check followed by a method call with params registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call with params and a block allows a non-nil object check followed by a method call registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with a block method chaining corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with params ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with params corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls behaves like all variable types modifier if registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for an object check followed by a method call with a comment at EOL behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check object check before method call allows a nil object check followed by a method call allows a nil object check followed by a method call with a block allows a non object check followed by a method call allows a nil object check followed by a method call with params allows a non object check followed by a method call with a block allows a non object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a nil object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil true registers an offense for an object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call registers an offense for an object check followed by a method call with a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call with params registers an offense for a non-nil object check followed by a method call with params and a block corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls ConvertCodeThatCanStartToReturnNil false registers an offense for an object check followed by a method calls that nil responds to registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with a block allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with params allows a non-nil object check followed by a method call with params and a block allows a non-nil object check followed by a method call method chaining corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a symbol proc if expression registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params inside of an unless negative check for the object does not lose comments within if expression registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with a block inside of a non-nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call with params inside of a non-nil check for the object only moves comments that fall within the expression registers an offense for a single method call inside of an unless nil check for the object ternary expression allows ternary expression behaves like all variable types modifier if registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative check for the object behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check object check before method call allows a nil object check followed by a method call with a block allows a non object check followed by a method call with a block allows a nil object check followed by a method call with params allows a nil object check followed by a method call allows a non object check followed by a method call allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a non object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call allows a non-nil object check followed by a method call with params allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block method chaining corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call with params ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call with params corrects an object check followed by a method call and another check registers an offense for an object check followed by a method call with a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params and a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls allows an object check followed by chained method calls with blocks if expression registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object does not lose comments within if expression registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params inside of a non-nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object only moves comments that fall within the expression registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of a check for the object ternary expression allows ternary expression behaves like all variable types modifier if registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a chained method call safeguarded with an unless nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check if expression registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call inside of a non-nil check for the object does not lose comments within if expression registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params inside of a check for the object only moves comments that fall within the expression registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with a block inside of an unless nil check for the object ternary expression allows ternary expression object check before method call allows a non object check followed by a method call with params allows a nil object check followed by a method call allows a non object check followed by a method call with a block allows a non object check followed by a method call allows a nil object check followed by a method call with params allows a nil object check followed by a method call with a block allows a non object check followed by a method call with params and a block allows a nil object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with params method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls allows an object check followed by chained method calls with blocks ConvertCodeThatCanStartToReturnNil false registers an offense for an object check followed by a method call allows a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call with a block allows a non-nil object check followed by a method call with a block method chaining corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call respond_to? allows method calls safeguarded by a respond_to check allows enumerable accessor method calls safeguarded by a respond_to check allows method calls safeguarded by a respond_to check to a different method allows method calls safeguarded by a respond_to check on adifferent variable and method allows method calls safeguarded by a respond_to check on adifferent variable but the same method RuboCop::Cop::Layout::MultilineArrayLineBreaks when on same line does not add any offenses when on same line, separate line from brackets does not add any offenses when nested arrays registers an offense and corrects when two elements on same line registers an offense and corrects RuboCop::Cop::Style::MethodCallWithoutArgsParentheses accepts parens after not accepts parens in method call with args accepts parentheses for methods starting with an upcase letter registers an offense for `obj.method ||= func()` registers an offense for `obj.method &&= func()` accepts special lambda call syntax ignores method listed in IgnoredMethods auto-corrects calls that could be empty literals registers an offense for `obj.method += func()` registers an offense for parens in method call without args assignment to a variable with the same name accepts parens in local variable assignment accepts parens in shorthand assignment accepts parens in parallel assignment accepts parens in complex assignment method call as argument registers an offense with empty parens accepts without parens registers an empty parens offense for multiple assignment RuboCop::Cop::Badge exposes department name exposes cop name can be converted to a string with the Department/CopName format compares by value .for parses cop class name .parse parses unqualified badge references parses Department/CopName syntax #qualified? says `CopName` is not qualified says `Department/CopName` is qualified RuboCop::Cop::Style::StringHashKeys autocorrects strings as keys into symbols with the correct syntax does not register an offense when string key is used in IO.popen does not register an offense when string key is used in Open3.capture3 does not register an offense when string key is used in gsub registers an offense when using strings as keys mixed with other keys registers an offense when using strings as keys does not register an offense when string key is used in gsub! does not register an offense when not using strings as keys does not register an offense when string key is used in Open3.pipeline RuboCop::Cop::Layout::DefEndAlignment when EnforcedStyleAlignWith is start_of_line accepts matching foo def ... end accepts matching def ... end auto-corrects mismatched def Test.test end accepts matching foo bar def ... end registers an offense for mismatched def Test.test end accepts matching def ... end registers an offense for mismatched foo def test end registers an offense for mismatched def test end auto-corrects mismatched foo def test end auto-corrects mismatched def test end accepts matching defs ... end correct + opposite registers an offense when EnforcedStyleAlignWith is def registers an offense for mismatched def Test.test end registers an offense for mismatched foo def test end auto-corrects mismatched def test end accepts matching defs ... end accepts matching def ... end auto-corrects mismatched def Test.test end auto-corrects mismatched foo def test end registers an offense for mismatched def test end accepts matching foo def ... end correct + opposite registers an offense RuboCop::Cop::Layout::InitialIndentation registers an offense and corrects indented assignment disregarding comment registers an offense for indented method definition accepts empty file accepts unindented method definition accepts unindented comment + assignment for a file with byte order mark accepts unindented method call registers an offense and corrects indented method call after comment registers an offense and corrects indented method call RuboCop::Cop::Layout::BlockAlignment accepts end aligned with an and-asgn (&&=) registers an offense for mismatched end not aligned with the block that is an argument registers an offense for mismatched block end with an instance variable accepts end aligned with an instance variable accepts end aligned with a method call accepts end aligned with the block when the block is a method argument accepts end aligned with an op-asgn (+=, -=) registers an offense for mismatched block end with a method call registers an offense for mismatched block end with an and-asgn (&&=) accepts end aligned with an or-asgn (||=) registers an offense for mismatched end with a method call with arguments registers an offense for mismatched block end with an op-asgn (+=, -=) accepts end aligned with a variable accepts end aligned with a call chain left hand side registers an offense for mismatched block end with an or-asgn (||=) registers an offense for mismatched block end with a global variable accepts end aligned with a global variable accepts a block end that does not begin its line does not raise an error for nested block in a method call accepts end aligned with a method call with arguments registers an offense for mismatched block end with a variable accepts end aligned with a constant registers an offense for mismatched block end with a mass assignment accepts end aligned with a class variable registers an offense for mismatched block end with a class variable accepts end aligned with a mass assignment registers an offense for mismatched block end with a constant when variables of a mass assignment spans several lines accepts end aligned with the variables registers an offense for end aligned with the block and the block is an operand accepts end aligned with a variable when the method part is a call chain that spans several lines accepts pretty alignment style accepts end indented as the start of the block registers offenses for misaligned ends accepts two kinds of end alignment when multiple similar-looking blocks have misaligned ends registers an offense for each of them when the block has no arguments registers an offense for mismatched block end when configured to align with start_of_line errors when do aligned allows when start_of_line aligned on a logically negated method call registers an offense and corrects aligns end with the ! operator when the block is defined on the next line accepts end aligned with the block expression registers an offenses for mismatched end alignment on a bit-flipped method call registers an offense and corrects misaligned end brace aligns end with the ~ operator when the block has arguments registers an offense for mismatched block end when the block is terminated by } mentions } (not end) in the message on a splatted method call aligns end with the splat operator registers an offense and corrects misaligned end braces when there is an assignment chain registers an offense for an end aligned with the 2nd variable accepts end aligned with the first variable on an arithmetically negated method call aligns end with the - operator registers an offense and corrects when the block is a logical operand accepts a correctly aligned block end when configured to align with do errors when start_of_line aligned allows when do aligned RuboCop::Cop::Naming::HeredocDelimiterNaming with a non-interpolated heredoc when using double quoted delimiters registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter when using back tick delimiters registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter when using non-word delimiters registers an offense when using single quoted delimiters registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter with multiple heredocs starting on the same line registers an offense with a leading non-meaningful delimiter registers an offense with a trailing non-meaningful delimiter does not register an offense with meaningful delimiters when the delimiter contains non-letter characters does not register an offense when delimiter contains a number does not register an offense when delimiter contains an underscore with a naked heredoc does not register an offense with a meaningful delimiter registers an offense with a non-meaningful delimiter with an interpolated heredoc registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter with a squiggly heredoc registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter RuboCop::Cop::Bundler::InsecureProtocolSource registers an offense when using `source :rubyforge` registers an offense when using `source :rubygems` registers an offense when using `source :gemcutter` RuboCop::Cop::Layout::FirstMethodArgumentLineBreak ignores kwargs listed on a single line when the arguments are used in `super` ignores methods without arguments ignores arguments without parens ignores arguments listed on a single line registers an offense and corrects hash arg spanning multiple lines registers an offense and corrects hash arg without a line break before the first pair args listed on the first line registers an offense and corrects using `super` registers an offense and corrects registers an offense and corrects using safe navigation operator RuboCop::Cop::Layout::SpaceBeforeFirstArg for method calls with parentheses accepts a method call with space after the left parenthesis accepts a method call without space for method calls without parentheses registers an offense and corrects method call with two spaces before the first arg registers an offense for method call with no spaces before the first arg accepts setter call accepts + operator auto-corrects missing space accepts a method call with one space before the first arg accepts multiple space containing line break when AllowForAlignment is true accepts method calls with aligned first arguments when AllowForAlignment is false registers an offense and corrects method calls with aligned first arguments when a vertical argument positions are aligned registers an offense auto-corrects missing space when using safe navigation operator registers an offense and corrects method call with two spaces before the first arg RuboCop::Cop::Style::NestedModifier registers one offense for more than two modifiers does not add redundant parentheses in auto-correction auto-corrects if + if auto-corrects unless + if adds parentheses when needed in auto-correction auto-corrects unless + unless auto-corrects if + unless adds parentheses to method arguments when needed in auto-correction auto-corrects unless with a comparison operator + if until behaves like not correctable does not auto-correct when until is the inner modifier does not auto-correct when until is the outer modifier while behaves like not correctable does not auto-correct when while is the outer modifier does not auto-correct when while is the inner modifier RuboCop::Cop::Style::RedundantRegexpEscape with a single-line `//` regexp with a free-spaced mode regex with redundant escape preceded by an escaped comment registers offenses and corrects with a commented [ and ] does not register an offense with a commented redundant escape does not register an offense with a commented redundant escape on a single line does not register an offense with an escaped 'o' inside a character class does not register an offense with an escaped 'P{alpha}' outside a character class does not register an offense with an interpolation followed by redundant escapes registers offenses and corrects with an escaped 'i' inside a character class does not register an offense with an escaped 'J' inside a character class does not register an offense with an escaped 'g' inside a character class does not register an offense with an escaped 'z' outside a character class does not register an offense with an escaped 't' outside a character class does not register an offense with an escaped 'J' outside a character class does not register an offense with an escaped 'I' inside a character class does not register an offense with an escaped '$' outside a character class does not register an offense with an escaped 'S' inside a character class does not register an offense with an escaped 'P{alpha}' inside a character class does not register an offense with a POSIX character class then disallowed escape inside a character class registers an offense and corrects with an escaped 'y' inside a character class does not register an offense with an escaped 'v' outside a character class does not register an offense with an escaped ' ' inside a character class does not register an offense with an escaped 'U' outside a character class does not register an offense with an escaped 'i' outside a character class does not register an offense with an escaped 'T' inside a character class does not register an offense with an escaped . inside a character class beginning with : registers an offense and corrects with an escaped 'q' inside a character class does not register an offense with multiple escaped metachars inside a character class registers offenses and corrects with an escaped 'o' outside a character class does not register an offense with an escaped '}' outside a character class does not register an offense with an escaped '#' outside a character class does not register an offense with an escaped 'p{alpha}' inside a character class does not register an offense with an escaped 'cc' outside a character class does not register an offense with an escaped '-' outside a character class registers an offense and corrects with an escaped 'm' inside a character class does not register an offense with an escaped 'l' inside a character class does not register an offense with a nested character class then allowed escape does not register an offense with an escaped 'x41' inside a character class does not register an offense with an interpolated unnecessary-escape regexp registers an offense and corrects with an escaped 'O' outside a character class does not register an offense with an escaped 'u0041' outside a character class does not register an offense with an escaped 'B' inside a character class does not register an offense with escaped slashes does not register an offense with an escaped 'p{alpha}' outside a character class does not register an offense with an escaped '.' outside a character class does not register an offense with an escaped 'V' inside a character class does not register an offense with an escaped 's' inside a character class does not register an offense with an escaped 'A' inside a character class does not register an offense with an escaped 'h' inside a character class does not register an offense with an escaped 'G' inside a character class does not register an offense with an escaped 'e' inside a character class does not register an offense with an escaped 'h' outside a character class does not register an offense with an escaped '[' inside a character class does not register an offense with an escaped 'm' outside a character class does not register an offense with an escaped 'K' inside a character class does not register an offense with an escaped 'u{0041}' outside a character class does not register an offense with an escape inside an interpolated string does not register an offense with an escaped 'a' inside a character class does not register an offense with an escaped 'Y' inside a character class does not register an offense with an escaped 'F' inside a character class does not register an offense with an escaped 'y' outside a character class does not register an offense with an escaped '^' outside a character class does not register an offense with an escaped 'M-a' outside a character class does not register an offense with an escaped '+' outside a character class does not register an offense with an escaped 'F' outside a character class does not register an offense with an escaped 'e' outside a character class does not register an offense with an escaped 'Q' inside a character class does not register an offense with an escaped 'C-c' inside a character class does not register an offense with an escaped 'Z' outside a character class does not register an offense with an escaped 'V' outside a character class does not register an offense with an escaped 'E' inside a character class does not register an offense with an escaped 'd' outside a character class does not register an offense with an escaped 'q' outside a character class does not register an offense with an escaped 'A' outside a character class does not register an offense with a character class and following escaped char does not register an offense with an escaped 'X' outside a character class does not register an offense with an escaped 'b' inside a character class does not register an offense with an escaped 'u0041' inside a character class does not register an offense with an escaped 'L' outside a character class does not register an offense with an escaped '*' inside a character class registers an offense and corrects with an escaped 'S' outside a character class does not register an offense with an escaped character class and following escaped char does not register an offense with regexp options and a redundant escape registers offenses and corrects with an escaped 'l' outside a character class does not register an offense with an escaped '?' outside a character class does not register an offense with an escaped ')' inside a character class registers an offense and corrects with an escaped 'n101' outside a character class does not register an offense with an escaped 'Q' outside a character class does not register an offense with an escaped 'r' outside a character class does not register an offense with an escaped '*' outside a character class does not register an offense with an escaped 'a' outside a character class does not register an offense with an escaped 'N' inside a character class does not register an offense with an escaped 'B' outside a character class does not register an offense with an escaped ' ' outside a character class does not register an offense with an escaped 'r' inside a character class does not register an offense with an escaped 'W' outside a character class does not register an offense with an escaped '\' outside a character class does not register an offense with an escaped '(' inside a character class registers an offense and corrects with an escaped '^' inside a character class does not register an offense with an escaped '-' inside a character class does not register an offense with an escaped 'E' outside a character class does not register an offense with an escaped 'O' inside a character class does not register an offense with an escaped '$' inside a character class registers an offense and corrects with an escaped 'G' outside a character class does not register an offense with an escaped 'Y' outside a character class does not register an offense with an escaped 'k' inside a character class does not register an offense with an escaped 'u{0041}' inside a character class does not register an offense with an escaped 'cc' inside a character class does not register an offense with an escaped '?' inside a character class registers an offense and corrects with an escaped 'v' inside a character class does not register an offense with an escaped 'X' inside a character class does not register an offense with an escaped 'C-c' outside a character class does not register an offense with an uppercase metacharacter inside a character class does not register an offense with an escaped 'D' inside a character class does not register an offense with an escaped 'K' outside a character class does not register an offense with an escaped 'L' inside a character class does not register an offense with an escaped 'D' outside a character class does not register an offense with an escaped 'w' outside a character class does not register an offense with an escaped '+' inside a character class registers an offense and corrects with an escaped '\' inside a character class does not register an offense with an escaped 'H' inside a character class does not register an offense with an escaped 'W' inside a character class does not register an offense with an escaped ']' outside a character class does not register an offense with an escaped 'M-a' inside a character class does not register an offense with a backreference does not register an offense with an escaped '{' outside a character class does not register an offense with an escaped 'z' inside a character class does not register an offense with an escaped 'j' inside a character class does not register an offense with an escaped 'H' outside a character class does not register an offense with an escaped 'U' inside a character class does not register an offense with an escaped 'x41' outside a character class does not register an offense with an escaped 'n101' inside a character class does not register an offense with an escaped ']' inside a character class does not register an offense with an escaped 's' outside a character class does not register an offense with an escaped interpolation outside a character class does not register an offense with an escaped '#' inside a character class does not register an offense with an escaped ')' outside a character class does not register an offense without escapes does not register an offense with an escaped interpolation inside a character class does not register an offense with an escaped 'g' outside a character class does not register an offense with a POSIX character class then allowed escape inside a character class does not register an offense with an escaped 'N' outside a character class does not register an offense with an escaped 'f' inside a character class does not register an offense with an escaped 'Z' inside a character class does not register an offense with an escaped 'w' inside a character class does not register an offense with an escaped 'b' outside a character class does not register an offense with an escaped 't' inside a character class does not register an offense with a nested character class containing redundant escape registers an offense and corrects with an uppercase metacharacter outside a character class does not register an offense with an escaped '[' outside a character class does not register an offense with an escaped 'R' outside a character class does not register an offense with an escaped '}' inside a character class registers an offense and corrects with an escaped '|' inside a character class registers an offense and corrects with an escaped '{' inside a character class registers an offense and corrects with an escaped 'f' outside a character class does not register an offense with an escaped 'd' inside a character class does not register an offense with an escaped 'j' outside a character class does not register an offense with an escaped 'T' outside a character class does not register an offense with an escaped 'R' inside a character class does not register an offense with an escaped '(' outside a character class does not register an offense with an escaped 'k' outside a character class does not register an offense with an escaped 'I' outside a character class does not register an offense with an escaped '|' outside a character class does not register an offense with an escaped '.' inside a character class registers an offense and corrects with a single-line %r{} regexp without escapes does not register an offense with an escaped { or } inside a character class does not register an offense with an escaped { or } outside a character class does not register an offense with redundantly-escaped slashes registers an offense and corrects with a single-line %r// regexp with escaped slashes does not register an offense without escapes does not register an offense with a multi-line %r{} regexp with redundantly-escaped slashes registers an offense and corrects without escapes does not register an offense with a redundant escape after a line with comment registers an offense and corrects with a multi-line %r// regexp with escaped slashes does not register an offense without escapes does not register an offense with a single-line %r^^ regexp without escapes does not register an offense with escaped delimiters and regexp options does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense with a single-line %r!! regexp without escapes does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense with escaped delimiters outside a character-class does not register an offense with a single-line %r() regexp without escapes does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense with a single-line %r<> regexp without escapes does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense with a single-line %r~~ regexp with escaped delimiters and regexp options does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense without escapes does not register an offense with a single-line %r__ regexp with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense without escapes does not register an offense with escaped delimiters and regexp options does not register an offense with a single-line %r@@ regexp with escaped delimiters and regexp options does not register an offense without escapes does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense RuboCop::Cop::Style::MethodCalledOnDoEndBlock with a multi-line do..end block registers an offense for a chained call accepts it if there is no chained call accepts a chained block when using safe navigation operator registers an offense for a chained call with a {} block accepts a single-line block with a chained call accepts a multi-line block with a chained call with a single-line do..end block registers an offense for a chained call accepts a single-line do..end block with a chained block RuboCop::Cop::Lint::AmbiguousBlockAssociation behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense without parentheses without receiver registers an offense as a hash key registers an offense rspec expect {}.to change {} registers an offense with receiver registers an offense when using safe navigation operator registers an offense with assignment registers an offense RuboCop::Cop::Style::SlicingWithRange >= Ruby 2.6 reports no offense for other methods reports an offense for slicing from expression to ..-1 reports no offense for array with range inside reports no offense for excluding end reports an offense for slicing to ..-1 >= Ruby 2.7 reports no offense for startless <= Ruby 2.5 reports no offense for array slicing with -1 RuboCop::Cop::Style::For when each is the enforced style accepts def for registers an offense for opposite + correct style registers an offense for for accepts :for accepts multiline each auto-correct corrects a tuple of items changes for that does not have do or semicolon to each with range changes for to each changes for that does not have do or semicolon to each without parentheses changes for to each changes for that does not have do or semicolon to each when for is the enforced style accepts for registers an offense for each without an item and uses _ as the item registers an offense for correct + opposite style accepts single line each registers an offense for multiline each registers an offense for a tuple of items when using safe navigation operator does not break RuboCop::Runner #run when interrupted with SIGINT returns false #run with cops autocorrecting each-other if there is an offense in an inspected file aborts because of an infinite loop #run if there are no offenses in inspected files returns true if -s/--stdin is used with an offense sends the offense to a formatter returns false if a cop crashes does not call ResultCache#save if there is an offense in an inspected file sends the offense to a formatter returns false RuboCop::Cop::VariableForce::Assignment #name returns the variable name .new when an argument declaration node is passed raises error when any other type node is passed raises error when an assignment node is passed does not raise error #operator when it is ||= operator assignment returns ||= when it is &&= operator assignment returns &&= when it is normal assignment returns = when it is multiple assignment returns = when it is += operator assignment returns += #meta_assignment_node when it is ||= operator assignment returns or_asgn node when it is &&= operator assignment returns and_asgn node when it is += operator assignment returns op_asgn node when it is multiple assignment returns masgn node RuboCop::Cop::Layout::SpaceAfterSemicolon does not crash if semicolon is the last character of the file registers an offense and corrects semicolon without space after it inside block braces when EnforcedStyle for SpaceInsideBlockBraces is no_space accepts no space between a semicolon and a closing brace behaves like common behavior accepts a space between a semicolon and a closing brace when EnforcedStyle for SpaceInsideBlockBraces is space registers an offense and corrects no space between a semicolon and a closing brace behaves like common behavior accepts a space between a semicolon and a closing brace RuboCop::Cop::Style::RaiseArgs when enforced style is compact accepts a raise with an exception argument accepts a raise with msg argument with a raise with 3 args reports an offense when used in a logical and expression registers an offense and auto-corrects with a raise with 2 args reports an offense with correct + opposite reports an offense when used in a ternary expression registers an offense and auto-corrects when used in a logical or expression registers an offense and auto-corrects when enforced style is exploded accepts a raise with 2 args accepts exception constructor with more than 1 argument accepts a raise with msg argument accepts exception constructor with keyword arguments accepts a raise with 3 args accepts a raise with splatted arguments with opposite + correct reports an offense for opposite + correct when an exception object is assigned to a local variable auto-corrects to exploded style with a raise with exception object when used in a ternary expression registers an offense and auto-corrects when used in a logical or expression registers an offense and auto-corrects when used in a logical and expression registers an offense and auto-corrects with one argument reports an offense with no arguments reports an offense RuboCop::Cop::Style::ConstantVisibility does not register an offense when passing a string to the visibility declaration does not register an offense in the top level scope when defining a constant in a class with a multi-statement body registers an offense when not using a visibility declaration registers an offense when there is no matching visibility declaration does not register an offense when using a visibility declaration with a single-statement body registers an offense when not using a visibility declaration when defining a constant in a module does not register an offense when using a visibility declaration registers an offense when not using a visibility declaration RuboCop::Cop::Lint::NestedMethodDefinition does not register offense for definition of method on local var does not register offense for nested definition inside ::Class.new registers an offense for a nested singleton method definition does not register offense for nested definition inside class_exec does not register offense for nested definition inside Module.new does not register offense for nested definition inside instance_eval does not register offense for nested definition inside class_eval does not register offense for nested definition inside Struct.new does not register an offense for a lambda definition inside method does not register offense for nested definition inside Class.new does not register offense for nested definition inside ::Struct.new registers an offense for a nested method definition does not register offense for nested definition inside class shovel does not register offense for nested definition inside module_eval does not register offense for nested definition inside module_exec registers an offense for a nested method definition inside lambda registers an offense for a nested class method definition does not register offense for nested definition inside instance_exec does not register offense for nested definition inside ::Module.new RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral accepts non array percent literals for W type and ["(", ")"] delimiters registers an offense for multiple spaces between items registers an offense for unnecessary spaces accepts literals without additional spaces accepts multi-line literals accepts literals with escaped and additional spaces accepts newlines and additional following alignment spaces accepts multi-line literals within a method accepts literals with escaped spaces for W type and ["!", "!"] delimiters accepts multi-line literals registers an offense for multiple spaces between items accepts newlines and additional following alignment spaces accepts literals with escaped spaces accepts literals without additional spaces accepts literals with escaped and additional spaces registers an offense for unnecessary spaces accepts multi-line literals within a method for W type and ["{", "}"] delimiters accepts newlines and additional following alignment spaces accepts multi-line literals registers an offense for unnecessary spaces accepts literals with escaped and additional spaces accepts literals without additional spaces accepts multi-line literals within a method accepts literals with escaped spaces registers an offense for multiple spaces between items for I type and ["{", "}"] delimiters registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces accepts multi-line literals accepts literals with escaped and additional spaces accepts literals without additional spaces registers an offense for multiple spaces between items accepts multi-line literals within a method accepts literals with escaped spaces for w type and ["(", ")"] delimiters accepts multi-line literals within a method accepts multi-line literals accepts literals with escaped spaces accepts literals without additional spaces registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces accepts literals with escaped and additional spaces registers an offense for multiple spaces between items for I type and ["!", "!"] delimiters accepts multi-line literals registers an offense for multiple spaces between items accepts literals with escaped spaces registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces accepts literals with escaped and additional spaces accepts multi-line literals within a method accepts literals without additional spaces for w type and ["[", "]"] delimiters registers an offense for multiple spaces between items registers an offense for unnecessary spaces accepts literals with escaped and additional spaces accepts newlines and additional following alignment spaces accepts literals with escaped spaces accepts literals without additional spaces accepts multi-line literals within a method accepts multi-line literals for i type and ["(", ")"] delimiters accepts literals without additional spaces registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces accepts multi-line literals accepts multi-line literals within a method registers an offense for multiple spaces between items accepts literals with escaped and additional spaces accepts literals with escaped spaces for i type and ["[", "]"] delimiters accepts literals with escaped spaces registers an offense for unnecessary spaces accepts literals without additional spaces registers an offense for multiple spaces between items accepts literals with escaped and additional spaces accepts multi-line literals accepts newlines and additional following alignment spaces accepts multi-line literals within a method for w type and ["{", "}"] delimiters registers an offense for multiple spaces between items accepts literals with escaped and additional spaces accepts multi-line literals within a method accepts multi-line literals accepts newlines and additional following alignment spaces registers an offense for unnecessary spaces accepts literals with escaped spaces accepts literals without additional spaces for I type and ["(", ")"] delimiters registers an offense for multiple spaces between items accepts multi-line literals accepts multi-line literals within a method accepts newlines and additional following alignment spaces accepts literals with escaped and additional spaces accepts literals without additional spaces accepts literals with escaped spaces registers an offense for unnecessary spaces for w type and ["!", "!"] delimiters registers an offense for unnecessary spaces accepts literals with escaped spaces accepts literals with escaped and additional spaces registers an offense for multiple spaces between items accepts literals without additional spaces accepts newlines and additional following alignment spaces accepts multi-line literals accepts multi-line literals within a method for i type and ["!", "!"] delimiters registers an offense for unnecessary spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces accepts literals with escaped and additional spaces registers an offense for multiple spaces between items accepts multi-line literals accepts literals with escaped spaces accepts literals without additional spaces for I type and ["[", "]"] delimiters accepts multi-line literals accepts literals with escaped and additional spaces accepts literals without additional spaces registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces registers an offense for multiple spaces between items accepts literals with escaped spaces accepts multi-line literals within a method for W type and ["[", "]"] delimiters accepts literals without additional spaces accepts literals with escaped and additional spaces accepts literals with escaped spaces registers an offense for multiple spaces between items accepts multi-line literals registers an offense for unnecessary spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces for i type and ["{", "}"] delimiters registers an offense for multiple spaces between items accepts literals with escaped spaces accepts literals with escaped and additional spaces accepts literals without additional spaces accepts newlines and additional following alignment spaces accepts multi-line literals accepts multi-line literals within a method registers an offense for unnecessary spaces RuboCop::Cop::Style::GuardClause doesn't register an error if condition has multiple lines registers an error with next in the else branch registers an error if non-control-flow branch has multiple lines doesn't register an error if control flow expr has multiple lines does not report an offense if raise "error" is inside elsif registers an offense when using `and return` in `then` branch doesn't register an error if condition has multiple lines does not report an offense if return is inside elsif does not register an offense when assigning the result of a guard condition with `else` doesn't register an error if condition has multiple lines does not report an offense if next is inside elsif registers an error with raise "error" in the else branch registers an error with return in the else branch does not report an offense if next is inside if..elsif..else..end does not report an offense if break is inside elsif does not report an offense if return is inside if..elsif..else..end registers an error if non-control-flow branch has multiple lines doesn't register an error if control flow expr has multiple lines registers an offense when using `|| raise` in `then` branch registers an error if non-control-flow branch has multiple lines registers an error with break in the else branch doesn't register an error if condition has multiple lines registers an error with return in the if branch registers an error if non-control-flow branch has multiple lines accepts a method which body is if / unless with else accepts a method which body does not end with if / unless doesn't register an error if control flow expr has multiple lines does not report an offense if body is if..elsif..end registers an offense when using `|| raise` in `else` branch registers an offense when using `and return` in `else` branch doesn't report an offense if condition has multiple lines does not report an offense if break is inside if..elsif..else..end accepts a method whose body is a modifier if / unless doesn't register an error if control flow expr has multiple lines registers an error with next in the if branch registers an error with break in the if branch does not report an offense if raise "error" is inside if..elsif..else..end accepts a method with empty parentheses as its body registers an error with raise "error" in the if branch behaves like reports offense reports an offense if method body ends with if / unless without else reports an offense if method body is if / unless without else MinBodyLength: 4 accepts a method whose body has 3 lines with Metrics/MaxLineLength enabled registers an offense with non-modifier example code if too long for single line MinBodyLength: 1 reports an offense for if whose body has 1 line method in module registers an offense for singleton methods registers an offense for instance method with Metrics/MaxLineLength disabled registers an offense with modifier example code regardless of length behaves like reports offense reports an offense if method body is if / unless without else reports an offense if method body ends with if / unless without else Invalid MinBodyLength fails with an error RuboCop::Cop::Lint::SafeNavigationConsistency allows && without safe navigation registers an offense and corrects when there is code before or after the condition registers an offense and corrects using unsafe navigation and the safe navigation appears in a group registers an offense and corrects using safe navigation on the right of || registers an offense and corrects assignment registers an offense and corrects using safe navigation on the left of && registers an offense and corrects using safe navigation on the left of || registers an offense and corrects unsafe navigation that appears before safe navigation allows calls to methods that nil responds to registers and corrects multiple offenses allows || without safe navigation registers an offense and corrects using safe navigation on the right of && registers an offense and corrects using safe navigation inside of separated conditions registers an offense and corrects using unsafe navigation with grouped conditions registers an offense but does not correct non dot method calls registers a single offense and corrects when safe navigation is used multiple times registers an offense and corrects using unsafe navigation with both && and || registers an offense and corrects using safe navigation in conditions on the right hand side allows safe navigation when different variables are used RuboCop::Cop::InternalAffairs::MethodNameEqual does not register an offense when using `#method?` registers an offense when using `#method == other_node.do_something` registers an offense when using `#method == :do_something` RuboCop::Cop::Style::StabbyLambdaParentheses require_parentheses does not register an offense for a stabby lambda with parentheses registers an offense for a stabby lambda without parentheses behaves like common does not check a stabby lambda without arguments does not check the old lambda syntax does not check a method call named lambda require_no_parentheses registers an offense for a stabby lambda with parentheses behaves like common does not check a stabby lambda without arguments does not check a method call named lambda does not check the old lambda syntax RuboCop::Cop::Style::NilComparison configured with predicate preferred registers an offense for === nil registers an offense for == nil configured with comparison preferred registers an offense for nil? RuboCop::Formatter::JUnitFormatter #file_finished displays start of parsable text displays an offfense for `classname='test_1` in parsable text displays a non-offfense element in parsable text displays an offfense for `classname='test_2` in parsable text displays end of parsable text RuboCop::Cop::Style::RedundantRegexpCharacterClass with a character class containing a character requiring escape outside does not register an offense with a character class containing a space when using free-spaced mode with a commented single-element character class does not register an offense with a single space character class does not register an offense with /iux does not register an offense with /ix does not register an offense with only /x with an unnecessary-character-class after a comment registers an offense and corrects when not using free-spaced mode registers an offense and corrects with an array index inside an interpolation does not register an offense with multiple character classes containing single characters registers an offense and corrects with a character class containing a single unicode character property registers an offense and corrects with consecutive escaped square brackets inside a character class does not register an offense with a character class containing a single unicode code-point registers an offense and corrects with a character class containing a single negated unicode character property registers an offense and corrects with a character class containing a negated-space meta-character registers an offense and corrects with an interpolated unnecessary-character-class regexp registers an offense and corrects with a negated character class with a single element does not register an offense with a character class containing an escaped-# registers an offense and corrects with a character class containing escaped character requiring escape outside registers an offense and corrects with consecutive escaped square brackets does not register an offense with a character class containing two characters does not register an offense with a character class with first element an escaped ] does not register an offense with a character class containing an escaped ] registers an offense and corrects with a character class containing an escaped-b does not register an offense with escaped square brackets surrounding a single character does not register an offense with a character class containing an interpolation does not register an offense with a character class containing a single character registers an offense and corrects with a character class containing a space meta-character registers an offense and corrects with a character class containing an escaped [ registers an offense and corrects RuboCop::Cop::Lint::FlipFlop registers an offense for inclusive flip-flops registers an offense for exclusive flip-flops RuboCop::Formatter::Colorizable #magenta invokes #colorize(string, magenta #cyan invokes #colorize(string, cyan #white invokes #colorize(string, white #black invokes #colorize(string, black #blue invokes #colorize(string, blue #green invokes #colorize(string, green #colorize when the global Rainbow.enabled is false and the formatter's output is a tty does nothing and the formatter's output is not a tty does nothing when the global Rainbow.enabled is true and output is not a tty, but --color option was provided colorizes the passed string and the formatter's output is not a tty does nothing and the formatter's output is a tty colorizes the passed string #yellow invokes #colorize(string, yellow #red invokes #colorize(string, red RuboCop::Cop::Layout::MultilineHashBraceLayout ignores implicit hashes ignores empty hashes ignores single-line hashes behaves like multiline literal brace layout method argument when arguments to a method and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace but no comment after the last element autocorrects the closing brace behaves like multiline literal brace layout trailing comma symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element behaves like multiline literal brace layout same_line style opening brace on same line as first element allows closing brace on same line as multi-line element detects closing brace on different line from multiline element allows closing brace on same line from last element autocorrects closing brace on different line as last element detects closing brace on different line from last element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace opening brace on separate line from first element detects closing brace on different line from last element allows closing brace on same line as last element allows closing brace on same line as last multiline element autocorrects closing brace on different line from last element heredoc auto-corrects safe heredoc offenses detects heredoc structures that are safe to add to ignores heredocs that could share a last line new_line style opening brace on same line as first element allows closing brace on different line from last element detects closing brace on same line as last element allows closing brace on different line from multi-line element detects closing brace on same line as last multiline element autocorrects closing brace on same line as last element opening brace on separate line from first element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element autocorrects closing brace on same line from last element detects closing brace on same line as last element symmetrical style opening brace on separate line from first element detects closing brace on same line as last element allows closing brace on separate line from last element autocorrects closing brace on same line from last element allows closing brace on separate line from last multiline element opening brace on same line as first element autocorrects closing brace on different line from last element detects closing brace on different line from last element allows closing brace on same line as last multiline element allows closing brace on same line as last element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace RuboCop::Formatter::OffenseCountFormatter #report_summary when an offense is detected shows the cop and the offense count #file_finished when any offenses are detected increments the count for the cop in offense_counts when no offenses are detected does not add to offense_counts #finished when there are many offenses sorts by offense count first and then by cop name when output tty is true has a progresbar RuboCop::Cop::Style::EmptyBlockParameter registers an offense for an empty block parameter with do-end wtyle accepts a block that is do-end style without parameter accepts a block that is {} style without parameter registers an offense for an empty block parameter with {} style accepts an empty block parameter with a lambda accepts a non-empty block parameter with do-end style registers an offense for an empty block parameter with lambda registers an offense for an empty block parameter with super accepts a non-empty block parameter with {} style RuboCop::Cop::Style::MissingRespondToMissing allows method_missing and respond_to_missing? implemented as instance methods registers an offense when respond_to_missing? is not implemented registers an offense respond_to_missing? is implemented as a class method and method_missing is implemented as an instance method registers an offense respond_to_missing? is implemented as an instance method and method_missing is implemented as a class method allows method_missing and respond_to_missing? when defined with inline access modifier allows method_missing and respond_to_missing? implemented as class methods registers an offense when method_missing is implemented as a class methods allows method_missing and respond_to_missing? when defined with inline access modifier and method_missing is not qualified by inline access modifier RuboCop::Cop::Style::SingleArgumentDig dig over a variable as caller when using dig with splat operator does not register an offense with multiple arguments does not register an offense with single argument registers an offense and corrects unsuitable use of dig dig over literal with single argument registers an offense and corrects unsuitable use of dig when using dig with splat operator does not register an offense with multiple arguments does not register an offense when without a receiver does not register an offense RuboCop::Cop::Layout::SpaceInsideRangeLiteral accepts no space inside ... literal accepts multiline range literal with no space in it accepts complex range literal with space in it registers an offense in multiline range literal with space in it accepts no space inside .. literal registers an offense for space inside ... literal registers an offense for space inside .. literal RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage registers an offense when using `::RUBY_VERSION` registers an offense when using `RUBY_VERSION` does not register an offense when no `RUBY_VERSION` RuboCop::Cop::Layout::FirstArgumentIndentation when EnforcedStyle is consistent when IndentationWidth:Width is 2 accepts operator calls registers an offense and corrects lines affected by another offense accepts method calls with no arguments registers an offense and corrects an under-indented first argument accepts a first argument that is not preceded by a line break does not view []= as an outer method call registers an offense and corrects an over-indented first argument does not view chained call as an outer method call when the receiver contains a line break accepts a correctly indented first argument preceded by an empty line accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when preceded by a comment line accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when using safe navigation operator registers an offense and corrects an under-indented 1st argument for assignment accepts a correctly indented first argument and does not care about the second argument with line break accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when indentation width is overridden for this cop only registers an offense and corrects an over-indented first argument accepts a correctly indented first argument for method calls within method calls registers an offense and corrects an over-indented first argument accepts first argument indented relative to previous line when EnforcedStyle is consistent_relative_to_receiver when indentation width is overridden for this cop only accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 2 accepts a first argument that is not preceded by a line break does not view []= as an outer method call accepts method calls with no arguments registers an offense and corrects lines affected by other offenses accepts operator calls registers an offense and corrects an over-indented first argument registers an offense and corrects an under-indented first argument does not view chained call as an outer method call for assignment register an offense and corrects a correctly indented first argument and does not care about the second argument with line break accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when the receiver contains a line break accepts a correctly indented first argument preceded by an empty line accepts a correctly indented first argument registers an offense and corrects an over-indented 1st argument when preceded by a comment line registers an offense and corrects an under-indented first argument accepts a correctly indented first argument for method calls within method calls with outer parentheses indents all relative to the receiver registers an offense and corrects an over-indented 1st argument without outer parentheses accepts a first argument with special indentation indents all relative to the receiver when EnforcedStyle is special_for_inner_method_call_in_parentheses when indentation width is overridden for this cop only registers an offense and corrects an over-indented first argument accepts a correctly indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 2 registers an offense and corrects an under-indented first argument registers an offense and corrects lines affected by another offense accepts a first argument that is not preceded by a line break accepts method calls with no arguments does not view chained call as an outer method call accepts operator calls registers an offense and corrects an over-indented first argument does not view []= as an outer method call for assignment accepts a correctly indented first argument and does not care about the second argument with line break registers an offense and corrects an under-indented first argument accepts a correctly indented first argument when the receiver contains a line break accepts a correctly indented first argument preceded by an empty line accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when preceded by a comment line accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when using safe navigation operator registers an offense and corrects an under-indented 1st argument for method calls within method calls with outer parentheses accepts a correctly indented first argument with fullwidth characters registers an offense and corrects an under-indented first argument accepts a correctly indented first argument in interpolation registers an offense and corrects an over-indented first argument without outer parentheses accepts a first argument with consistent style indentation when EnforcedStyle is special_for_inner_method_call when indentation width is overridden for this cop only accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 2 does not view []= as an outer method call accepts method calls with no arguments registers an offense and corrects an over-indented first argument registers an offense and corrects an under-indented first argument accepts a first argument that is not preceded by a line break accepts operator calls registers an offense and corrects lines affected by another offense does not view chained call as an outer method call for assignment accepts a correctly indented first argument and does not care about the second argument with line break accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when the receiver contains a line break accepts a correctly indented first argument preceded by an empty line accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when preceded by a comment line accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when using safe navigation operator registers an offense and corrects an under-indented 1st argument for method calls within method calls without outer parentheses accepts a first argument with special indentation with outer parentheses registers an offense and corrects an over-indented first argument RuboCop::Cop::Style::DefWithParentheses reports an offense for def with empty parens accepts empty parentheses in one liners accepts def with arg and parens reports an offense for class def with empty parens RuboCop::Cop::Layout::MultilineOperationIndentation when EnforcedStyle is indented accepts two spaces indentation in assignment of array element registers an offense and corrects wrong indentation of for expression registers an offense for a 2 space indentation of until condition accepts any indentation of parameters to #[] registers an offense and corrects no indentation of second line registers an offense and corrects aligned code on LHS of equality operator accepts indented operands in if condition registers an offense and corrects an unindented multiline operation that is the left operand in another operation registers an offense and corrects aligned operands in if conditions accepts two spaces indentation in assignment of local variable does not check method calls accepts indented operands in unless body accepts normal indentation inside grouped expression accepts normal indentation of method parameters registers an offense for a 2 space indentation of while condition accepts indented operands in if body accepts indentation of next unless condition accepts double indentation of while condition accepts indented operands inside and outside a block registers an offense for a 2 space indentation of if condition registers an offense and corrects three space indentation of second line registers an offense and corrects aligned operators in assignment accepts indented operands in for body accepts any indentation of method parameters accepts an expression where the first operand spans multiple lines registers an offense and corrects correct + unrecognized style accepts double indentation of if condition registers an offense and corrects one space indentation of second line accepts special indentation of for expression accepts indented operands in ordinary statement accepts unary operations registers an offense and corrects emacs ruby-mode 1.1 indentation of an expression in an array accepts no extra indentation of third line accepts the indentation of a broken string registers an offense and corrects extra indentation of third line accepts two spaces indentation of second line accepts alignment inside a grouped expression accepts indented operands in while body accepts double indentation of until condition accepts double indentation of unless condition accepts indentation of return if condition accepts indentation of next if condition accepts indentation of return unless condition accepts indented operands in until body accepts indentation of assignment registers an offense for a 2 space indentation of unless condition accepts indented operands in an array when indentation width is overridden for this cop registers an offense and corrects registers an offense for a 4 space indentation of if condition accepts indented operands in while body accepts indentation of unless condition which is offset by a single normal indentation step accepts indented operands in unless body accepts indented operands in until body accepts indented operands in if body registers an offense for a 4 space indentation of until condition accepts indentation of until condition which is offset by a single normal indentation step registers an offense for a 4 space indentation of unless condition accepts indentation of while condition which is offset by a single normal indentation step accepts indentation of if condition which is offset by a single normal indentation step registers an offense for a 4 space indentation of while condition accepts indented operands in if condition when EnforcedStyle is aligned registers an offense and corrects three space indentation of second line registers an offense and corrects misaligned string operand when plus is used accepts two spaces indentation in assignment of array element registers an offense and corrects unaligned operands in op-assignment registers an offense for misaligned operands in unless condition accepts aligned operands in if condition accepts indented operands with ternary operators registers an offense and corrects misaligned operands in unless condition registers an offense and corrects indented operand in second argument registers an offense and corrects extra indentation of third line accepts alignment inside a grouped expression accepts unary operations accepts no extra indentation of third line accepts aligned or:ed operands in assignment registers an offense and corrects emacs ruby-mode 1.1 indentation of an expression in an array accepts indented code on LHS of equality operator does not check method calls registers an offense for misaligned operands in until condition accepts indented operands in for body accepts indented operands in an array accepts two spaces indentation in assignment of local variable registers an offense and corrects one space indentation of second line accepts indented operands in ordinary statement accepts aligned operands in assignment registers an offense and corrects an unindented multiline operation that is the left operand in another operation accepts any indentation of parameters to #[] registers an offense and corrects indented second part of string registers an offense and corrects indented operands in if condition registers an offense and corrects no indentation of second line accepts an expression where the first operand spans multiple lines registers an offense for misaligned operands in while condition accepts indented operands inside and outside a block accepts indented operands inside block + assignment registers an offense and corrects misaligned string operand when the first operand has backslash continuation accepts two spaces indentation of second line registers an offense for misaligned operands in if condition RuboCop::Cop::Naming::BlockParameterName does not register for block without parameters can register multiple offenses in one block does not register offense for valid parameter names does not register for brace block without parameters registers offense when param contains uppercase characters registers offense when param is less than minimum length registers offense when param ends in number with AllowNamesEndingInNumbers accept params that end in numbers with AllowedNames accepts specified block param names registers unlisted offensive names with ForbiddenNames registers offense for param listed as forbidden accepts param that uses a forbidden name's letters RuboCop::Cop::Lint::LiteralInInterpolation handles nested interpolations when auto-correction accepts empty interpolation handles double quotes in single quotes when auto-correction handles backslach in double quotes when auto-correction handles backslach in single quotes when auto-correction accepts interpolation of xstr accepts interpolation of irange where endpoints are not literals accepts interpolation of erange where endpoints are not literals behaves like literal interpolation registers an offense only for final 1...2 in interpolation registers an offense for 1...2 in interpolation and removes interpolation around it removes interpolation around 1...2 when there is more text removes interpolation around multiple 1...2 when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 0o377 in interpolation and removes interpolation around it removes interpolation around 0o377 when there is more text removes interpolation around multiple 0o377 registers an offense only for final 0o377 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final 2.0 in interpolation registers an offense for 2.0 in interpolation and removes interpolation around it removes interpolation around 2.0 when there is more text removes interpolation around multiple 2.0 when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for %I[s1 s2] in interpolation and removes interpolation around it removes interpolation around multiple %I[s1 s2] removes interpolation around %I[s1 s2] when there is more text registers an offense only for final %I[s1 s2] in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 1_123 in interpolation and removes interpolation around it removes interpolation around 1_123 when there is more text registers an offense only for final 1_123 in interpolation removes interpolation around multiple 1_123 when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for %i[ s1 s2 ] in interpolation and removes interpolation around it removes interpolation around %i[ s1 s2 ] when there is more text removes interpolation around multiple %i[ s1 s2 ] registers an offense only for final %i[ s1 s2 ] in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for {"a" => "b"} in interpolation and removes interpolation around it removes interpolation around multiple {"a" => "b"} registers an offense only for final {"a" => "b"} in interpolation removes interpolation around {"a" => "b"} when there is more text when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like special keywords registers an offense and autocorrects interpolation after __END__ accepts strings like __END__ behaves like literal interpolation removes interpolation around multiple 1 registers an offense for 1 in interpolation and removes interpolation around it removes interpolation around 1 when there is more text registers an offense only for final 1 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like special keywords accepts strings like __ENCODING__ registers an offense and autocorrects interpolation after __ENCODING__ behaves like literal interpolation registers an offense for 123_456_789_123_456_789 in interpolation and removes interpolation around it removes interpolation around multiple 123_456_789_123_456_789 removes interpolation around 123_456_789_123_456_789 when there is more text registers an offense only for final 123_456_789_123_456_789 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple 0xaabb removes interpolation around 0xaabb when there is more text registers an offense for 0xaabb in interpolation and removes interpolation around it registers an offense only for final 0xaabb in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like non-special string literal interpolation registers an offense for 'foo' and removes the interpolation and quotes around 'foo' behaves like literal interpolation removes interpolation around multiple %w[v1 v2] registers an offense for %w[v1 v2] in interpolation and removes interpolation around it registers an offense only for final %w[v1 v2] in interpolation removes interpolation around %w[v1 v2] when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around ["a", "b"] when there is more text removes interpolation around multiple ["a", "b"] registers an offense only for final ["a", "b"] in interpolation registers an offense for ["a", "b"] in interpolation and removes interpolation around it when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around %w[v1] when there is more text registers an offense for %w[v1] in interpolation and removes interpolation around it registers an offense only for final %w[v1] in interpolation removes interpolation around multiple %w[v1] when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal in string-like contexts removes interpolation in backticks removes interpolation in symbols removes interpolation in regular expressions behaves like literal interpolation registers an offense only for final %w[] in interpolation removes interpolation around multiple %w[] removes interpolation around %w[] when there is more text registers an offense for %w[] in interpolation and removes interpolation around it when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final :"symbol" in interpolation removes interpolation around :"symbol" when there is more text registers an offense for :"symbol" in interpolation and removes interpolation around it removes interpolation around multiple :"symbol" when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 1.2e-3 in interpolation and removes interpolation around it removes interpolation around 1.2e-3 when there is more text removes interpolation around multiple 1.2e-3 registers an offense only for final 1.2e-3 in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like non-special string literal interpolation registers an offense for "foo" and removes the interpolation and quotes around "foo" behaves like special keywords registers an offense and autocorrects interpolation after __LINE__ accepts strings like __LINE__ behaves like literal interpolation removes interpolation around multiple false registers an offense for false in interpolation and removes interpolation around it removes interpolation around false when there is more text registers an offense only for final false in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple [] removes interpolation around [] when there is more text registers an offense for [] in interpolation and removes interpolation around it registers an offense only for final [] in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for :symbol in interpolation and removes interpolation around it removes interpolation around :symbol when there is more text removes interpolation around multiple :symbol registers an offense only for final :symbol in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for -1 in interpolation and removes interpolation around it removes interpolation around multiple -1 registers an offense only for final -1 in interpolation removes interpolation around -1 when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final nil in interpolation removes interpolation around multiple nil registers an offense for nil in interpolation and removes interpolation around it removes interpolation around nil when there is more text when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple true registers an offense only for final true in interpolation registers an offense for true in interpolation and removes interpolation around it removes interpolation around true when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like special keywords accepts strings like __FILE__ registers an offense and autocorrects interpolation after __FILE__ behaves like literal interpolation registers an offense for %i[s1 s2] in interpolation and removes interpolation around it removes interpolation around %i[s1 s2] when there is more text removes interpolation around multiple %i[s1 s2] registers an offense only for final %i[s1 s2] in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 1..2 in interpolation and removes interpolation around it removes interpolation around 1..2 when there is more text removes interpolation around multiple 1..2 registers an offense only for final 1..2 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around %i[s1 s2] when there is more text registers an offense for %i[s1 s2] in interpolation and removes interpolation around it registers an offense only for final %i[s1 s2] in interpolation removes interpolation around multiple %i[s1 s2] when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal RuboCop::Cop::Lint::RedundantCopDisableDirective .check when there are no disabled lines returns no offense when there are disabled lines and there are no offenses and a comment disables itself and another cop disabled on the same range returns no offense disabled on different ranges returns no offense and the other cop is disabled a second time returns no offense an unknown cop returns an offense multiple cops, with abbreviated names one of them has offenses returns an offense itself and all cops disabled on different ranges returns no offense comment is not at the beginning of the file and not all cops have offenses returns an offense multiple cops, and the leftmost one has no offenses returns an offense one cop returns an offense all cops returns an offense misspelled cops returns an offense multiple cops, and one of them has offenses returns an offense multiple cops returns an offense and there are two offenses and a comment disables one cop twice returns an offense one cop and then all cops returns an offense and there is an offense and a comment disables that cop but on other lines returns an offense that cop returns no offense all cops returns no offense RuboCop::Cop::Layout::FirstArrayElementLineBreak ignores properly formatted implicit arrays ignores elements listed on a single line word arrays autocorrects the offense detects the offense array nested in a method call autocorrects the offense registers ans offense masgn implicit arrays autocorrects the offense detects the offense elements listed on the first line registers an offense autocorrects the offense send implicit arrays autocorrects the offense detects the offense RuboCop::Cop::Lint::MissingSuper constructor does not register an offense for the class without parent class does not register an offense when there is a `super` call does not register an offense for the constructor-like method defined outside of a class does not register an offense for the class with stateless parent class registers an offense when no `super` call callbacks registers no offense when module callback without `super` call registers an offense for class level `method_missing?` with no `super` call does not register an offense when callback has a `super` call registers an offense when class callback without `super` call registers an offense when method callback is without `super` call registers an offense when class callback within `self << class` and without `super` call does not register an offense when `method_missing?` contains `super` call registers an offense for instance level `method_missing?` with no `super` call RuboCop::Cop::Style::RedundantSortBy autocorrects array.sort_by do |x| x end autocorrects array.sort_by { |x| x } autocorrects array.sort_by { |y| y } RuboCop::Cop::Gemspec::RequiredRubyVersion registers an offense when `required_ruby_version` is not specified target ruby version > 2.6 does not register an offense when `required_ruby_version` is specified with ~> without a patch version and equals `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with ~> and equals `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with >= without a minor version and is lower than `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with >= and equals `TargetRubyVersion` does not register an offense when lowest version of `required_ruby_version` equals `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with >= without a patch version and equals `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with ~> without a minor version and is lower than `TargetRubyVersion` target ruby version > 2.7 registers an offense when `required_ruby_version` is specified with ~> and is lower than `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with >= and is lower than `TargetRubyVersion` false negatives does not register an offense when `required_ruby_version` is assigned as a variable (an array of string literal) does not register an offense when `required_ruby_version` is assigned as a variable (string literal) target ruby version > 2.5 registers an offense when `required_ruby_version` is specified with >= and is higher than `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with ~> and is higher than `TargetRubyVersion` RuboCop::Cop::Metrics::Utils::AbcSizeCalculator #calculate with a yield is expected to eq "<0, 1, 0>" with a known iterating block is expected to eq "<2, 4, 2>" with .foo = is expected to eq "<1, 2, 0>" if and arithmetic operations is expected to eq "<2, 8, 4>" same but with 7 arguments is expected to eq "<9, 3, 0>" with ||= is expected to eq "<2, 0, 1>" multiple calls with return is expected to eq "<0, 3, 0>" method with arguments is expected to eq "<4, 0, 0>" with []= is expected to eq "<2, 1, 0>" same with extra condition is expected to eq "<2, 9, 5>" with unused assignments is expected to eq "<2, 1, 0>" with &&= is expected to eq "<2, 0, 1>" elsif vs else if else if is expected to eq "<0, 5, 4>" elsif is expected to eq "<0, 5, 3>" assignment with ternary operator is expected to eq "<2, 6, 2>" with a for is expected to eq "<2, 1, 1>" with &.foo is expected to eq "<0, 4, 2>" with repeated lvar receivers is expected to eq "<3, 5, 3>" with a block is expected to eq "<2, 3, 0>" multiple assignment is expected to eq "<3, 1, 0>" RuboCop::Cop::Style::OneLineConditional parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains `next` keyword parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains a self keyword does not parenthesize expressions when they do not contain method calls with unparenthesized arguments parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator allows one line if/then/end does not break when one of the branches contains a break keyword parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains a retry keyword parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not parenthesize expressions when they contain unparenthesized operator method calls allows one line unless/then/end behaves like changed precedence adds parentheses around `a and b` behaves like changed precedence adds parentheses around `super b` one line if/then/else/end allows empty else registers an offense behaves like changed precedence adds parentheses around `a or b` behaves like changed precedence adds parentheses around `a ? b : c` behaves like changed precedence adds parentheses around `yield a` one line if/then/else/end when `then` branch has no body registers an offense behaves like changed precedence adds parentheses around `a = b` behaves like changed precedence adds parentheses around `puts 1` behaves like changed precedence adds parentheses around `defined? :A` behaves like changed precedence adds parentheses around `not a` one line unless/then/else/end registers an offense allows empty else RuboCop::Cop::Style::Proc accepts the ::Proc.new call without block registers an offense for ::Proc.new accepts the Proc.new call without block registers an offense for a Proc.new call RuboCop::Cop::Layout::FirstHashElementLineBreak ignores implicit hashes in method calls without parens registers an offense and corrects elements listed on the first line ignores implicit hashes in method calls that are improperly formatted ignores implicit hashes in method calls with parens ignores elements listed on a single line registers an offense and corrects hash nested in a method call RuboCop::Formatter::TextUtil pluralize will not pluralize 1 will change 0 to no when configured will not change 0 to no will pluralize negative quantities less than -1 will pluralize -1 will pluralize fractions will pluralize quantities greater than 1 RuboCop::Cop::Style::SpecialGlobalVars when style is use_perl_names auto-corrects #{$LOAD_PATH} to #$: registers an offense for $PID registers an offense for $LOADED_FEATURES registers an offense for $LOAD_PATH registers an offense for $PROCESS_ID does not register an offense for backrefs like $1 registers an offense for $PROGRAM_NAME auto-corrects $INPUT_RECORD_SEPARATOR to $/ when style is use_english_names auto-corrects #$: to #{$LOAD_PATH} auto-corrects $/ to $INPUT_RECORD_SEPARATOR registers an offense for $: generates correct auto-config when mixed styles are used is clear about variables from the English library vs those not does not register an offense for backrefs like $1 auto-corrects #{$!} to #{$ERROR_INFO} registers an offense for $" generates correct auto-config when Perl variable names are used registers an offense for $0 registers an offense for $$ RuboCop::Cop::Layout::EmptyLinesAroundArguments when no extra lines accepts method with no arguments that trails off block accepts block argument with empty line accepts multiple listed mixed args accepts method with argument that trails off block accepts method with argument that trails off heredoc accepts listed args starting on definition line accpets one line methods with multiple arguments ignores empty lines inside of method arguments with one argument ignores empty lines inside of method arguments when extra lines registers and autocorrects offense for empty line after arg registers and autocorrects offense on correct line for single offense example registers and autocorrects offense for empty line before arg registers and autocorrects offense when empty line between normal arg & block arg registers and autocorrects offense on correct lines for multi-offense example registers and autocorrects offenses when multiple empty lines are detected registers and autocorrects offense for empty line between args registers and autocorrects offense when args start on definition line registers autocorrects empty line whetn args start on definition line when using safe navigation operator registers and autocorrects offense for empty line before arg RuboCop::Cop::Naming::MemoizedInstanceVariableName with default EnforcedStyleForLeadingUnderscores => disallowed memoized variable after other code does not match method name registers an offense for a predicate method registers an offense registers an offense for a bang method memoized variable matches method name does not register an offense does not register an offense with a leading `_` for both names does not registers an offense when method has leading `_` memoized variable matches predicate method name does not register an offense memoized variable matches bang method name does not register an offense code follows memoized variable assignment does not register an offense instance variables in initialize methods does not register an offense memoized variable after other code does not register an offense non-memoized variable does not match method name does not register an offense memoized variable matches method name during assignment does not register an offense memoized variable matches method name for block does not register an offense memoized variable does not match method name during assignment registers an offense memoized variable does not match class method name registers an offense memoized variable does not match method name registers an offense memoized variable does not match method name for block registers an offense EnforcedStyleForLeadingUnderscores: optional memoized variable matches method name does not register an offense with a leading `_` for method name does not register an offense with a leading `_` for both names does not register an offense without a leading underscore does not register an offense with a leading underscore EnforcedStyleForLeadingUnderscores: required registers an offense when names match but missing a leading _ registers an offense when it has leading `_` but names do not match does not register an offense with a leading `_` for both names RuboCop::Cop::Lint::Void registers an offense for void op < if not on last line registers an offense for void sign op + if not on last line accepts void unary op - by itself without a begin block accepts void op >= by itself without a begin block handles empty block accepts void op * if on last line registers an offense for void unary op ! if not on last line registers two offenses for void literals in a `for` registers an offense for void op <=> if not on last line handles explicit begin blocks accepts void op < by itself without a begin block registers an offense for void op / if not on last line handles `#each` block with single expression registers an offense for void lit /test/ if not on last line accepts void op * by itself without a begin block accepts percent-x commands accepts void op > if on last line registers an offense for void op > if not on last line registers an offense for void unary op ~ if not on last line accepts void op <=> if on last line accepts void op % if on last line registers an offense for void `defined?` if not on last line registers an offense for void literal in a method definition accepts void op <=> by itself without a begin block accepts void unary op + by itself without a begin block registers an offense for void op % if not on last line accepts void unary op ~ if on last line registers an offense for void op != if not on last line accepts void op - if on last line registers an offense for void op * if not on last line registers an offense for void var var if not on last line registers an offense for void var @var if not on last line accepts void unary op - if on last line registers two offenses for void literals in a setter method accepts void unary op + if on last line accepts void op > by itself without a begin block accepts void op + by itself without a begin block accepts void op === by itself without a begin block accepts void op >= if on last line accepts void op <= if on last line registers an offense for void var VAR if not on last line accepts void op / by itself without a begin block registers an offense for void op == if not on last line registers an offense for void op - if not on last line registers an offense for void lit {} if not on last line accepts void op == if on last line registers an offense for void op === if not on last line accepts void op <= by itself without a begin block registers two offenses for void literals in an initialize method accepts void unary op ~ by itself without a begin block registers an offense for void `self` if not on last line registers an offense for void lit 1 if not on last line registers an offense for void var @@var if not on last line accepts void op % by itself without a begin block accepts void op == by itself without a begin block accepts void op - by itself without a begin block accepts void op + if on last line registers an offense for void op <= if not on last line registers an offense for void lit 2.0 if not on last line accepts void unary op ! if on last line registers an offense for void sign op - if not on last line accepts void op != by itself without a begin block registers an offense for void op >= if not on last line registers two offenses for void literals in a `#each` method registers two offenses for void literals in `#tap` method accepts backtick commands registers an offense for void lit :test if not on last line accepts short call syntax registers an offense for void op + if not on last line registers an offense for void var $var if not on last line accepts void op < if on last line accepts void op != if on last line registers an offense for void lit [1] if not on last line accepts void unary op ! by itself without a begin block accepts void op / if on last line accepts void op === if on last line when checking for methods with no side effects registers an offense for chained methods registers an offense if not on last line when not checking for methods with no side effects does not register an offense for void nonmutating methods RuboCop::RemoteConfig .file does not download the file if cache lifetime has not been reached downloads the file if cache lifetime has been reached downloads the file if the file does not exist when the remote URL responds with not modified reuses the existing cached file when the network is inaccessible reuses the existing cached file when the remote URL responds with redirect follows the redirect and downloads the file when the remote URL responds with 500 raises error RuboCop::Formatter::JSONFormatter #file_finished adds value of #hash_for_file to #output_hash[:files] adds detected offense count in summary #finished outputs #output_hash as JSON sets inspected file count in summary #started sets target file count in summary #hash_for_file sets an array of #hash_for_offense values for :offenses key sets relative file path for :path key #hash_for_offense sets Offense#cop_name value for :cop_name key sets Offense#corrected? value for :corrected key sets Offense#severity value for :severity key sets value of #hash_for_location for :location key sets Offense#correctable? value for :correctable key sets Offense#message value for :message key #hash_for_location sets line value for :line key sets length value for :length key sets column value for :column key RuboCop::Cop::Lint::SelfAssignment registers an offense when using multiple var self-assignment through array registers an offense when using global var self-assignment registers an offense when using constant var self-assignment registers an offense when using class var self-assignment registers an offense when using instance var self-assignment does not register an offense when using multiple var assignment through splat does not register an offense when using class var assignment does not register an offense when using multiple var assignment through method call registers an offense when using local var self-assignment registers an offense when using shorthand-or var self-assignment does not register an offense when using multiple var assignment does not register an offense when using constant var assignment for constant from another scope does not register an offense when using shorthand-and var assignment does not register an offense when using instance var assignment does not register an offense when using local var assignment does not register an offense when using constant var or-assignment for constant from another scope does not register an offense when using shorthand-or var assignment does not register an offense when using global var assignment registers an offense when using shorthand-and var self-assignment registers an offense when using multiple var self-assignment RuboCop::StringInterpreter .interpret handles unicode handles hex handles extended unicode handles octal behaves like simple escape handles \\f behaves like simple escape handles \\t behaves like simple escape handles \\b behaves like simple escape handles \\r behaves like simple escape handles \\n behaves like simple escape handles \\a behaves like simple escape handles \\s behaves like simple escape handles \\v behaves like simple escape handles \\n behaves like simple escape handles \\e RuboCop::Cop::Style::MissingElse UnlessElse enabled given a case statement with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense given an if-statement with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense given an unless-statement with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense EmptyElse enabled and set to warn on empty given an if-statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense given an unless-statement with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense given a case statement with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense EmptyElse enabled and set to warn on nil given a case statement with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense given an unless-statement with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause with side-effects doesn't register an offense given an if-statement with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense configured to warn only on empty case given an if-statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense given an unless-statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense given a case statement with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense UnlessElse disabled given an if-statement with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense given a case statement with an else-clause with side-effects doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense given an unless-statement with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense configured to warn only on empty if given an if-statement with no else-clause registers an offense with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense given an unless-statement with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense given a case statement with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense with a completely empty else-clause doesn't register an offense RuboCop::Cop::Style::DateTime does not register an offense when using DateTime for historic date registers an offense when using DateTime for current time does not register an offense when using Time for current time registers an offense when using ::DateTime for current time does not register an offense when using ::DateTime for historic date registers an offense when using DateTime for modern date does not register an offense when using Date for modern date does not register an offense when using DateTime in another namespace when configured to allow #to_datetime does not register an offense when configured to not allow #to_datetime registers an offense RuboCop::Cop::Style::StringLiteralsInInterpolation configured with single quotes preferred accepts double quotes on a static string can handle character literals registers an offense for double quotes within embedded expression can handle a built-in constant parsed as string accepts double quotes on a broken static string registers an offense for double quotes within embedded expression in a heredoc string accepts double quotes on static strings within a method when configured with a bad value fails configured with double quotes preferred registers an offense for single quotes within embedded expression in a heredoc string registers an offense for single quotes within embedded expression RuboCop::Cop::Commissioner #investigate traverses the AST and invoke cops specific callbacks stores all errors raised by the cops when given a force passes the input params to all cops/forces that implement their own #investigate method when passed :raise_error option re-raises the exception received while processing when a cop reports offenses returns all offenses found by the cops when given a source with parsing errors only calls on_other_file RuboCop::Cop::Style::HashAsLastArrayItem when EnforcedStyle is braces does not register an offense when hash with braces does not register an offense when hash is not inside array registers an offense and corrects when hash without braces when EnforcedStyle is no_braces does not register an offense when hash is not inside array does not register an offense when hash without braces registers an offense and corrects when hash with braces RuboCop::Cop::Style::UnlessElse unless with nested if-else registers an offense unless with else registers an offense unless without else does not register an offense RuboCop::Cop::Layout::EmptyLineAfterGuardClause accepts a `raise` guard clause not followed by empty line when guard clause is after condition without method invocation accepts a guard clause followed by empty line when guard clause including heredoc registers an offense and corrects only the last guard clause registers an offense and corrects a next guard clause not followed by empty line when guard clause is after heredoc including string interpolation accepts a guard clause followed by end registers an offense and corrects a guard clause is before `begin` registers an offense and corrects a `raise` guard clause not followed by empty line when `unless` condition is after heredoc accepts multiple guard clauses registers an offense and corrects a guard clause not followed by empty line when guard clause including heredoc accepts a guard clause inside oneliner block registers an offense and corrects `next` guard clause not followed by empty line accepts using guard clause is after `raise` accpets a guard clause when the next line is `rescue`-`else` registers an offense and corrects a `raise` guard clause not followed by empty line when `if` condition is after heredoc accpets a guard clause that is after a multiline heredoc nested argument call accepts a guard clause when the next line is `rescue` registers an offense and corrects a `raise` guard clause not followed by empty line when guard clause is after method call with argument registers an offense and corrects when using `or return` before guard condition registers an offense and corrects a method starting with end_ registers an offense and corrects when using `and return` before guard condition accpets a guard clause when the next line is `ensure` accepta a guard clause after a single line heredoc accpets a guard clause when the next line is `elsif` registers an offense and corrects a guard clause that is a ternary operator accepta a guard clause that is after multiline heredoc accpets a guard clause that is after a multiline heredoc with chained calls registers an offense and corrects a guard clause not followed by empty line accepts modifier if accepts a modifier if when the next line is `end` accepts a guard clause when the next line is `else` RuboCop::Cop::Lint::ShadowedArgument method argument shadowing when a single argument is shadowed registers an offense when reassigning to splat variable does not register an offense when zsuper is used registers an offense when IgnoreImplicitReferences config option is set to true accepts when argument was shadowed by zsuper does not register an offense when argument was shadowed by zsuper registers an offense when argument was used in shorthand assignment does not register an offense when a splat argument is shadowed registers an offense and the argument is not used accepts and shadowed within a conditional registers an offense without specifying where the reassignment took place and the argument was not shadowed outside the conditional accepts and the conditional is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and was used before shadowing accepts and the conditional is nested within a lambda registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the conditional occurs after the reassignment registers an offense and shadowed within a block registers an offense without specifying where the reassignment took place and the argument was not shadowed outside the block accepts and the block occurs after the reassignment registers an offense and the block is nested within a block registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the block is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and was used before shadowing accepts when binding is used registers an offense when IgnoreImplicitReferences config option is set to true accepts when multiple arguments are shadowed and one of them shadowed within a lambda while another is shadowed outside registers an offense block argument shadowing when a block local variable is assigned but no argument is shadowed accepts when multiple arguments are shadowed and one of them shadowed within a lambda while another is shadowed outside registers an offense when a single argument is shadowed registers an offense and shadowed within a block registers an offense without specifying where the reassignment took place and the argument was not shadowed outside the block accepts and was used before shadowing accepts and the block is nested within a block registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the block occurs after the reassignment registers an offense and the block is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts when zsuper is used accepts when binding is used registers an offense when IgnoreImplicitReferences config option is set to true accepts and shadowed within a conditional registers an offense without specifying where the reassignment took place and was used before shadowing accepts and the conditional is nested within a lambda registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the conditional is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the argument was not shadowed outside the conditional accepts and the conditional occurs after the reassignment registers an offense and the argument is not used accepts RuboCop::Cop::Style::HashTransformKeys below Ruby 2.5 does not flag even if transform_keys could be used when using Ruby 2.5 or newer correctly autocorrects Hash[_.map{...}] correctly autocorrects _.map{...}.to_h without block does not flag each_with_object when key transformation uses value does not flag each_with_object when its receiver is array literal does not flag key transformation when receiver is array literal does not flag Hash[_.map{...}] when both key & value are transformed flags Hash[_.map{...}] when transform_keys could be used does not flag key transformation in the absence of to_h correctly autocorrects _.map{...}.to_h with block does not flag each_with_object when both key & value are transformed does not flag _.map{...}.to_h when both key & value are transformed does not flag each_with_object when its argument is not modified flags _.map{...}.to_h when transform_keys could be used when line break before `to_h` does not flag each_with_object when no transformation occurs flags _.map{...}.to_h when transform_keys could be used with inline block flags each_with_object when transform_keys could be used with multiline block flags each_with_object when transform_keys could be used with safe navigation operator flags each_with_object when transform_keys could be used RuboCop::Cop::Style::ColonMethodCall does not register an offense for op methods does not register an offense for Java static types does not register an offense for Java package namespaces does not register an offense for nested class registers an offense for instance method call does not register an offense for constant access registers an offense for class method call registers an offense for class method call with arg registers an offense for instance method call with arg does not register an offense when for constructor methods RuboCop::Cop::Naming::MethodParameterName does not register offense for empty kwrestarg can register multiple offenses in one method definition registers offense when parameter ends in number on class method does not register offense for valid default parameters does not register for method without parameters registers offense for offensive default parameter does not register offense for valid keyword parameters does not register offense for empty restarg registers offense when parameter ends in number registers offense when parameter contains uppercase characters does not register offense for valid parameter names registers offense when parameter is less than minimum length registers offense for offensive keyword parameters does not register offense for valid parameter names on self.method with ForbiddenNames accepts parameter that uses a forbidden name's letters registers offense for parameter listed as forbidden when using argument forwarding does not register an offense with AllowedNames accepts specified block param names registers unlisted offensive names accepts underscore param names accepts param names prefixed with underscore with AllowNamesEndingInNumbers accept parameters that end in numbers RuboCop::Cop::Lint::EnsureReturn registers an offense and corrects for return with argument in ensure registers an offense and corrects for return in ensure does not check when ensure block has no body registers an offense when returning multiple values in `ensure` does not register an offense for return outside ensure RuboCop::Cop::Lint::DuplicateRescueException registers an offense when duplicate exception exists within rescues with empty `rescue` branch registers an offense when duplicate exception splat exists registers an offense when multiple duplicate exceptions exist registers an offense when duplicate exception exists within rescues with `else` branch does not register an offense when there are no duplicate exceptions registers an offense when duplicate exception exists RuboCop::Cop::Layout::SpaceAfterNot accepts no space after ! registers an offense and corrects multiple spaces after ! accepts space after not keyword registers an offense and corrects space after ! with the negated receiver wrapped in parentheses registers an offense and corrects a single space after ! RuboCop::Cop::Style::ImplicitRuntimeError does not register an offense for `fail` without arguments registers an offense for `fail` with a multiline string does not register an offense for `raise` with an error class registers an offense for `raise` with a multiline string does not register an offense for `fail` with an error class does not register an offense for `raise` without arguments registers an offense for `raise` without error class registers an offense for `fail` without error class RuboCop::Cop::Style::ClassVars registers an offense for class variable set on class receiver registers an offense for class variable declaration does not register an offense for class variable usage registers an offense for class variable set in class RuboCop::Cop::Lint::OutOfRangeRegexpRef registers an offense when out of range references are used for named captures registers an offense when out of range references are used for mix of numbered and named captures does not register offense to a regexp with valid references for named captures registers an offense when out of range references are used inside a when clause handles `match` with no arguments handles `match` with no receiver registers an offense when the regexp is matched with `match` uses the maximum number of captures for when clauses with multiple conditions only registers an offense when the regexp is matched as a literal does not register offense to a regexp with valid references for a mix named and numbered captures registers an offense when the regexp is matched with `===` ignores calls to `match?` registers an offense when references are used before any Regexp ignores regexp when clause conditions that contain interpolations does not register an offence Regexp containing non literal does not register offense to a regexp with valid references for numbered captures registers an offense when the regexp appears on the right hand side of `=~` registers an offense when out of range references are used for numbered captures does not register an offense when in range references are used inside a when clause registers an offense when out of range references are used for non captures only registers an offense for when clauses when the regexp is matched as a literal matching with match does not register an offense when in range references are used registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal matching with rpartition does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used matching with index only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used matching with slice! only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used matching with gsub registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with gsub! does not register an offense when in range references are used registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal matching with `[]` registers an offense when out of range references are used does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal matching with `grep` registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with sub registers an offense when out of range references are used does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal matching with sub! does not register an offense when in range references are used registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal matching with scan registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with end_with? registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with start_with? does not register an offense when in range references are used registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal matching with rindex does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used matching with partition only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used does not register an offense when in range references are used matching with slice only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used RuboCop::Cop::Lint::UriEscapeUnescape registers an offense when using `URI.unescape(enc_uri)` registers an offense when using `URI.escape('http://example.com')` registers an offense when using `::URI.escape('http://example.com')` registers an offense when using `::URI.unescape(enc_uri)` registers an offense when using `URI.decode(enc_uri)` registers an offense when using `::URI.decode(enc_uri)` registers an offense when using `::URI.encode('http://example.com)` registers an offense when using `URI.escape('@?@!', '!?')` registers an offense when using `URI.encode('http://example.com')` RuboCop::Cop::Style::InfiniteLoop registers an offense for a until loop with false as condition registers an offense for until false if loop {} would work because the assigned variable is not used afterwards registers an offense for while true if loop {} would work because it is an instance variable being assigned accepts while true if loop {} would change semantics registers an offense for modifier until false if loop {} would not change semantics accepts modifier while true if loop {} would change semantics registers an offense for a while loop with 2.0 as condition registers an offense for until false if loop {} would work because of previous assignment in a while loop accepts Kernel#loop registers an offense for a while loop with 1 as condition registers an offense for a while loop with {} as condition registers an offense for while true or until false if loop {} would work because of an earlier assignment registers an offense for a while loop with [1] as condition registers an offense for a until loop with nil as condition behaves like auto-corrector auto-corrects the usage of until without do auto-corrects the usage of until with do auto-corrects begin-end-until with one statement auto-corrects single line modifier until with and auto-corrects begin-end-until with two statements auto-corrects single line modifier until with non-default indentation width auto-corrects multi-line modifier until and indents correctly behaves like auto-corrector auto-corrects single line modifier while with and auto-corrects the usage of while without do auto-corrects begin-end-while with two statements auto-corrects single line modifier while auto-corrects the usage of while with do auto-corrects begin-end-while with one statement with non-default indentation width auto-corrects multi-line modifier while and indents correctly RuboCop::Cop::Style::SymbolArray when EnforcedStyle is brackets autocorrects an array has interpolations autocorrects an array starting with %i registers an offense for array starting with %i does not register an offense for arrays of symbols with non-default MinSize does not autocorrect array of one symbol if MinSize > 1 when EnforcedStyle is percent autocorrects arrays of symbols with new line registers an offense in a non-ambiguous block context detects right value for MinSize to use for --auto-gen-config does not register an offense for array starting with %i does not register an offense in an ambiguous block context autocorrects arrays of one symbol uses %I when appropriate doesn't break when a symbol contains ) detects when the cop must be disabled to avoid offenses autocorrects arrays of symbols with embedded newlines and tabs does not register an offense if symbol contains whitespace registers an offense for arrays of symbols does not register an offense for array with non-syms when PreferredDelimiters is specified autocorrects an array using partial newlines autocorrects an array with delimiters autocorrects an array in multiple lines RuboCop::Cop::Lint::DuplicateElsifCondition does not register an offense for partially repeated elsif conditions does not register an offense for non-repeated elsif conditions registers multiple offenses for multiple repeated elsif conditions registers an offense for subsequent repeated elsif conditions registers an offense for repeated elsif conditions RuboCop::Cop::Style::RescueModifier handles modifier rescue in normal rescue handles modifier rescue in a method handles more complex expression with modifier rescue does not register an offense for nested normal rescue registers an offense for modifier rescue registers an offense for modifier rescue around parallel assignment does not register an offense for normal rescue does not register an offense for normal rescue with ensure when a singleton method has implicit begin handles modifier rescue in body of implicit begin accepts normal rescue autocorrect corrects doubled rescue modifiers corrects complex rescue modifier when an instance method has implicit begin accepts normal rescue handles modifier rescue in body of implicit begin excluded file processes excluded files with issue RuboCop::Cop::Layout::TrailingWhitespace is not fooled by heredoc containing __END__ is not fooled by __END__ within a documentation comment accepts a line without trailing whitespace registers an offense for a blank line with space registers an offense for a line ending with space registers an offense for a line ending with tab auto-corrects unwanted space registers an offense for trailing whitespace in a heredoc string registers offenses before __END__ but not after is not fooled by heredoc containing __END__ within a doc comment when `AllowInHeredoc` is set to true registers an offense for trailing whitespace at the heredoc begin accepts trailing whitespace in a heredoc string RuboCop::YAMLDuplicationChecker when yaml has duplicated keys in the second level calls block >= Ruby 2.5 calls block with keys when yaml has duplicated keys in the top level calls block >= Ruby 2.5 calls block with keys when yaml does not have any duplication does not call block RuboCop::Cop::Lint::UriRegexp registers an offense and corrects using `URI.regexp` without argument registers an offense and corrects using `::URI.regexp` with argument does not register an offense when using `regexp` with variable receiver registers an offense and corrects using `::URI.regexp` without argument does not register an offense when using `regexp` without receiver registers an offense and corrects using `URI.regexp` with argument array argument registers an offense and corrects using `URI.regexp` with %i arrays registers an offense and corrects using `URI.regexp` with %w arrays registers an offense and corrects using `URI.regexp` with literal arrays RuboCop::Cop::Layout::RescueEnsureAlignment accepts correctly aligned ensure accepts correctly aligned rescue in assigned begin-end block accepts rescue and ensure on the same line accepts the modifier form accepts correctly aligned rescue accepts end being misaligned ensure with def registers an offense excluded file processes excluded files with issue ensure with module registers an offense when ensure used with module rescue with class registers an offense when rescue used with class allows inline access modifier with private modifier rescue with defs registers an offense correct alignment ensure with defs correct alignment registers an offense rescue with def correct alignment registers an offense ensure with def registers an offense correct alignment with private_class_method modifier ensure with defs registers an offense correct alignment rescue with def correct alignment registers an offense rescue with defs correct alignment registers an offense ensure with def correct alignment registers an offense with public_class_method modifier rescue with def correct alignment registers an offense ensure with def registers an offense correct alignment rescue with defs registers an offense correct alignment ensure with defs correct alignment registers an offense ensure with class registers an offense rescue with defs registers an offense allows inline expression before ensure registers an offense rescue registers an offense rescue with module registers an offense when rescue used with module rescue with def registers an offense ensure with defs registers an offense ensure with begin registers an offense when ensure used with begin rescue with begin registers an offense as RHS of assignment accepts multi-line, aligned accepts multi-line, indented registers offense for incorrect alignment >= Ruby 2.5 accepts aligned rescue in assigned do-end block starting on newline accepts aligned rescue in do-end block in a method accepts aligned rescue in do-end block assigned to instance variable accepts aligned rescue in do-end block on multi-assignment accepts aligned rescue in do-end block assigned to class accepts aligned rescue in do-end block on operation assignment accepts aligned rescue in do-end block on or-assignment accepts aligned rescue do-end block assigned to local variable accepts aligned rescue in do-end block accepts aligned rescue in do-end block assigned to global variable accepts aligned rescue in do-end block on and-assignment accepts aligned rescue in do-end block assigned to class variable rescue in do-end block assigned to instance variable registers an offense rescue in assigned do-end block starting on newline registers an offense rescue in do-end block assigned to global variable registers an offense rescue in do-end block assigned to class variable registers an offense rescue with do-end block registers an offense rescue in do-end block on and-assignment registers an offense rescue in do-end block assigned to local variable registers an offense rescue in do-end block on or-assignment registers an offense rescue in do-end block on operation assignment registers an offense rescue in do-end block assigned to class registers an offense rescue in do-end block on multi-assignment registers an offense RuboCop::Cop::Style::ParallelAssignment registers an offense with indices corrects parallel assignment in while statements corrects when assigning from multiple methods with blocks corrects when the expression uses a modifier rescue statement corrects parallel assignment inside rescue statements within method definitions corrects when using nested indentation corrects when the expression uses a modifier while statement corrects when using single indentation registers an offense when assigning to namespaced constants corrects when using constants registers an offense when left hand side ends with an implicit variable corrects when the expression uses a modifier unless statement corrects when assigning to method returns registers an offense when right hand side has namespaced constants allows expanding an assigned var corrects when assignments must be reordered to avoid changing meaning registers an offense when the right side has methods with/without blocks corrects when the expression uses a modifier if statement inside a method corrects when the right variable is an array registers an offense when assignments must be reordered to preserve meaning corrects when the expression uses a modifier if statement registers an offense with indices of different variables corrects when the number of left hand variables matches the number of right hand variables registers an offense with indices and attributes when assignments must be reordered to preserve meaning corrects parallel assignment in rescue statements within begin ... rescue registers an offense when the right side has constants corrects when the expression uses a modifier rescue statement as the only thing inside of a method corrects when the expression uses a modifier until statement registers an offense when right hand side has maps with blocks corrects parallel assignment in unless statements registers an offense when assigning to same variables in same order allows more right variables than left variables registers an offense with attributes when assignments must be reordered to preserve meaning registers an offense when the right side has mulitple arrays corrects when the right variable is a word array registers an offense when the right side has multiple hashes allows more left variables than right variables corrects when the expression uses a modifier rescue statement inside of a method registers an offense when the right side has mixed expressions corrects parallel assignment in if statements corrects when the expression is missing spaces corrects when the right variable is a symbol array corrects parallel assignment in until statements behaves like allowed allows assignment of: a, = *'foo' behaves like allowed allows assignment of: a, b = *foo using custom indentation width works with guard clauses works with nesting works with standard correction works with rescue behaves like allowed allows assignment of: a, b = (a + b), (a - b) behaves like allowed allows assignment of: a, b = foo.map { |e| e.id } behaves like allowed allows assignment of: obj.attr1, ary[0] = ary[0], obj.attr1 behaves like allowed allows assignment of: a = 1 behaves like allowed allows assignment of: self.a, self.b = self.b, self.a behaves like allowed allows assignment of: ary[0], ary[1], ary[2] = ary[1], ary[2], ary[0] behaves like allowed allows assignment of: CONSTANT, = 1, 2 behaves like allowed allows assignment of: self.a, self.b = b, a behaves like allowed allows assignment of: array = [1, 2, 3]; a, = array; behaves like allowed allows assignment of: a, *b = [1, 2, 3] behaves like allowed allows assignment of: obj.attr1, obj.attr2 = obj.attr2, obj.attr1 behaves like allowed allows assignment of: a, = *foo behaves like allowed allows assignment of: a, b = foo() behaves like allowed allows assignment of: a, b, c = b, c, a behaves like allowed allows assignment of: a, b, c = *node, 1, 2 behaves like allowed allows assignment of: a, b, c = 1, 2, *node behaves like allowed allows assignment of: a[0], a[1] = a[1], a[0] behaves like allowed allows assignment of: begin_token, end_token = CONSTANT behaves like allowed allows assignment of: a, b = b, a behaves like allowed allows assignment of: a, = 1 behaves like allowed allows assignment of: a = 1; b = 2; behaves like allowed allows assignment of: a, = a behaves like allowed allows assignment of: a, = 1, 2, 3 behaves like allowed allows assignment of: *a, b = [1, 2, 3] behaves like allowed allows assignment of: a = *'foo' behaves like allowed allows assignment of: foo = [1, 2, 3]; a, b, c = foo; behaves like allowed allows assignment of: a, b = Float::INFINITY behaves like allowed allows assignment of: a = a RuboCop::Cop::Layout::ClosingHeredocIndentation accepts correctly indented closing heredoc when heredoc contents is after closing heredoc does not register an offense for a << heredoc accepts correctly indented closing heredoc when heredoc contents is before closing heredoc accepts correctly indented closing heredoc does not register an offense for correctly indented empty heredocs accepts correctly indented closing heredoc when aligned at the beginning of method definition and using `strip_indent` accepts correctly indented closing heredoc when aligned at the beginning of method definition and content is empty accepts correctly indented closing heredoc when aligned at the beginning of method definition registers an offense for bad indentation of a closing heredoc registers an offense for incorrectly indented empty heredocs accepts correctly indented closing heredoc when heredoc contents with blank line RuboCop::Cop::Style::BlockComments auto-corrects an empty block comment by removing it accepts regular comments registers an offense for block comments auto-corrects a block comment into a regular comment auto-corrects a block comment into a regular comment (without trailingnewline) RuboCop::Cop::Naming::VariableNumber when configured for normal registers an offense for snake case numbering in method parameter registers an offense for snake case numbering in method camel case parameter behaves like offense registers an offense for @local_1 in normalcase behaves like offense registers an offense for localFOO_1 in normalcase behaves like offense registers an offense for @myAttribute_1 in normalcase behaves like accepts accepts local_ in normalcase behaves like accepts accepts sha256 in normalcase behaves like offense registers an offense for local_1 in normalcase behaves like offense registers an offense for myAttribute_1 in normalcase behaves like offense registers an offense for @@local_1 in normalcase behaves like accepts accepts snake_case in normalcase behaves like offense registers an offense for sha_256 in normalcase behaves like accepts accepts target_u2f_device in normalcase behaves like accepts accepts user1_id in normalcase behaves like offense registers an offense for local_FOO_1 in normalcase behaves like accepts accepts _ in normalcase behaves like accepts accepts localFOO1 in normalcase behaves like offense registers an offense for _myLocal_1 in normalcase behaves like accepts accepts user_1_id in normalcase behaves like accepts accepts _foo in normalcase behaves like accepts accepts foo10_bar in normalcase behaves like accepts accepts local1 in normalcase behaves like accepts accepts @__foo__ in normalcase behaves like accepts accepts @foo in normalcase behaves like offense_array registers an offense for ["a_1", "a2"] in normalcase when configured for non integer registers an offense for normal case numbering in method parameter registers an offense for snake case numbering in method camel case parameter registers an offense for normal case numbering in method camel case parameter registers an offense for snake case numbering in method parameter behaves like offense registers an offense for myAttribute1 in non_integer behaves like accepts accepts @foo in non_integer behaves like accepts accepts @__foo__ in non_integer behaves like offense registers an offense for @local1 in non_integer behaves like offense_array registers an offense for ["a_1", "aone"] in non_integer behaves like offense registers an offense for @myAttribute_1 in non_integer behaves like accepts accepts local_ in non_integer behaves like offense registers an offense for local_1 in non_integer behaves like accepts accepts localone in non_integer behaves like offense registers an offense for _myLocal_1 in non_integer behaves like offense registers an offense for _myLocal1 in non_integer behaves like offense registers an offense for myAttribute_1 in non_integer behaves like accepts accepts @@foo in non_integer behaves like accepts accepts local_one in non_integer behaves like offense registers an offense for @myAttribute1 in non_integer behaves like accepts accepts fooBar in non_integer behaves like offense registers an offense for @local_1 in non_integer behaves like accepts accepts _foo in non_integer behaves like accepts accepts _ in non_integer behaves like offense registers an offense for local1 in non_integer when configured for snake_case registers an offense for normal case numbering in method parameter registers an offense for normal case numbering in method camel case parameter behaves like offense registers an offense for @@local1 in snake_case behaves like accepts accepts local_123 in snake_case behaves like accepts accepts @__foo__ in snake_case behaves like offense registers an offense for @camelCase1 in snake_case behaves like offense registers an offense for camelCase1 in snake_case behaves like accepts accepts a_1_b in snake_case behaves like offense registers an offense for _unused1 in snake_case behaves like accepts accepts local_12 in snake_case behaves like offense registers an offense for aB1 in snake_case behaves like accepts accepts _ in snake_case behaves like offense registers an offense for local1 in snake_case behaves like offense registers an offense for @local1 in snake_case behaves like accepts accepts local_ in snake_case behaves like accepts accepts a_1_b_1 in snake_case behaves like accepts accepts @foo in snake_case behaves like offense_array registers an offense for ["a1", "a_2"] in snake_case behaves like accepts accepts _foo in snake_case behaves like accepts accepts aB_1 in snake_case behaves like accepts accepts local_1 in snake_case RuboCop::Cop::Style::FormatString when enforced style is sprintf does not register an offense for numbers registers an offense for variable argument but does not auto-correct registers an offense for a string followed by something registers an offense for format registers an offense for format with 2 arguments registers an offense for something followed by an array registers an offense for String#% with a hash argument registers an offense for variable argument and assignment but does not auto-correct works if the first operand contains embedded expressions does not register an offense for ambiguous cases when enforced style is percent accepts String#% registers an offense for sprintf accepts format with 1 argument registers an offense for format with a hash argument registers an offense for sprintf with 3 arguments registers an offense for format with 3 arguments registers an offense for sprintf with a hash argument registers an offense for format accepts format without arguments accepts sprintf without arguments accepts sprintf with 1 argument when enforced style is format does not register an offense for ambiguous cases does not register an offense for numbers registers an offense for sprintf registers an offense for something followed by an array registers an offense for variable argument but does not auto-correct registers an offense for sprintf with 2 arguments registers an offense for a string followed by something registers an offense for something followed by a hash works if the first operand contains embedded expressions does not auto-correct String#% with variable argument and assignment RuboCop::Cop::Style::ReturnNil when enforced style is `return` registers an offense for return nil does not register an offense for returning others does not register an offense for return nil from iterators when enforced style is `return_nil` registers an offense for return does not register an offense for returning others RuboCop::Cop::Lint::RedundantCopEnableDirective registers offense and corrects unnecessary enable registers correct offense when combined with necessary enable registers multiple offenses and corrects the same comment registers offense and corrects redundant enabling of same cop registers an offense and corrects when the first cop is unnecessarily enabled when last cop is unnecessarily enabled registers an offense and corrects when there is no space between the cops and the comma registers an offense and corrects all switch registers offense and corrects unnecessary enable all when at least one cop was disabled does not register offense when middle cop is unnecessarily enabled registers an offense and corrects registers an offense and corrects when there is extra white space RuboCop::Cop::Lint::UselessSetterCall is not confused by operators ending with = handles exception assignments without exploding when a lvar declared as an argument is no longer the passed object at the end of the method registers an offense for the setter call on the lvar when a lvar contains an object passed as argument at the end of the method accepts the setter call on the lvar with method ending with setter call on local object registers an offense when a lvar possibly contains an object passed as argument by logical-operator-assignment at the end of the method accepts the setter call on the lvar with method ending with setter call on argument accepts with method ending with ivar assignment accepts when a lvar contains an object passed as argument by multiple-assignment at the end of the method accepts the setter call on the lvar when a lvar contains a local object instantiated with literal registers an offense for the setter call on the lvar with singleton method ending with setter call on local object registers an offense when a lvar does not contain any object passed as argument by binary-operator-assignment at the end of the method registers an offense when a lvar contains a non-local object returned by a method accepts with method ending with setter call on ivar accepts with method ending with square bracket setter on local object registers an offense when a lvar does not contain any object passed as argument with multiple-assignment at the end of the method registers an offense RuboCop::Cop::Style::MixinGrouping when configured with separated style when using `include` registers an offense for several mixins in separate calls allows include call as an argument to another method registers an offense for several mixins in one call when using a mix of diffent methods registers an offense for some calls having several mixins when using `extend` registers an offense for several mixins in one call when using `prepend` registers an offense for several mixins in one call when configured with grouped style when using a mix of diffent methods registers an offense with some duplicated mixin methods allows all different mixin methods when using `prepend` registers an offense when other mixins have receivers registers an offense for single mixins in separate calls registers an offense for single mixins in separate calls, interspersed when using include registers an offense for several mixins in separate calls registers an offense for single mixins in separate calls allows include with an explicit receiver when using `extend` registers an offense for single mixins in separate calls RuboCop::Formatter::EmacsStyleFormatter #finished does not report summary #file_finished displays parsable text when the offense message contains a newline strips newlines out of the error message when the offense is marked as todo prints [Todo] along with message when the offense is automatically corrected prints [Corrected] along with message RuboCop::Cop::Style::InverseMethods registers an offense for not (foo > bar) allows a method call without a not registers an offense for !foo.none? registers an offense for comparing snake case constants on the left registers an offense for !(foo > bar) registers an offense for !foo.even? registers an offense for not (foo !~ bar) registers an offense for calling !.none? with a block allows comparing camel case constants on the right registers an offense for calling !.none? with a symbol proc registers an offense for comparing snake case constants on the right allows an inverse method when double negation is used allows comparing camel case constants on the left registers an offense for !(foo < bar) registers an offense for !foo.odd? registers an offense for !(foo =~ bar) registers an offense for !foo.any? registers an offense for calling !.any? inside parens registers an offense for not (foo =~ bar) allows an inverse method in a block with next registers an offense for not (foo < bar) registers an offense for not (foo != bar) allows an inverse method with a block when double negation is used registers an offense for not (foo == bar) registers an offense for !foo.exclude? registers an offense for !(foo == bar) registers an offense for !(foo != bar) registers an offense for !(foo !~ bar) registers an offense for !foo.include? registers an offense for !foo.blank? registers an offense for !foo.present? behaves like all variable types registers an offense for calling !foo["bar"].none? registers an offense for calling not foo["bar"].none? behaves like all variable types registers an offense for calling not $foo.none? registers an offense for calling !$foo.none? inverse blocks corrects an inverted method call when using `BasicObject# !` corrects a complex inverted method call corrects an inverted do end method call registers an offense for foo.select! { |e| !e } registers an offense for an inverted equality block corrects an inverted method call registers an offense for a multiline inverted equality block corrects an inverted method call when using `BasicObject# !` registers a single offense for nested inverse method calls registers an offense for a multiline method call where the last method is inverted registers an offense for foo.select { |e| !e } registers a single offense for nested inverse method calls corrects an inverted do end method call corrects an inverted method call corrects a complex inverted method call corrects an inverted do end method call corrects an inverted method call when using `BasicObject# !` corrects an inverted method call when using `BasicObject# !` registers an offense for foo.reject! { |e| !e } corrects an inverted method call when using `BasicObject#!` registers an offense for an inverted equality block registers an offense for a multiline inverted equality block registers an offense for a multiline method call where the last method is inverted registers an offense for foo.reject { |e| !e } registers a single offense for nested inverse method calls corrects an inverted method call when using `BasicObject#!` registers an offense for an inverted equality block corrects an inverted method call corrects an inverted method call when using `BasicObject#!` corrects a complex inverted method call registers an offense for a multiline inverted equality block corrects a complex inverted method call registers an offense for a multiline inverted equality block registers an offense for a multiline method call where the last method is inverted registers an offense for an inverted equality block registers an offense for a multiline method call where the last method is inverted registers a single offense for nested inverse method calls corrects an inverted do end method call corrects an inverted method call corrects an inverted method call when using `BasicObject#!` behaves like all variable types registers an offense for calling !@foo.none? registers an offense for calling not @foo.none? behaves like all variable types registers an offense for calling not FOO::BAR.none? registers an offense for calling !FOO::BAR.none? behaves like all variable types registers an offense for calling not @@foo.none? registers an offense for calling !@@foo.none? behaves like all variable types registers an offense for calling !foo.bar.none? registers an offense for calling not foo.bar.none? behaves like all variable types registers an offense for calling !foo.none? registers an offense for calling not foo.none? behaves like all variable types registers an offense for calling not FOO.none? registers an offense for calling !FOO.none? RuboCop::CLI --disable-uncorrectable does not disable anything for cops that support autocorrect if one one-line disable statement fits adds it adds it when the cop supports autocorrect but does not correct the offense and there are two offenses of the same kind on one line adds a single one-line disable statement but there are more offenses on the line and they don't all fit adds both one-line and before-and-after disable statements if a one-line disable statement doesn't fit adds before-and-after disable statement RuboCop::Cop::Layout::AssignmentIndentation registers an offense for incorrectly indented rhs when multiple assignment allows a properly indented rhs with fullwidth characters registers an offense for incorrectly indented rhs ignores comparison operators allows assignments that do not start on a newline registers an offense for multi-lhs allows a properly indented rhs registers an offense for incorrectly indented rhs whenmultiple assignment with line breaks on each line when indentation width is overridden for this cop only allows a properly indented rhs auto-corrects indentation RuboCop::Cop::Style::StringLiterals when ConsistentQuotesInMultiline is true and EnforcedStyle is double_quotes accepts continued strings using all double quotes registers an offense for mixed quote styles in a continued string doesn't register offense for single quotes with embedded double registers an offense for unneeded single quotes in continuation and EnforcedStyle is single_quotes doesn't choke on heredocs with inconsistent indentation doesn't register offense for double quotes with interpolation registers an offense for mixed quote styles in a continued string doesn't register offense for double quotes with embedded single accepts continued strings using all single quotes registers an offense for strings with line breaks in them accepts for double quotes with an escaped normal character accepts for double quotes with an escaped special character registers an offense for unneeded double quotes in continuation configured with double quotes preferred accepts %q and %Q quotes does not accept multiple escaped single quotes in single quotes accepts single quotes at the start of regexp literals registers offense for escaped single quote in single quotes accepts single quotes when they are needed accepts ' in a %w accepts single quotes in interpolation accepts double quotes accepts single quotes in string with escaped non-' character flags single quotes with plain # (not #@var or #{interpolation} accepts escaped single quote in string with escaped non-' character registers offense for opposite + correct registers offense for single quotes when double quotes would be equivalent accepts heredocs accepts % quotes can handle a built-in constant parsed as string configured with single quotes preferred accepts double quotes when control characters are used accepts double quotes in interpolation accepts double quotes when unicode control sequence is used accepts double quotes when interpolating an instance variable accepts \\\n in a string accepts " in a %w accepts double quotes when single quotes are used accepts double quotes when interpolating & quotes in multiple lines registers offense for correct + opposite accepts double quotes when new line is used does not register an offense for words with non-ascii chars and other control sequences accepts heredocs registers an offense for words with non-ascii chars registers an offense for "\"" accepts single quotes in interpolation accepts double quotes when interpolating a class variable accepts single quotes accepts %q and %Q quotes accepts double quotes with some other special symbols can handle a built-in constant parsed as string accepts double quotes at the start of regexp literals accepts % quotes detects unneeded double quotes within concatenated string registers offense for double quotes when single quotes suffice can handle character literals accepts double quotes when interpolating a global variable when configured with a bad value fails RuboCop::Cop::Layout::SpaceAroundOperators accepts exponent operator without spaces accepts an assignment followed by newline accepts operator surrounded by tabs accepts scope operator accepts ::Kernel::raise accepts an operator at the beginning of a line accepts the result of the ExtraSpacing Cop accepts an assignment by `for` statement accepts an assignment with spaces accepts operators with spaces accepts an operator called with method syntax accepts ranges accepts a unary accepts exclamation point definition accepts an operator at the end of a line registers an offense and corrects exclamation point negation registers an offenses for exponent operator with spaces accepts operator symbols accepts def of operator accepts argument default values without space accepts [] without space accepts [arg] without space accepts []= without space accepts splat operator accepts unary operators without space accepts the construct class <= 7) rescue groups registers an offense rescuing Exception before an unknown exceptions accepts rescuing exceptions in order of level splat arguments registers an offense for splat arguments rescued after rescuing a known exception registers an offense for splat arguments rescued after rescuing Exception accepts splat arguments passed to multiple rescues last rescue does not specify exception class highlights range ending at rescue keyword exceptions from different ancestry chains accepts rescuing exceptions in another order accepts rescuing exceptions in one order single rescue registers an offense rescuing exceptions that are ancestors of each other registers an offense rescuing Exception with any other error or exception rescue a exception without causing constant name deprecation warning accepts rescuing a single exception that is assigned to a variable accepts rescue containing multiple same error code exceptions accepts rescuing a multiple exceptions that are not ancestors that have an else accepts rescuing multiple custom exceptions accepts an empty rescue accepts rescuing a single custom exception accepts rescuing a single exception accepts rescuing a custom exception and a standard exception accepts rescuing a single exception that has an else accepts rescuing a single exception that has an ensure accepts splat arguments passed to rescue registers an offense for the same exception multiple times when there are multiple levels of exceptions in the same rescue registers an offense for more than two exceptions registers an offense for two exceptions modifier rescue accepts rescue in its modifier form RuboCop::Cop::Style::StderrPuts registers an offense when using `$stderr.puts('hello')` registers no offense when using `STDERR.puts` with no arguments registers an offense when using `::STDERR.puts('hello')` registers an offense when using `STDERR.puts('hello')` registers no offense when using `$stderr.puts` with no arguments RuboCop::Cop::Layout::SpaceInsideBlockBraces registers an offense and corrects right brace without inner space register offenses and correct both braces without inner space accepts left brace without outer space registers an offense and corrects left brace without inner space accepts braces surrounded by spaces with passed in parameters accepts new lambda syntax for multi-line blocks registers an offense and corrects left brace without inner space accepts left brace with inner space and space before block parameters not allowed registers an offense and corrects left brace with inner space accepts new lambda syntax accepts left brace without inner space for single-line blocks accepts left brace with inner space registers an offense and corrects left brace without inner space and BlockDelimiters cop enabled registers an offense and corrects multi-line blocks registers an offense and corrects for single-line blocks with space inside empty braces not allowed accepts empty braces with no space inside accepts braces that are not empty accepts empty braces with comment and line break inside accepts empty braces with line break inside registers an offense and corrects empty braces with space inside accepts multiline braces with content accepts braces with something inside with invalid value for EnforcedStyleForEmptyBraces fails with an error configured with no_space accepts left brace without outer space registers an offense and corrects left brace with inner space accepts braces without spaces inside registers an offense and corrects right brace with inner space with passed in parameters and space before block parameters allowed accepts new lambda syntax registers an offense and corrects left brace without inner space accepts left brace with inner space and space before block parameters not allowed accepts new lambda syntax registers an offense when braces are not aligned in multiline block accepts when braces are aligned in multiline block registers an offense and corrects left brace with inner space with space inside empty braces allowed registers an offense and corrects empty braces with no space inside accepts empty braces with space inside RuboCop::Cop::Lint::InterpolationCheck registers an offense and corrects when including interpolation and double quoted string in single quoted string does not register an offense for an escaped interpolation does not register an offense for interpolation in nested strings does not crash for \xff registers an offense and corrects for interpolation in single quoted string does not register an offense for interpolation in a regexp does not register an offense for escaped crab claws in dstr does not register an offense for properly interpolation strings RuboCop::Cop::Style::NumericLiterals accepts integers with less than three places at the end autocorrects negative numbers autocorrects numeric literal with exponent (large E) and dot registers an offense for a float with a long undelimited integer part registers an offense for a long undelimited integer autocorrects numbers with spaces between leading minus and numbers autocorrects negative floating-point numbers autocorrects numeric literal with exponent and dot accepts short numbers without underscore accepts a short integer without underscore accepts long numbers with underscore ignores non-decimal literals does not count a leading minus sign as a digit handles numeric literal with exponent registers an offense for an integer with misplaced underscore strict registers an offense for an integer with misplaced underscore RuboCop::Cop::Lint::EmptyEnsure registers an offense and corrects empty ensure does not register an offense for non-empty ensure RuboCop::Cop::Layout::ClassStructure #autocorrect when there is a comment in the macro method autocorrects the offenses with a complete ordered example does not create offense simple example is expected to eq "class Person\n include AnotherModule\n extend SomeModule\n CONST = 'wrong place'\nend\n" with attribute macros before after validations is expected to eq class Person include AnotherModule extend SomeModule CustomError = Cla...rotected_method end private def some_private_method end end with protected methods declared before private is expected to eq class MyClass def public_method end private def first_private...ar before `private_methods`. end def second_protected_method end end RuboCop::Cop::Style::ClassAndModuleChildren compact style accepts compact style for classes/modules registers a offense for modules with nested children accepts class/module with single method accepts nesting for classes with an explicit superclass registers a offense for classes with nested children accepts nesting for classes/modules with more than one child nested style registers an offense for not nested modules registers an offense for not nested classes with explicit superclass accepts nested children accepts :: in parent class on inheritance registers an offense for not nested classes RuboCop::Cop::Style::EmptyLiteral Empty String registers an offense for String.new does not register an offense for String.new("top") registers an offense for String.new() does not register an offense for ::String.new("top") registers an offense for ::String.new when frozen string literals is enabled does not register an offense for String.new when double-quoted string literals are preferred registers an offense for ::String.new registers an offense for String.new Empty Hash registers an offense for Hash.new() auto-correct Hash.new to {} as the first parameter to a method auto-corrects Hash.new to {} in various contexts does not register an offense for ::Hash.new(3) auto-correct Hash.new to {} as the only parameter to a method auto-corrects Hash.new in block auto-correct changes Hash.new to {} and wraps it in parentheses when it is the only argument to super auto-correct changes Hash.new to {} and wraps all arguments in parentheses when it is the first argument to super does not register an offense for Hash.new(3) does not register an offense for ::Hash.new { block } registers an offense for ::Hash.new registers an offense for Hash.new does not register an offense for Hash.new { block } Empty Array registers an offense for ::Array.new registers an offense for Array.new() does not register an offense for ::Array.new with block auto-corrects Array.new in block in block does not register Array.new with block in other block does not registers an offense Array.new with block registers an offense for Array.new does not register an offense for Array.new(3) RuboCop::Cop::Layout::BlockEndNewline registers an offense and corrects when `}` of multiline block without processing is not on its own line accepts a one-liner accepts multiline blocks with newlines before the end registers an offense and corrects when multiline block end is not on its own line registers an offense and corrects when multiline block } is not on its own line Pending: (Failures listed here are expected and do not affect your suite's status) 1) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:397 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 2) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:396 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 3) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:399 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 4) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:400 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 5) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:398 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 6) RuboCop::Cop::Generator compliance with rubocop generates a spec file that has no offense # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/generator_spec.rb:345 7) RuboCop::Cop::Generator compliance with rubocop generates a cop file that has no offense # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/generator_spec.rb:340 8) RuboCop::Cop::Cop.qualified_cop_name raises an error if the cop name is in more than one namespace # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/cop_spec.rb:45 9) RuboCop::Cop::Layout::AccessModifierIndentation when EnforcedStyle is set to indent registers an offense and corrects access modifiers in arbitrary blocks # Failing in Debian - needs investigation # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/layout/access_modifier_indentation_spec.rb:175 10) RuboCop::Cop::Lint::UselessAssignment when a variable is reassigned in loop body but won't be referenced either next iteration or loop condition registers an offense # Requires an advanced logic that checks whether the return value of an operator assignment is used or not. Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -5,7 +5,6 @@ while total < 100 total += 1 foo += 1 - ^^^ Useless assignment to variable - `foo`. end total # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/useless_assignment_spec.rb:349:in `block (3 levels) in ' Finished in 1 minute 57.41 seconds (files took 4.33 seconds to load) 13647 examples, 0 failures, 10 pending Randomized with seed 54071 /usr/bin/ruby3.0 /usr/bin/gem2deb-test-runner ┌──────────────────────────────────────────────────────────────────────────────┐ │ Checking Rubygems dependency resolution on ruby3.0 │ └──────────────────────────────────────────────────────────────────────────────┘ GEM_PATH=/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all:/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.0.0:/var/lib/gems/3.0.0:/usr/local/lib/ruby/gems/3.0.0:/usr/lib/ruby/gems/3.0.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.0.0:/usr/share/rubygems-integration/3.0.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0 ruby3.0 -e gem\ \"rubocop\" ┌──────────────────────────────────────────────────────────────────────────────┐ │ Run tests for ruby3.0 from debian/ruby-tests.rake │ └──────────────────────────────────────────────────────────────────────────────┘ RUBYLIB=. GEM_PATH=/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/rubocop/usr/share/rubygems-integration/all:/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.0.0:/var/lib/gems/3.0.0:/usr/local/lib/ruby/gems/3.0.0:/usr/lib/ruby/gems/3.0.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.0.0:/usr/share/rubygems-integration/3.0.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.0.0 ruby3.0 -S rake -f debian/ruby-tests.rake /usr/bin/ruby3.0 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.10.3/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.10.1/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.10.1/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --exclude-pattern spec/rubocop/config_loader_spec.rb --format documentation Run options: include {:focus=>true} All examples were filtered out; ignoring {:focus=>true} Randomized with seed 25070 RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands does not register an offense when using arithmetic operator with numerics does not register an offense when using binary operator with different operands registers an offense when binary operator has identical nodes RuboCop::Cop::Style::TrailingCommaInBlockArgs curly brace block format does not register an offense when a trailing comma is required registers an offense when a trailing comma is not needed does not register an offense when more than one argument is present with no trailing comma does not register an offense for keyword arguments does not register an offense for default arguments ignores commas in default argument strings preserves semicolons in block/local variables does not register an offense when no arguments are present do/end block format does not register an offense when a trailing comma is required does not register an offense when more than one argument is present with no trailing comma does not register an offense for default arguments preserves semicolons in block/local variables does not register an offense when no arguments are present does not register an offense for an empty block does not register an offense for keyword arguments ignores commas in default argument strings registers an offense when a trailing comma is not needed when `->` has multiple arguments does not registers an offense when `lambda` has multiple arguments registers an offense and corrects when a trailing comma isn't needed does not register an offense when more than one argument is present with no trailing comma RuboCop::Cop::Style::Sample behaves like accepts accepts shuffle(random: Random.new)[2] behaves like offense registers an offense for shuffle.first(foo) behaves like accepts accepts shuffle.slice(foo..bar) behaves like accepts accepts shuffle.slice(2..3) behaves like accepts accepts shuffle[foo..bar] behaves like accepts accepts shuffle.map { |e| e } behaves like accepts accepts shuffle[foo] behaves like offense registers an offense for shuffle[0, 3] behaves like accepts accepts shuffle.slice(foo) behaves like offense registers an offense for shuffle.slice(0...3) behaves like offense registers an offense for shuffle.first(2) behaves like offense registers an offense for shuffle[0..3] behaves like accepts accepts shuffle[-4..-3] behaves like accepts accepts shuffle.slice(2..-3) behaves like accepts accepts shuffle[2] behaves like accepts accepts shuffle.at(foo) behaves like accepts accepts shuffle.slice(3, 3) behaves like offense registers an offense for shuffle(random: Random.new)[0..3] behaves like offense registers an offense for shuffle.first behaves like accepts accepts shuffle[2..-3] behaves like accepts accepts sample behaves like offense registers an offense for shuffle.at(0) behaves like accepts accepts shuffle.join([5, 6, 7]) behaves like offense registers an offense for shuffle[0...3] behaves like accepts accepts shuffle behaves like offense registers an offense for shuffle.slice(0) behaves like accepts accepts shuffle.slice(foo, 3) behaves like accepts accepts shuffle.at(2) behaves like offense registers an offense for shuffle.last behaves like offense registers an offense for shuffle.last(3) behaves like offense registers an offense for shuffle.at(-1) behaves like accepts accepts shuffle[foo..3] behaves like offense registers an offense for shuffle.slice(0, 3) behaves like offense registers an offense for shuffle(random: foo).last(bar) behaves like accepts accepts shuffle[3, 3] behaves like accepts accepts shuffle[foo, 3] behaves like accepts accepts shuffle[foo, bar] behaves like offense registers an offense for shuffle(random: Random.new).first behaves like offense registers an offense for shuffle.slice(-1) behaves like offense registers an offense for shuffle.slice(0..3) behaves like accepts accepts shuffle(random: Random.new).find(&:odd?) behaves like accepts accepts shuffle.slice(2) behaves like offense registers an offense for shuffle[-1] behaves like accepts accepts shuffle[2..3] behaves like offense registers an offense for shuffle[0] behaves like accepts accepts shuffle.slice(foo, bar) behaves like accepts accepts shuffle.slice(foo..3) behaves like accepts accepts shuffle(random: Random.new) behaves like accepts accepts shuffle.slice(-4..-3) behaves like offense registers an offense for shuffle.last(bar) behaves like offense registers an offense for shuffle(random: Random.new).first(2) behaves like accepts accepts shuffle(random: Random.new)[2, 3] RuboCop::Cop::Lint::ErbNewArguments >= Ruby 2.6 does not register an offense when using `ERB.new` without optional arguments registers an offense when using `ERB.new` with non-keyword 2nd argument registers an offense when using `::ERB.new` with non-keyword 2nd, 3rd and 4th arguments registers an offense when using `ERB.new` with non-keyword 2nd, 3rd and 4th arguments andkeyword 5th argument does not register an offense when using `ERB.new` with keyword arguments registers an offense when using `ERB.new` with non-keyword 2nd and 3rd arguments registers an offense when using `ERB.new` with non-keyword 2nd and 3rd arguments andkeyword 4th argument registers an offense when using `ERB.new` with non-keyword 2nd, 3rd and 4th arguments when using `ActionView::Template::Handlers::ERB.new` does not register an offense when using `ERB.new` without arguments <= Ruby 2.5 does not register an offense when using `ERB.new` with non-keyword arguments RuboCop::Cop::Layout::EmptyLinesAroundBlockBody when EnforcedStyle is empty_lines for do end block registers an offense for block body not starting or ending with a blank is not fooled by single line blocks ignores block with an empty body when EnforcedStyle is empty_lines for { } block ignores block with an empty body registers an offense for block body not starting or ending with a blank is not fooled by single line blocks when EnforcedStyle is no_empty_lines for do end block registers an offense for block body ending with a blank registers an offense for block body starting with a blank passed to a multi-line method call registers an offense for block body starting with a blank is not fooled by single line blocks accepts block body starting with a line with spaces when EnforcedStyle is no_empty_lines for { } block is not fooled by single line blocks registers an offense for block body ending with a blank registers an offense for block body starting with a blank accepts block body starting with a line with spaces registers an offense for block body starting with a blank passed to a multi-line method call RuboCop::Cop::Naming::RescuedExceptionsVariableName with the `PreferredName` setup registers an offense when using `_e` registers offenses when using `foo` and `bar` in multiple rescues does not register an offense when using `_exception` registers an offense when using `e` does not register an offense when using `exception` with default config with implicit rescue with `Exception` variable does not register an offense when using `_e` registers an offense when using `exc` registers an offense when using `_exc` does not register an offense when using `e` without `Exception` variable does not register an offense with variable being referenced renames the variable references when auto-correcting with explicit rescue with splat operator as `Exception` list does not register an offense without variable name does not register an offense with expected variable name registers an offense with unexpected variable name with `Exception` variable registers an offense when using `_exc` does not register an offense when using _e followed by e does not register an offense when using `e` registers offenses when using `foo` and `bar` in multiple rescues registers an offense when using `exc` does not register an offense when using `_e` with method as `Exception` does not register an offense without variable name registers an offense with unexpected variable name does not register an offense with expected variable name without `Exception` variable does not register an offense with lower letters class name does not register an offense RuboCop::Cop::Style::AutoResourceCleanup does not register an offense for File.open with block-pass does not register an offense for File.open with immediate close registers an offense for File.open without block does not register an offense for File.open with block RuboCop::Cop::Layout::EmptyLineBetweenDefs accepts a nested def auto-corrects when there are too many new lines accepts a def that is the first of a module accepts a def that follows code and a comment accepts a def that follows an empty line and then a comment doesn't allow more than the required number of newlines finds offenses in inner classes accepts a def that follows a line with code treats lines with whitespaces as blank registers an offense for adjacent one-liners by default accepts the first def without leading empty line in a class class methods mixed instance and class methods registers an offense for missing blank line between methods adjacent class methods registers an offense for missing blank line between methods when there are only comments between defs registers an offense when a maximum of empty lines is specified finds no offense for no empty line finds an offense for two empty lines finds no offense for one empty line when multiple lines between defs are allowed treats lines with whitespaces as blank registers an offense and corrects when there are too many new lines conditional method definitions accepts defs inside a conditional without blank lines in between registers an offense for consecutive defs inside a conditional when AllowAdjacentOneLineDefs is enabled accepts adjacent one-liners registers an offense for adjacent defs if some are multi-line RuboCop::Cop::Layout::FirstParameterIndentation align_parentheses style single line method defs ignores ignores with hash args invalid indentation on multi-line defs normal arguments registers an offense and corrects incorrectly indented first element hash arguments static def registers an offense and corrects incorrectly indented first element hash arguments registers an offense and corrects incorrectly indented first element no paren method defs ignores with hash args ignores valid indentation on multi-line defs accepts correctly indented first element accepts correctly indented first element hash consistent style valid indentation on multi-line defs accepts correctly indented first element hash accepts correctly indented first element invalid indentation on multi-line defs hash arguments registers an offense and corrects incorrectly indented first element normal arguments registers an offense and corrects incorrectly indented first element hash arguments static method def registers an offense and corrects incorrectly indented first element valid indentation on static multi-line defs accepts correctly indented first element hash accepts correctly indented first element no paren method defs ignores with hash args ignores single line method defs ignores with hash args ignores RuboCop::Cop::Style::For when for is the enforced style accepts single line each registers an offense for each without an item and uses _ as the item registers an offense for a tuple of items accepts for registers an offense for multiline each registers an offense for correct + opposite style when using safe navigation operator does not break when each is the enforced style accepts multiline each registers an offense for for accepts :for registers an offense for opposite + correct style accepts def for auto-correct changes for that does not have do or semicolon to each corrects a tuple of items with range changes for to each changes for that does not have do or semicolon to each without parentheses changes for that does not have do or semicolon to each changes for to each RuboCop::Cop::Style::NestedModifier auto-corrects unless + unless auto-corrects unless with a comparison operator + if adds parentheses when needed in auto-correction adds parentheses to method arguments when needed in auto-correction registers one offense for more than two modifiers auto-corrects unless + if auto-corrects if + if auto-corrects if + unless does not add redundant parentheses in auto-correction while behaves like not correctable does not auto-correct when while is the outer modifier does not auto-correct when while is the inner modifier until behaves like not correctable does not auto-correct when until is the outer modifier does not auto-correct when until is the inner modifier RuboCop::Cop::Lint::InterpolationCheck does not register an offense for interpolation in a regexp does not crash for \xff does not register an offense for an escaped interpolation does not register an offense for escaped crab claws in dstr registers an offense and corrects for interpolation in single quoted string does not register an offense for interpolation in nested strings registers an offense and corrects when including interpolation and double quoted string in single quoted string does not register an offense for properly interpolation strings RuboCop::Cop::Lint::ParenthesesAsGroupedExpression accepts an operator call with argument in parentheses registers an offense and corrects for method call with space before the parenthesis accepts a chain of method calls accepts a space inside opening paren followed by left paren does not register an offense for math expression accepts a method call with arguments but no parentheses does not register an offesne when heredoc has a space between the same string as the method name and `(` does not register an offense for a call with multiple arguments does not register an offense for expression followed by chained expression accepts method with parens as arg to method without registers an offense and corrects for predicate method call with space before the parenthesis does not register an offense for expression followed by an operator accepts a method call without arguments does not register an offense for math expression with `to_i` when using safe navigation operator registers an offense and corrects for method call with space before the parenthesis RuboCop::Cop::Style::NegatedIf does not blow up on a negated ternary operator does not blow up for empty if condition does not blow up for empty unless condition does not blow up for ternary ops with “both” style accepts an if where only part of the condition is negated accepts an if/else with negative condition registers an offense for if with exclamation point condition registers an offense for if with "not" condition is not confused by negated elsif autocorrects by replacing parenthesized if not with unless accepts an if where the condition is doubly negated with “postfix” style registers an offense for postfix does not register an offense for prefix with “prefix” style does not register an offense for postfix registers an offense for prefix RuboCop::Cop::Bundler::DuplicatedGem when investigating Gemfiles and a duplicated gem is in a git/path/group/platforms block registers an offense and the file is empty does not register any offenses and a gem is duplicated in default group registers an offense and no duplicate gems are present does not register any offenses when investigating Ruby files does not register any offenses RuboCop::Cop::Lint::UnifiedInteger when Bignum with MyNamespace does not register an offense without any decorations registers an offense and autocorrects when explicitly specified as toplevel constant registers an offense when Fixnum without any decorations registers an offense and autocorrects with MyNamespace does not register an offense when explicitly specified as toplevel constant registers an offense when Integer with MyNamespace does not register an offense when explicitly specified as toplevel constant does not register an offense without any decorations does not register an offense RuboCop::Cop::Layout::EmptyLinesAroundBeginBody registers an offense for begin body ending in method registers an offense for begin body ending with a blank registers many offenses with complex begin-end registers an offense for ensure body ending registers an offense for begin body starting with rescue registers an offense for begin body starting with a blank registers an offense for rescue body ending accepts begin block without empty line in a method registers an offense for begin body starting in method registers an offense for else body ending accepts begin block without empty line RuboCop::Cop::Lint::OutOfRangeRegexpRef does not register offense to a regexp with valid references for a mix named and numbered captures registers an offense when references are used before any Regexp handles `match` with no arguments does not register offense to a regexp with valid references for named captures handles `match` with no receiver does not register an offence Regexp containing non literal registers an offense when the regexp appears on the right hand side of `=~` registers an offense when out of range references are used inside a when clause registers an offense when the regexp is matched with `===` ignores calls to `match?` does not register an offense when in range references are used inside a when clause ignores regexp when clause conditions that contain interpolations registers an offense when out of range references are used for non captures registers an offense when out of range references are used for numbered captures only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used for named captures registers an offense when out of range references are used for mix of numbered and named captures uses the maximum number of captures for when clauses with multiple conditions only registers an offense for when clauses when the regexp is matched as a literal does not register offense to a regexp with valid references for numbered captures registers an offense when the regexp is matched with `match` matching with `grep` registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with match only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used does not register an offense when in range references are used matching with gsub! only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used matching with sub registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with partition only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used matching with rpartition does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used matching with rindex only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used does not register an offense when in range references are used matching with end_with? registers an offense when out of range references are used does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal matching with start_with? registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with index registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with `[]` registers an offense when out of range references are used only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used matching with sub! does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used matching with slice only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used does not register an offense when in range references are used matching with slice! only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used matching with gsub does not register an offense when in range references are used only registers an offense when the regexp is matched as a literal registers an offense when out of range references are used matching with scan only registers an offense when the regexp is matched as a literal does not register an offense when in range references are used registers an offense when out of range references are used RuboCop::Formatter::FileListFormatter #file_finished displays parsable text RuboCop::Cop::Layout::MultilineMethodCallIndentation when EnforcedStyle is aligned registers an offense and corrects 3 spaces indentation of 2nd line accepts aligned methods in operator assignment accepts indented methods in ordinary statement accepts an expression where the first method spans multiple lines accepts indented methods inside and outside a block accepts even indentation of consecutive lines in typical RSpec code accepts aligned methods in constant assignment accepts indented and aligned methods in binary operation accepts indentation relative to first receiver doesn't crash on unaligned multiline lambdas accepts any indentation of parameters to #[] does not check binary operations when string wrapped with + registers an offense and corrects misaligned methods in until condition accepts aligned methods in assignment registers an offense and corrects unaligned methods in assignment accepts indented methods in for body registers an offense and corrects extra indentation of third line accepts aligned methods in a begin..end block registers an offense and corrects misaligned methods in while condition registers an offense and corrects misaligned methods in local variable assignment registers an offense and corrects proc call without a selector accepts alignment inside a grouped expression accepts correctly aligned methods in operands accepts correctly aligned methods in assignment registers an offense and corrects one space indentation of 3rd line registers an offense and corrects misaligned methods in if condition does not check binary operations when string wrapped with backslash registers an offense and corrects misaligned methods in unless condition registers an offense and corrects extra indentation of 3rd line in typical RSpec code registers an offense and corrects misaligned method in []= call accepts aligned method in return registers an offense and corrects one space indentation of 2nd line accepts aligned methods in if condition registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array doesn't fail on unary operators accepts indented method when there is nothing to align with accepts indented methods in LHS of []= assignment accepts aligned method in assignment + block + assignment registers an offense and corrects no indentation of second line accepts no extra indentation of third line accepts aligned methods in if + assignment for semantic alignment accepts methods being aligned with method that is an argument in assignment accepts method being aligned with method accepts method being aligned with method in assignment doesn't fail on a chain of aref calls accepts aligned method even when an aref is in the chain accepts aligned method with blocks in operation assignment registers an offense and corrects unaligned methods accepts 3 aligned methods accepts aligned method even when an aref is first in the chain registers an offense and corrects unaligned method in block body accepts methods being aligned with method that is an argument target_ruby_version >= 2.5 accepts key access to hash >= Ruby 2.7 accepts methods being aligned with method that is an argumentwhen using numbered parameter when EnforcedStyle is indented_relative_to_receiver registers an offense and corrects extra indentation of 3rd line in typical RSpec code accepts any indentation of parameters to #[] doesn't crash on unaligned multiline lambdas accepts indented methods in LHS of []= assignment registers an offense and corrects proc call without a selector accepts indented methods in for body accepts no extra indentation of third line accepts indented methods inside and outside a block registers an offense and corrects one space indentation of 2nd line registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array registers an offense and corrects extra indentation of 3rd line accepts correctly indented methods in operation accepts indentation relative to first receiver accepts alignment inside a grouped expression registers an offense and corrects 3 spaces indentation of second line accepts indented methods in ordinary statement registers an offense and corrects no indentation of second line accepts indentation of consecutive lines in typical RSpec code doesn't fail on unary operators accepts an expression where the first method spans multiple lines for possible semantic alignment accepts indented methods when EnforcedStyle is indented accepts any indentation of method parameters registers an offense and corrects the emacs ruby-mode 1.1 indentation of an expression in an array accepts indented methods in ordinary statement accepts indentation of assignment accepts indented methods in if condition registers an offense and corrects aligned operators in assignment accepts indented methods in LHS of []= assignment accepts special indentation of return if condition doesn't fail on unary operators registers an offense and corrects extra indentation of 3rd line in typical RSpec code registers an offense and corrects aligned methods in if condition registers an offense for a 2 space indentation of unless condition registers an offense and corrects proc call without a selector registers an offense and corrects extra indentation of third line registers an offense for a 2 space indentation of until condition accepts an expression where the first method spans multiple lines accepts indented methods in for body accepts no extra indentation of third line accepts normal indentation of method parameters accepts indented methods in if body accepts special indentation of return unless condition accepts double indentation of unless condition accepts indented methods in while body accepts correctly indented methods in operation accepts double indentation of if condition accepts special indentation of for expression registers an offense for a 2 space indentation of if condition accepts even indentation of consecutive lines in typical RSpec code accepts double indentation of while condition registers an offense for a 2 space indentation of while condition accepts indentation relative to first receiver accepts indented methods in until body registers an offense and corrects one space indentation of 2nd line registers an offense and corrects 1 space indentation of 3rd line accepts alignment inside a grouped expression doesn't crash on unaligned multiline lambdas registers an offense and corrects 3 spaces indentation of 2nd line accepts double indentation of until condition registers an offense and corrects no indentation of second line accepts any indentation of parameters to #[] registers an offense and corrects correct + unrecognized style accepts indented methods in unless body accepts normal indentation inside grouped expression accepts indented methods inside and outside a block registers an offense and corrects wrong indentation of for expression for possible semantic alignment accepts indented methods when indentation width is overridden for this cop accepts indentation of if condition which is offset by a single normal indentation step accepts indented methods in if body registers an offense for a 4 space indentation of while condition accepts correctly indented methods in operation accepts indented methods in until body accepts indented methods accepts indented methods in unless body registers an offense for a 4 space indentation of if condition accepts indentation of until condition which is offset by a single normal indentation step accepts indented methods in while body registers an offense for a 4 space indentation of until condition accepts indentation of unless condition which is offset by a single normal indentation step accepts indented methods in if condition accepts indentation of while condition which is offset by a single normal indentation step accepts indentation of assignment registers an offense for a 4 space indentation of unless condition RuboCop::Cop::Style::ZeroLengthPredicate when inspecting a StringIO object when initialized without arguments does not register an offense does not register an offense with top-level ::StringIO when initialized with a string does not register an offense does not register an offense with top-level ::StringIO when inspecting a Tempfile object does not register an offense with top-level ::Tempfile does not register an offense with collection variables registers an offense for `0 != collection.size` registers an offense for `0 == collection.size` registers an offense for `collection.size != 0` registers an offense for `collection.size == 0` when inspecting a File::Stat object does not register an offense with ::File does not register an offense with strings registers an offense for `string.size != 0` registers an offense for `0 != string.size` registers an offense for `string.size == 0` registers an offense for `0 == string.size` with hashes registers an offense for `hash.size == 0` registers an offense for `hash.size != 0` registers an offense for `0 == hash.size registers an offense for `0 != hash.size` when name of the variable is `size` or `length` accepts comparison accepts inequality check accepts equality check with arrays registers an offense for `array.length < 1` registers an offense for `0 == array.size` registers an offense for `array.size < 1` registers an offense for `array.length != 0` registers an offense for `array.size == 0` registers an offense for `1 > array.size` registers an offense for `1 > array.length` registers an offense for `0 < array.length registers an offense for `0 != array.size` registers an offense for `array.size != 0` registers an offense for `0 == array.length` registers an offense for `0 < array.size` registers an offense for `array.size > 0` registers an offense for `array.length == 0` registers an offense for `0 != array.length` registers an offense for `array.length > 0` RuboCop::Cop::Lint::UnusedBlockArgument inspection in a method calling `binding` without arguments accepts all arguments inside a method definition registers offenses in a method calling `binding` with arguments when a method argument is unused registers an offense when an optional keyword argument is unused when the method call is not `define_method` registers an offense when AllowUnusedKeywordArguments set does not care when the method call is `define_method` registers an offense when AllowUnusedKeywordArguments set does not care when a variable is not used does not care when an underscore-prefixed block argument is not used accepts when a block have a block local variable and the variable is unused registers an offense when a block takes multiple arguments and arguments are swap-assigned accepts and a splat argument is unused registers an offense and preserves splat and an argument with default value is unused registers an offense and preserves default value and an argument is unused registers an offense and all arguments are used accepts and all the arguments are unused registers offenses and suggests omitting them and unused arguments span multiple lines registers offenses and suggests omitting them and one argument is assigned to another, whilst other's value is not used registers an offense when a block takes single argument and the argument is unused registers an offense and suggests omitting that and the method call is `define_method` registers an offense when a lambda block takes arguments and an argument is unused registers an offense and all the arguments are unused registers offenses and suggests using a proc with an empty block when not configured to ignore empty blocks registers an offense when configured to ignore empty blocks does not register an offense when a method argument is not used does not care when IgnoreEmptyBlocks config parameter is set accepts an empty block with a single unused parameter accepts an empty block with multiple unused parameters registers an offense for a non-empty block with an unused parameter registers an offense for a non-empty block with multiple unused args RuboCop::ResultCache #save when the @path is not writable behaves like invalid cache location doesn't raise an exception behaves like invalid cache location doesn't raise an exception when the default internal encoding is UTF-8 writes non UTF-8 encodable data to file with no exception the cache path when CacheRootDirectory not set and XDG_CACHE_HOME is not set contains $HOME/.cache and XDG_CACHE_HOME is set contains the given path and UID when CacheRootDirectory is set contains the given root cached result that was saved with no command line option when --display-cop-names is given is invalid when --only is given is invalid when no option is given is valid and can be loaded when a symlink is present in the cache location and symlink attack protection is enabled prevents caching and prints a warning and symlink attack protection is disabled permits caching and prints no warning when team external_dependency_checksum changes is invalid when file permission have changed is invalid when end of line characters have changed is invalid when file contents have changed is invalid when team external_dependency_checksum is the same is valid when --format is given is valid and can be loaded when offenses are saved by autocorrect run serializes them with :uncorrected status when a cache source is read has utf8 encoding .cleanup removes the oldest files in the cache if needed RuboCop::Cop::Lint::ElseLayout registers an offense for expr on same line as else can handle elsifs handles empty braces accepts single-expr else regardless of layout handles ternary ops accepts proper else handles modifier forms RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks when many arguments are on multiple lines, two on same line registers an offense and corrects when one argument on same line does not add any offenses when many arguments are on multiple lines, three on same line registers an offense and corrects when two arguments are on next line does not add any offenses when argument starts on same line but ends on different line registers an offense and corrects when bracket hash assignment on multiple lines does not add any offenses when many arguments including hash are on multiple lines, three on same line registers an offense and corrects when bracket hash assignment key on multiple lines does not add any offenses when second argument starts on same line as end of first registers an offense and corrects RuboCop::Cop::Style::TrailingBodyOnClass registers offense with multi-line class auto-corrects with comment after body registers an offense when body trails after class definition accepts regular class accepts class inheritance when class is not on first line of processed_source auto-correct offense RuboCop::Cop::Utils::FormatString finds the correct number of fields #valid? returns true when there are only unnumbered formats returns false when there are numbered and named formats returns true when there are only named formats returns false when there are unnumbered and named formats returns false when there are unnumbered and numbered formats returns true when there are only named with escaped `%` formats returns true when there are only numbered formats #named_interpolation? behaves like named format sequence does not detect escaped named format sequence detects named format sequence behaves like named format sequence does not detect escaped named format sequence detects named format sequence behaves like named format sequence does not detect escaped named format sequence detects named format sequence behaves like named format sequence detects named format sequence does not detect escaped named format sequence RuboCop::Cop::Style::StringHashKeys does not register an offense when not using strings as keys does not register an offense when string key is used in IO.popen autocorrects strings as keys into symbols with the correct syntax does not register an offense when string key is used in Open3.capture3 registers an offense when using strings as keys registers an offense when using strings as keys mixed with other keys does not register an offense when string key is used in Open3.pipeline does not register an offense when string key is used in gsub! does not register an offense when string key is used in gsub RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage registers an offense when using `RUBY_VERSION` registers an offense when using `::RUBY_VERSION` does not register an offense when no `RUBY_VERSION` RuboCop::Cop::Layout::MultilineHashBraceLayout ignores empty hashes ignores single-line hashes ignores implicit hashes behaves like multiline literal brace layout same_line style opening brace on same line as first element allows closing brace on same line as multi-line element allows closing brace on same line from last element detects closing brace on different line from last element autocorrects closing brace on different line as last element detects closing brace on different line from multiline element with a chained call on the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace but no comment after the last element autocorrects the closing brace opening brace on separate line from first element autocorrects closing brace on different line from last element allows closing brace on same line as last multiline element detects closing brace on different line from last element allows closing brace on same line as last element heredoc auto-corrects safe heredoc offenses ignores heredocs that could share a last line detects heredoc structures that are safe to add to new_line style opening brace on separate line from first element allows closing brace on separate line from last element autocorrects closing brace on same line from last element detects closing brace on same line as last element allows closing brace on separate line from last multiline element opening brace on same line as first element detects closing brace on same line as last element allows closing brace on different line from last element allows closing brace on different line from multi-line element detects closing brace on same line as last multiline element autocorrects closing brace on same line as last element symmetrical style opening brace on same line as first element detects closing brace on different line from last element allows closing brace on same line as last multiline element autocorrects closing brace on different line from last element allows closing brace on same line as last element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace opening brace on separate line from first element allows closing brace on separate line from last element autocorrects closing brace on same line from last element detects closing brace on same line as last element allows closing brace on separate line from last multiline element behaves like multiline literal brace layout method argument when arguments to a method but no comment after the last element autocorrects the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace behaves like multiline literal brace layout trailing comma symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element RuboCop::Cop::Style::TrailingCommaInArrayLiteral with multi-line list of values when EnforcedStyleForMultiline is no_comma auto-corrects unwanted comma where HEREDOC has commas accepts a literal with no trailing comma registers an offense for trailing comma accepts HEREDOC with commas when EnforcedStyleForMultiline is consistent_comma accepts a multiline word array accepts a multiline array with items on a single line andtrailing comma accepts two values on the same line registers an offense for literal with two of the values on the same line and no trailing comma accepts a multiline array with a single item and trailing comma accepts trailing comma when closing bracket is on same line as last value registers an offense for no trailing comma when EnforcedStyleForMultiline is comma accepts a multiline array with a single item and trailing comma registers an offense for a literal with two of the values on the same line and a trailing comma accepts trailing comma accepts a multiline word array accepts literal with two of the values on the same line accepts an empty array being passed as a method argument when closing bracket is on same line as last value accepts literal with no trailing comma with single line list of values when EnforcedStyleForMultiline is consistent_comma registers an offense for trailing comma accepts single element literal without trailing comma accepts empty literal accepts rescue clause accepts literal without trailing comma when EnforcedStyleForMultiline is comma accepts empty literal accepts literal without trailing comma accepts single element literal without trailing comma registers an offense for trailing comma accepts rescue clause when EnforcedStyleForMultiline is no_comma accepts empty literal registers an offense for trailing comma accepts rescue clause accepts single element literal without trailing comma accepts literal without trailing comma RuboCop::Cop::Lint::ReturnInVoidContext with an initialize method containing a return without a value accepts when return is in top scope accepts with a setter method containing a return with a value registers an offense with a setter method containing a return without a value accepts with a class method called initialize containing a return accepts with a non initialize method containing a return accepts with an initialize method containing a return with a value registers an offense RuboCop::Cop::Style::EmptyMethod when configured with expanded style with a non-empty instance method definition allows multi line method with a comment allows single line method allows multi line method with an empty class method definition allows empty multi line method allows multi line method with a blank line registers an offense for single line method with a non-empty class method definition allows multi line method allows multi line method with comment allows single line method when method is nested in class scope registers an offense for single line method with an empty instance method definition allows multi line method with blank line registers an offense for single line method allows multi line method when configured with compact style with a non-empty class method definition allows multi line method with comment allows single line method allows multi line method with an empty class method definition allows single line method registers an offense for empty method with arguments registers an offense for method with blank line registers an offense for empty method with a non-empty instance method definition allows multi line method allows single line method allows multi line method with comment with an empty instance method definition allows single line method registers an offense for empty method registers an offense for method with arguments registers an offense for method with arguments without parens registers an offense for method with closing paren on following line registers an offense for method with blank line RuboCop::Cop::Style::BisectedAttrAccessor registers an offense and corrects when both accessors are in the same visibility scope registers an offense and corrects when attr and attr_writer exists registers an offense and corrects when both accessors of the name exists and accessor contains multiple names does not register an offense when accessors are withing different visibility scopes does not register an offense when using `attr_accessor` registers an offense and corrects when both accessors of the name exists registers an offense and corrects when both accessors of the splat exists registers an offense and corrects when withing eigenclass does not register an offense when only one accessor of the name exists RuboCop::Cop::Style::SignalException when enforced style is `semantic` registers an offense for fail in rescue section registers one offense for each raise accepts raise in def with multiple rescues registers an offense for `raise` and `fail` with `::Kernel` as explicit receiver accepts raise in def rescue section registers an offense for fail in def rescue section registers only offense for one raise that should be fail registers an offense for fail in second rescue registers an offense for `raise` and `fail` with `Kernel` as explicit receiver accepts `raise` and `fail` with explicit receiver accepts raise in rescue section is not confused by nested begin/rescue registers an offense for raise not in a begin/rescue/end registers an offense for raise in begin section registers an offense for raise in def body when enforced style is `fail` registers an offense for raise in rescue section registers an offense for raise in begin section registers an offense for raise in def body accepts `raise` with explicit receiver registers an offense for `raise` with `Kernel` as explicit receiver when enforced style is `raise` accepts `fail` with explicit receiver registers an offense for fail in begin section registers an offense for fail in def body registers an offense for `fail` with `Kernel` as explicit receiver accepts `fail` if a custom `fail` instance method is defined accepts `fail` if a custom `fail` singleton method is defined registers an offense for fail in rescue section RuboCop::Cop::Style::EachForSimpleLoop does not register offense for multiline block with parameters does not register offense for character range does not register offense for inline block with parameters does not register offense if range startpoint is not constant does not register offense if range endpoint is not constant when using an exclusive end range autocorrects the source with inline block autocorrects the range not starting with zero does not register offense for range not starting with zero and using param autocorrects the source with multiline block when using an inclusive end range autocorrects the range not starting with zero does not register offense for range not starting with zero and using param autocorrects the source with multiline block autocorrects the source with inline block RuboCop::Cop::VariableForce::Variable #referenced? when the variable is not assigned is expected to be falsey and the variable is referenced is expected to be truthy when the variable has an assignment and the variable is not yet referenced is expected to be falsey and the variable is referenced is expected to be truthy .new when non variable declaration node is passed raises error RuboCop::Cop::Style::RedundantPercentQ accepts %Q at the beginning of a section of a double quoted string with interpolation accepts %Q at the beginning of a double quoted string with interpolation accepts %q at the beginning of a double quoted string with interpolation accepts a heredoc string that contains %q accepts %q at the beginning of a section of a double quoted string with interpolation accepts %q containing string interpolation with %q strings registers an offense for no quotes accepts a string with escaped backslash and non-backslash characters registers an offense for only double quotes registers an offfense for a string containing escaped backslashes accepts a string with escaped non-backslash characters accepts a string with single quotes and double quotes registers an offense for only single quotes auto-corrects for strings that are concatenated with backslash accepts regular expressions starting with %q with %Q strings accepts a string with single quotes and double quotes registers an offense for dynamic string without quotes accepts regular expressions starting with %Q auto-corrects for strings that are concatenated with backslash accepts a string with double quotes and an escaped special character registers an offense for static string without quotes accepts a dynamic %Q string with double quotes accepts a string with double quotes and an escaped normal character registers an offense for static string with only double quotes RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective registers an offense for enabled cop within source code registers an offense for disabled cop within source code RuboCop::Cop::Style::OptionalArguments registers an offense for each optional argument when multiple optional arguments are followed by a required argument allows methods with only one optional argument allows methods without arguments allows methods with only one required argument registers an offense when an optional argument is followed by a required argument allows methods with only optional arguments allows methods with only required arguments allows methods with multiple optional arguments at the end named params with default values allows optional arguments before an optional named argument required params allows optional arguments to come before a mix of required and optional named argument registers an offense for optional arguments that come before required arguments where there are name arguments allows optional arguments before required named arguments RuboCop::Cop::Style::RegexpLiteral when PercentLiteralDelimiters is configured with slashes respects the configuration when auto-correcting when PercentLiteralDelimiters is configured with brackets respects the configuration when auto-correcting when regex contains slashes in interpolation ignores the slashes that do not belong // regex when EnforcedStyle is set to percent_r a multi-line `//` regex without slashes registers an offense a single-line `//` regex with slashes registers an offense a multi-line %r regex with slashes is accepted a single-line `//` regex without slashes registers an offense a single-line %r regex with slashes is accepted a single-line %r regex without slashes is accepted a multi-line %r regex without slashes is accepted a multi-line `//` regex with slashes registers an offense when EnforcedStyle is set to slashes a multi-line `//` regex without slashes is accepted a single-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted a single-line %r regex without slashes registers an offense a single-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a single-line `//` regex without slashes is accepted a single-line `//` regex with slashes and interpolation registers an offense when configured to allow inner slashes is accepted a single-line `%r//` regex with slashes is accepted when configured to allow inner slashes remains slashes after auto-correction a multi-line %r regex without slashes registers an offense a multi-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a multi-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted when EnforcedStyle is set to mixed a multi-line `//` regex with slashes registers an offense a single-line `//` regex without slashes is accepted a multi-line %r regex with slashes is accepted a single-line `//` regex with slashes registers an offense when configured to allow inner slashes is accepted a multi-line `//` regex without slashes registers an offense a single-line %r regex with slashes is accepted when configured to allow inner slashes registers an offense a single-line %r regex without slashes registers an offense a multi-line %r regex without slashes is accepted %r regex with other delimiters than curly braces registers an offense RuboCop::Cop::Metrics::AbcSize when Max is 100.321 reports size and max as <100, 100, 400> 424.3/100.3 when Max is 2.3 accepts a total score of 2.24 when Max is 2 accepts two assignments when Max is 0 registers an offense for a `define_method` accepts an empty `define_method` registers an offense for an assignment of an element accepts an empty method registers an offense for an assignment of a local variable registers an offense for complex content including A, B, and C scores treats safe navigation method calls like regular method calls + a condition registers an offense for an if modifier when method is in list of ignored methods does not register an offense when defining a class method does not register an offense when using `define_method` does not register an offense when defining an instance method when Max is 1.3 reports size and max as <1, 1, 4> 4.24/1.3 when Max is 10.3 reports size and max as <10, 10, 40> 42.43/10.3 when Max is 1000.3 reports size and max as <1000, 1000, 4000> 4243/1000 RuboCop::Cop::Layout::HeredocIndentation quoted by registers an offense for too deep indented with empty line displays message to use `<<~` instead of `<<` accepts for indented, with `~` registers an offense for not indented, with `~` registers an offense for not indented, without `~` accepts for an empty line registers an offense for not indented enough with empty line accepts for indented, but with `-` registers an offense for too deep indented accepts for include empty lines does not register an offense when not indented but with whitespace, with `-` registers an offense for first line minus-level indented, with `-` registers an offense for not indented enough with whitespace line accepts for indented, but without `~` accepts for not indented but with whitespace registers an offense for minus level indented registers an offense for too deep indented with whitespace line registers an offense for not indented displays message to use `<<~` instead of `<<-` when Layout/LineLength is configured accepts for long heredoc quoted by ` registers an offense for too deep indented with empty line registers an offense for too deep indented with whitespace line displays message to use `<<~` instead of `<<-` registers an offense for first line minus-level indented, with `-` registers an offense for too deep indented accepts for include empty lines accepts for not indented but with whitespace accepts for an empty line registers an offense for not indented displays message to use `<<~` instead of `<<` registers an offense for not indented enough with empty line registers an offense for not indented, with `~` accepts for indented, with `~` accepts for indented, but with `-` registers an offense for minus level indented does not register an offense when not indented but with whitespace, with `-` registers an offense for not indented enough with whitespace line registers an offense for not indented, without `~` accepts for indented, but without `~` when Layout/LineLength is configured accepts for long heredoc quoted by ' displays message to use `<<~` instead of `<<` registers an offense for too deep indented with whitespace line accepts for not indented but with whitespace registers an offense for not indented enough with empty line accepts for include empty lines registers an offense for minus level indented registers an offense for not indented enough with whitespace line registers an offense for not indented, with `~` registers an offense for not indented accepts for indented, but without `~` does not register an offense when not indented but with whitespace, with `-` accepts for indented, but with `-` registers an offense for too deep indented registers an offense for not indented, without `~` registers an offense for too deep indented with empty line accepts for an empty line accepts for indented, with `~` displays message to use `<<~` instead of `<<-` registers an offense for first line minus-level indented, with `-` when Layout/LineLength is configured accepts for long heredoc quoted by " displays message to use `<<~` instead of `<<-` registers an offense for minus level indented does not register an offense when not indented but with whitespace, with `-` registers an offense for not indented enough with whitespace line registers an offense for too deep indented with whitespace line registers an offense for first line minus-level indented, with `-` accepts for indented, with `~` registers an offense for too deep indented with empty line registers an offense for not indented registers an offense for too deep indented accepts for indented, but with `-` displays message to use `<<~` instead of `<<` accepts for include empty lines registers an offense for not indented, without `~` accepts for an empty line registers an offense for not indented, with `~` accepts for not indented but with whitespace registers an offense for not indented enough with empty line accepts for indented, but without `~` when Layout/LineLength is configured accepts for long heredoc RuboCop::Cop::Lint::UnreachableLoop handles inner loops without preceding continue statements does not register an offense when using `case` without `else` does not register an offense when using `if-elsif-else` and not all branches are breaking registers an offense when using `break` registers an offense when using `case-when-else` with all break branches does not register an offense when using `if` without `else` does not register an offense when using `case-when-else` and not all branches are breaking registers an offense when using `if-else` with all break branches with preceding continue statements does not register an offense when using `case-when-else` with all break branches does not register an offense when using `if-else` with all break branches does not register an offense when using `break` RuboCop::Cop::Style::IfUnlessModifierOfIfUnless provides a good error message `unless` / `else` with modifier registers an offense and corrects ternary with modifier registers an offense and corrects conditional with modifier in body accepts conditional with modifier registers an offense and corrects nested conditionals accepts RuboCop::Cop::Style::IdenticalConditionalBranches when one of the case branches is empty does not register an offense on if..elsif with no else doesn't register an offense with empty brace does not raise any error on case with identical trailing lines registers an offense on case without else doesn't register an offense on if..else with identical trailing lines registers an offense on if..else with identical leading lines registers an offense on if..else with slightly different trailing lines doesn't register an offense on case with identical bodies registers an offense on if..else with identical bodies registers an offense on case with identical leading lines registers an offense on case with empty when doesn't register an offense RuboCop::Cop::VariableForce #process_node when processing an empty regex does not raise an error when processing a regexp with a line break at the start of capture parenthesis does not raise an error when processing lvar node when the variable is not yet declared does not raise error RuboCop::Cop::Style::CollectionMethods registers an offense for find_all with proc param registers an offense for detect with block registers an offense for inject with proc param accepts collect without a block accepts detect with more than 1 param registers an offense for member? with proc param accepts find_all without a block accepts inject with more than 1 param registers an offense for collect with proc param accepts inject without a block registers an offense for inject with block registers an offense for detect with proc param registers an offense for collect with block accepts member? without a block registers an offense for member? with block accepts detect without a block accepts collect with more than 1 param accepts member? with more than 1 param registers an offense for find_all with block accepts find_all with more than 1 param RuboCop::Cop::Layout::SpaceAroundOperators accepts operator surrounded by tabs accepts the result of the ExtraSpacing Cop accepts ranges accepts rational accepts a unary accepts some operators that are exceptions & don't need spaces accepts operator symbols accepts def of operator accepts ::Kernel::raise accepts [] without space accepts an operator at the end of a line accepts operators with spaces accepts an operator at the beginning of a line accepts an assignment with spaces accepts [arg] without space accepts splat operator accepts exclamation point definition accepts the construct class < Include key returns the Include value #patterns_to_exclude when config file has AllCops => Exclude key returns the Exclude value #for_department always returns the department's config accepts a Symbol #file_to_exclude? when the passed path matches any of patterns to exclude returns true when the passed path does not match any of patterns to exclude returns false #deprecation_check when there is AllCops configuration if there are is an Includes key yields if there are is an Excludes key yields if there are no Excludes or Includes keys does not yield when there is no AllCops configuration does not yield whether the cop is enabled when configuration has no mention of a cop enables the cop that is not mentioned when all cops are disabled by default disables the cop that is not mentioned when all cops are explicitly enabled by default enables the cop that is not mentioned when a cop has configuration but no explicit Enabled setting enables the cop by default when an entire cop department is disabled but an individual cop is enabled still disables the cop when an entire cop department is enabled but an individual cop is disabled still disables the cop #make_excludes_absolute when config is in subdirectory generates valid absolute directory when config is in root directory generates valid absolute directory #for_badge takes into account the department works if department has no config #possibly_include_hidden? returns true when Include config includes a toplevel dotfile returns true when Include config includes a dotfile in a path returns true when Include config only includes regular paths returns true when Include config includes a regex #file_to_include? when the passed path does not match any of patterns to include returns false when the passed path matches any of patterns to include returns true RuboCop::Cop::Style::UnpackFirst does not register offense when using `#unpack1` when using `#unpack` accessing second element registers offense when using `#unpack` with square brackets when using `#unpack` with `#first` when using `#unpack` with `#at` when using `#unpack` with `#slice` when using `#unpack` with dot and square brackets RuboCop::Cop::Style::ColonMethodDefinition accepts a class method defined using . using self registers an offense for a class method defined using :: using the class name registers an offense for a class method defined using :: RuboCop::Cop::Style::EmptyElse configured to warn on empty else given an if-statement with no else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause using semicolons behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct not using semicolons behaves like auto-correct MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction with an else-clause with side-effects doesn't register an offense with an empty comment behaves like auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct MissingElse is case does auto-correction in an if-statement behaves like auto-correct MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction given an unless-statement with no else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is if does not auto-correct given a case statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is if does auto-correction MissingElse is case does not auto-correct with an else-clause containing only the literal nil doesn't register an offense with nested if and case statement behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is case does not auto-correct MissingElse is if does auto-correction configured to warn on empty else and nil in else given an unless-statement with a completely empty else-clause behaves like auto-correct MissingElse is if does not auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is if does not auto-correct MissingElse is case does auto-correction given a case statement with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is case does not auto-correct MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is if does auto-correction with an else-clause containing only the literal nil behaves like auto-correct MissingElse is both does not auto-correct MissingElse is if does auto-correction MissingElse is disabled does auto-correction MissingElse is case does not auto-correct given an if-statement with no else-clause doesn't register an offense with a completely empty else-clause behaves like auto-correct MissingElse is if does not auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is case does auto-correction with an else-clause containing only the literal nil with multiple elsifs behaves like auto-correct MissingElse is case does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is if does not auto-correct with one elsif behaves like auto-correct MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is if does not auto-correct MissingElse is disabled does auto-correction with an else-clause with side-effects doesn't register an offense configured to warn on nil in else given an if-statement with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil when the result is assigned to a variable behaves like auto-correct MissingElse is case does auto-correction MissingElse is both does not auto-correct MissingElse is disabled does auto-correction MissingElse is if does not auto-correct when standalone behaves like auto-correct MissingElse is if does not auto-correct MissingElse is case does auto-correction MissingElse is both does not auto-correct MissingElse is disabled does auto-correction with an else-clause containing only the literal nil using semicolons with one elsif behaves like auto-correct MissingElse is if does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction MissingElse is both does not auto-correct with multiple elsifs behaves like auto-correct MissingElse is if does not auto-correct MissingElse is disabled does auto-correction MissingElse is case does auto-correction MissingElse is both does not auto-correct with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense given an unless-statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil behaves like auto-correct MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is case does auto-correction MissingElse is if does not auto-correct with a completely empty else-clause doesn't register an offense given a case statement with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil using semicolons behaves like auto-correct MissingElse is case does not auto-correct MissingElse is if does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct when the result is assigned to a variable behaves like auto-correct MissingElse is if does auto-correction MissingElse is disabled does auto-correction MissingElse is both does not auto-correct MissingElse is case does not auto-correct with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense RuboCop::Cop::Style::SafeNavigation allows calls using safe navigation allows an object check before a negated predicate allows method calls that do not get called using . safe guarded by an object check allows a method call safeguarded when using `unless nil?` allows for empty if blocks with comments allows an object check before a nil check on a short chain allows an object check before a method call that is used in a regex comparison allows chained method calls during arithmetic operations safe guarded by an object check allows an object check before a method call that is used in a negated regex comparison allows method call that is used in a comparison safe guarded by an object check allows an object check before a method chain longer than 2 methods allows an object check before a negated predicate method chain allows a method call safeguarded with a negative check for the object when using `if` allows an object check before hash access allows object checks in the condition of an elsif statement and a method call on that object in the body allows a method chain that is used in a comparison safe guarded by an object check allows an object check before a nil check on a long chain allows an object check before a blank check allows calls on nil allows method call that is used in a spaceship comparison safe guarded by an object check allows method call that is used in a negated regex comparison safe guarded by an object check allows a method call as a parameter when the parameter is safe guarded with an object check allows an object check before a method call that is used in a comparison allows a method call safeguarded with a negative check for the object when using `unless` allows an object check before a method call that is used in a spaceship comparison allows an object check before a method chain that is used in a comparison allows an object check before a long chain with a block allows chained method calls during assignment safe guardedby an object check allows method call that is used in a regex comparison safe guarded by an object check allows calls to methods not safeguarded by respond_to behaves like all variable types object check before method call allows a non object check followed by a method call with a block allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a nil object check followed by a method call allows a nil object check followed by a method call with a block allows a nil object check followed by a method call with params allows a non object check followed by a method call with params and a block allows a non object check followed by a method call ConvertCodeThatCanStartToReturnNil false registers an offense for an object check followed by a method call with params and a block allows a non-nil object check followed by a method call registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with a block allows a non-nil object check followed by a method call with params method chaining corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call with params ConvertCodeThatCanStartToReturnNil true registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for a non-nil object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call registers an offense for an object check followed by a method call with params corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with params registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls if expression registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with a block inside of an unless nil check for the object does not lose comments within if expression registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object only moves comments that fall within the expression registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of a check for the object ternary expression allows ternary expression modifier if registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with params safeguarded with a negative check for the object behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like all variable types if expression registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object does not lose comments within if expression registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object only moves comments that fall within the expression ternary expression allows ternary expression modifier if registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call safeguarded with a nil check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params safeguarded with a nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check object check before method call allows a non object check followed by a method call with params and a block allows a nil object check followed by a method call with params allows a nil object check followed by a method call with a block allows a non object check followed by a method call with params allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call allows a non object check followed by a method call with a block allows a nil object check followed by a method call ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params and a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params and a block allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method calls that nil responds to registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with a block allows a non-nil object check followed by a method call method chaining corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a block behaves like all variable types modifier if registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a chained method call safeguarded with a check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check if expression registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a check for the object only moves comments that fall within the expression registers an offense for a single method call with params and a block inside of an unless nil check for the object does not lose comments within if expression registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call inside of a non-nil check for the object ternary expression allows ternary expression object check before method call allows a non object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a nil object check followed by a method call with a block allows a nil object check followed by a method call with params allows a non object check followed by a method call allows a non object check followed by a method call with a block allows a nil object check followed by a method call allows a nil object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil true registers an offense for a non-nil object check followed by a method call with a block corrects an object check followed by a method call and another check registers an offense for an object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call with params registers an offense for a non-nil object check followed by a method call registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method calls that nil responds to registers an offense for an object check followed by a method call allows a non-nil object check followed by a method call with params and a block allows a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call with a block registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params and a block allows a non-nil object check followed by a method call registers an offense for an object check followed by a method call with params method chaining corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a symbol proc behaves like all variable types modifier if registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check object check before method call allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a non object check followed by a method call allows a nil object check followed by a method call with params allows a nil object check followed by a method call allows a non object check followed by a method call with params and a block allows a nil object check followed by a method call with a block allows a non object check followed by a method call with a block ConvertCodeThatCanStartToReturnNil true registers an offense for an object check followed by a method call corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls allows an object check followed by chained method calls with blocks ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with params allows a non-nil object check followed by a method call registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for an object check followed by a method call with params allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method calls that nil responds to registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with params and a block method chaining corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call if expression registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object does not lose comments within if expression registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of a check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call inside of an unless nil check for the object only moves comments that fall within the expression allows a single method call inside of a check for the object with an else registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params inside of an unless negative check for the object registers an offense for a single method call with a block inside of an unless negative check for the object ternary expression allows ternary expression behaves like all variable types modifier if registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call safeguarded with a negative nil check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a negative check for the object behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check if expression registers an offense for a single method call inside of a check for the object does not lose comments within if expression registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call inside of an unless negative check for the object only moves comments that fall within the expression registers an offense for a single method call with params and a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with a block inside of a check for the object ternary expression allows ternary expression object check before method call allows a non object check followed by a method call with params allows a non object check followed by a method call with a block allows a nil object check followed by a method call with params allows a nil object check followed by a method call with a block allows a nil object check followed by a method call allows a nil object check followed by a method call with params and a block allows a non object check followed by a method call allows a non object check followed by a method call with params and a block ConvertCodeThatCanStartToReturnNil true registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call registers an offense for a non-nil object check followed by a method call with a block corrects an object check followed by a method call and another check registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call with params registers an offense for a non-nil object check followed by a method call with params and a block method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls ConvertCodeThatCanStartToReturnNil false allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method calls that nil responds to registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method call with params registers an offense for an object check followed by a method call allows a non-nil object check followed by a method call registers an offense for a check for the object followed by a method call in the condition for an if expression allows a non-nil object check followed by a method call with params allows a non-nil object check followed by a method call with params and a block method chaining corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call corrects an object check followed by a chained method call with a block respond_to? allows method calls safeguarded by a respond_to check allows method calls safeguarded by a respond_to check on adifferent variable but the same method allows method calls safeguarded by a respond_to check to a different method allows method calls safeguarded by a respond_to check on adifferent variable and method allows enumerable accessor method calls safeguarded by a respond_to check behaves like all variable types if expression registers an offense for a single method call inside of a check for the object allows a single method call inside of a check for the object with an else registers an offense for a single method call with a block inside of a check for the object registers an offense for a single method call with a block inside of an unless nil check for the object registers an offense for a single method call with params and a block inside of a check for the object registers an offense for a single method call inside of a non-nil check for the object registers an offense for a single method call inside of an unless nil check for the object registers an offense for a single method call with params inside of a check for the object registers an offense for a single method call with params inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless nil check for the object registers an offense for a single method call with a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of a non-nil check for the object registers an offense for a single method call with params inside of an unless negative check for the object only moves comments that fall within the expression registers an offense for a single method call with a block inside of a non-nil check for the object registers an offense for a single method call inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless negative check for the object registers an offense for a single method call with params and a block inside of an unless nil check for the object does not lose comments within if expression ternary expression allows ternary expression modifier if registers an offense for a method call safeguarded with a check for the object registers an offense for a method call with a block safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a check for the object registers an offense for a method call with params and a block safeguarded with a nil check for the object registers an offense for a method call with params and a block safeguarded with a negative nil check for the object registers an offense for a chained method call safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative nil check for the object registers an offense for a method call with a block safeguarded with a negative check for the object registers an offense for a method call with params and a block safeguarded with a negative check for the object registers an offense for a method call with a block safeguarded with a check for the object registers an offense for a method call that nil responds to safe guarded by an object check registers an offense for a method call with params safeguarded with a nil check for the object registers an offense for a method call on an accessor safeguarded by a check for the accessed variable registers an offense for a chained method call safeguarded with a check for the object registers an offense for an object check followed by a method call with a comment at EOL registers an offense for a method call safeguarded with a nil check for the object registers an offense for a method call with params safeguarded with a check for the object registers an offense for a method call with params safeguarded with a negative check for the object registers an offense for a method call with params safeguarded with a negative nil check for the object registers an offense for a method call safeguarded with a negative check for the object registers an offense for a chained method call safeguarded with an unless nil check for the object registers an offense for a method call safeguarded with a negative nil check for the object behaves like safe guarding logical break keywords allows a method call being passed to raise safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to break safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to next safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to fail safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to return safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to throw safe guarded by an object check behaves like safe guarding logical break keywords allows a method call being passed to yield safe guarded by an object check object check before method call allows a nil object check followed by a method call with a block allows a non object check followed by a method call allows a nil object check followed by a method call allows a non object check followed by a method call with a block allows a non object check followed by a method call with params and a block allows a non object check followed by a method call with params allows a nil object check followed by a method call with params and a block allows a nil object check followed by a method call with params ConvertCodeThatCanStartToReturnNil false registers an offense for an object check followed by a method call with a block registers an offense for an object check followed by a method calls that nil responds to allows a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call allows a non-nil object check followed by a method call with params registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call with params allows a non-nil object check followed by a method call allows a non-nil object check followed by a method call with params and a block registers an offense for a check for the object followed by a method call in the condition for an if expression method chaining corrects an object check followed by a chained method call with params corrects an object check followed by a chained method call with a symbol proc corrects an object check followed by a chained method call with a block corrects an object check followed by a chained method call ConvertCodeThatCanStartToReturnNil true corrects an object check followed by a method call and another check registers an offense for a non-nil object check followed by a method call with params registers an offense for a check for the object followed by a method call in the condition for an if expression registers an offense for an object check followed by a method call registers an offense for a non-nil object check followed by a method call with params and a block registers an offense for a non-nil object check followed by a method call with a block registers an offense for an object check followed by a method call with params and a block registers an offense for an object check followed by a method call with a block registers an offense for a non-nil object check followed by a method call registers an offense for an object check followed by a method call with params method chaining registers an offense for an object check followed by chained method calls with blocks with Lint/SafeNavigationChain disabled allows an object check followed by chained method calls with blocks allows an object check followed by chained method calls RuboCop::CLI --disable-uncorrectable does not disable anything for cops that support autocorrect if a one-line disable statement doesn't fit adds before-and-after disable statement if one one-line disable statement fits adds it when the cop supports autocorrect but does not correct the offense adds it and there are two offenses of the same kind on one line adds a single one-line disable statement but there are more offenses on the line and they don't all fit adds both one-line and before-and-after disable statements RuboCop::Cop::Layout::MultilineArrayBraceLayout ignores implicit arrays ignores empty arrays ignores single-line arrays when comment present before closing brace corrects closing brace without crashing behaves like multiline literal brace layout method argument when arguments to a method but no comment after the last element autocorrects the closing brace and a comment after the last element does not autocorrect the closing brace detects closing brace on separate line from last element behaves like multiline literal brace layout heredoc detects heredoc structures that are safe to add to ignores heredocs that could share a last line auto-corrects safe heredoc offenses same_line style opening brace on same line as first element allows closing brace on same line from last element detects closing brace on different line from multiline element allows closing brace on same line as multi-line element detects closing brace on different line from last element autocorrects closing brace on different line as last element with a chained call on the closing brace and a comment after the last element does not autocorrect the closing brace detects closing brace on separate line from last element but no comment after the last element autocorrects the closing brace opening brace on separate line from first element detects closing brace on different line from last element allows closing brace on same line as last element autocorrects closing brace on different line from last element allows closing brace on same line as last multiline element symmetrical style opening brace on separate line from first element detects closing brace on same line as last element allows closing brace on separate line from last element autocorrects closing brace on same line from last element allows closing brace on separate line from last multiline element opening brace on same line as first element autocorrects closing brace on different line from last element allows closing brace on same line as last element detects closing brace on different line from last element allows closing brace on same line as last multiline element with a chained call on the closing brace but no comment after the last element autocorrects the closing brace and a comment after the last element does not autocorrect the closing brace detects closing brace on separate line from last element new_line style opening brace on separate line from first element autocorrects closing brace on same line from last element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element detects closing brace on same line as last element opening brace on same line as first element allows closing brace on different line from multi-line element allows closing brace on different line from last element detects closing brace on same line as last element autocorrects closing brace on same line as last element detects closing brace on same line as last multiline element behaves like multiline literal brace layout trailing comma same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element RuboCop::Cop::Lint::DuplicateRescueException registers an offense when duplicate exception exists registers an offense when duplicate exception exists within rescues with empty `rescue` branch does not register an offense when there are no duplicate exceptions registers an offense when multiple duplicate exceptions exist registers an offense when duplicate exception exists within rescues with `else` branch registers an offense when duplicate exception splat exists RuboCop::Cop::Lint::NestedPercentLiteral registers offense for repeated nested percent literals registers no offense for percent modifier character in isolation registers offense for multiply nested percent literals registers no offense for percents in the middle of literals registers no offense for array registers no offense for empty array registers offense for nested percent literals registers no offense for nestings under percent when handling invalid UTF8 byte sequence registers offense for nested percent literal registers no offense for array RuboCop::Cop::InternalAffairs::UselessMessageAssertion does not register an offense for an assertion about the message registers an offense for described_class::MSG in let registers an offense for specs that assert using the MSG RuboCop::Cop::Layout::LeadingCommentSpace accepts =begin/=end comments registers an offense and corrects #! after the first line does not register an offense for only #s does not register an offense for more than one space registers an offense and corrects comment without leading space does not register an offense for more than one # accepts sprockets directives accepts rdoc syntax does not register an offense for # followed by no text does not register an offense for #! on first line file named config.ru does not register an offense for #\ on first line registers an offense and corrects for #\ after the first line file not named config.ru registers an offense and corrects #\ after the first line registers an offense and corrects #\ on first line Gemfile Ruby comment when config option is enabled file named Gemfile does not register an offense when using ruby config as comment file not named Gemfile registers an offense when using ruby config as comment when config option is disabled registers an offense when using ruby config as comment Doxygen style when config option is enabled does not register offense when using Doxygen style when config option is disabled registers an offense and corrects using Doxygen style RuboCop::Cop::Security::JSONLoad registers an offense and corrects JSON.load does not register an offense for JSON under another namespace allows JSON.dump allows JSON.parse registers an offense and corrects JSON.restore RuboCop::Cop::Layout::LineLength accepts the first line if it is a shebang line registers an offense for a line that's 81 characters wide accepts a line that's 80 characters wide registers an offense for long line before __END__ but not after highlights excessive characters when AllowURI option is enabled and the URL does not have a http(s) scheme rejects the line and the scheme has been configured does not register an offense and the excessive characters include part of a URL and another word registers an offense for the line and an error other than URI::InvalidURIError is raised while validating a URI-ish string does not crash and the excessive characters include a complete URL registers an offense for the line and the URL fits within the max allowed characters registers an offense for the line and all the excessive characters are part of a URL accepts the line and the URL is wrapped in single quotes accepts the line and the URL is wrapped in double quotes accepts the line when IgnoredPatterns option is set accepts long lines matching a pattern but not other long lines when IgnoreCopDirectives is disabled and the source is acceptable length with an inline comment highlights the excess comment with a trailing RuboCop directive registers an offense for the line highlights the excess directive and the source is too long and has a trailing cop directive highlights the excess source and cop directive when line is indented with tabs accepts a short line registers an offense for a long line when AllowURI option is disabled and all the excessive characters are part of a URL registers an offense for the line when AllowHeredoc option is enabled accepts long lines in heredocs and only certain heredoc delimiters are permitted rejects long lines in heredocs with not permitted delimiters when the source has no AST does not crash autocorrection HEREDOC when over limit with semicolon adds offense and does not autocorrect array when has inside array adds an offense only to outer and autocorrects it when already on two lines does not add any offenses when two arrays on two lines allows outer to get broken first adds an offense only to inner and does not autocorrect it when under limit does not add any offenses when over limit adds an offense and autocorrects it no breakable collections adds an offense and does not autocorrect it comments when over limit with semicolon adds offense and does not autocorrect semicolon when under limit does not add any offenses semicolon inside string literal adds offense and autocorrects elsewhere when over limit and many spaces around semicolon adds offense and autocorrects it by breaking the semicolonbefore the hash when over limit adds offense and autocorrects it by breaking the semicolonbefore the hash when over limit and one semicolon at the end adds offense and does not autocorrectbefore the hash when over limit and many semicolons at the end adds offense and does not autocorrectbefore the hash when over limit and semicolon at end of line adds offense and autocorrects it by breaking the first semicolonbefore the hash when over limit and many semicolons adds offense and autocorrects it by breaking the semicolonbefore the hash semicolons inside string literal adds offense and autocorrects elsewhere method call when nested method calls allows outer to get broken up first adds offense and does not autocorrect when call with hash on same line adds an offense only to outer and autocorrects it when two method calls adds an offense only to outer and autocorrects it when over limit adds an offense and autocorrects it when two together does not add any offenses when under limit does not add any offenses long blocks braces adds an offense and does correct it do/end adds an offense and does correct it no spaces adds an offense and does correct it lambda syntax when argument is not enclosed in parentheses registers an offense and corrects when argument is enclosed in parentheses registers an offense and corrects let block adds an offense and does correct it hash when under limit does not add any offenses when over limit because of a comment adds an offense and does not autocorrect when over limit and already on multiple lines long key adds an offense and does not autocorrect when hash in method call adds an offense only to outer and autocorrects it when over limit rocket adds an offense and autocorrects it when nested hashes on same line adds an offense only to outer and autocorrects it when over limit rocket symbol adds an offense and autocorrects it when over limit and keys already on multiple lines adds an offense and does not autocorrect when over limit adds an offense and autocorrects it affecting by IndentationWidth from Layout\Tab with AllowURI option accepts a line that's including URI with text accepts a line that's including URI accepts a line that's including URI in quotes with text accepts a line that's including URI and exceeds by 1 char behaves like with tabs indentation accepts a line that's including 1 tab with size 2 and 28 other characters highlights excessive characters registers an offense for a line that's including 2 tab with size 2 and 28 other characters without AllowURI option behaves like with tabs indentation highlights excessive characters registers an offense for a line that's including 2 tab with size 2 and 28 other characters accepts a line that's including 1 tab with size 2 and 28 other characters when IgnoreCopDirectives is enabled and the source is too long registers an offense for the line highlights only the non-directive part and the source contains non-directive #s as non-comment highlights only the non-directive part registers an offense for the line and the source contains non-directive # as comment registers an offense for the line highlights only the non-directive part and the Rubocop directive is excessively long accepts the line and the Rubocop directive causes an excessive line length accepts the line and has explanatory text does not register an offense RuboCop::Cop::Style::PercentQLiterals when EnforcedStyle is upper_case_q without interpolation accepts double quotes accepts single quotes accepts %Q registers offense for %q with special characters accepts %q accepts %Q with interpolation accepts double quotes accepts %q accepts single quotes accepts %Q when EnforcedStyle is lower_case_q with interpolation accepts %Q accepts %q accepts double quotes accepts single quotes without interpolation accepts double quotes accepts %q registers offense for %Q accepts single quotes with special characters accepts %q accepts %Q RuboCop::Cop::Layout::SpaceInLambdaLiteral when configured to enforce spaces registers an offense and corrects no space in the inner nested lambda does not register an offense for multi-line lambdas registers an offense and corrects no space between -> and ( registers an offense and corrects no space in the outer nested lambda does not register an offense for no space between -> and { does not register an offense for a space between -> and ( registers an offense and corrects no space in both lambdas when nested when configured to enforce no space does not register an offense for no space between -> and ( does not register an offense for multi-line lambdas registers an offense and corrects spaces between -> and ( registers an offense and corrects a space in the inner nested lambda register offenses and correct spaces in both lambdas when nested registers an offense and corrects a space between -> and ( does not register an offense for a space between -> and { registers an offense and corrects a space in the outer nested lambda RuboCop::Cop::Style::ExponentialNotation EnforcedStyle is integral registers an offense for mantissa divisible by 10 registers no offense for an integral mantissa registers no offense for negative exponent registers no offense for a regular float registers no offense for negative mantissa registers an offense for decimal mantissa registers no offense for a float smaller than 1 EnforcedStyle is scientific registers an offense for mantissa equal to 10 registers no offense for a mantissa equal to 1 registers no offense for a mantissa between 1 and 10 registers an offense for mantissa greater than 10 registers no offense for a negative mantissa registers no offense for a negative exponent registers an offense for mantissa smaller than 1 registers no offense for a float smaller than 1 registers no offense for a regular float EnforcedStyle is engineering registers an offense for mantissa smaller than -1000 registers an offense for a mantissa greater than -0.1 registers no offense for a float smaller than 1 registers no offense for a negative mantissa registers no offense for a large mantissa registers no offense for a regular float registers an offense for exponent equal to 4 registers no offense for a negative exponent registers an offense for mantissa smaller than 0.1 registers no offense for a mantissa equal to 1 registers an offense for exponent equal to -2 RuboCop::Cop::Style::ColonMethodCall registers an offense for instance method call with arg does not register an offense for nested class does not register an offense for Java static types does not register an offense for constant access does not register an offense for op methods registers an offense for instance method call does not register an offense when for constructor methods does not register an offense for Java package namespaces registers an offense for class method call registers an offense for class method call with arg RuboCop::Cop::Lint::FloatOutOfRange does not register an offense for 0.0 does not register an offense for respectably sized floats does not register an offense for tiny little itty bitty floats on whopping big floats which tip the scales registers an offense on floats so close to zero that nobody can tell the difference registers an offense RuboCop::Cop::Style::Strip registers an offense for str.lstrip.rstrip registers an offense for str.rstrip.lstrip RuboCop::Cop::Style::Send with send and without a receiver registers an offense for an invocation with args does not register an offense for an invocation without args and with a receiver does not register an offense for an invocation without args registers an offense for an invocation with args when using safe navigation operator registers an offense for an invocation with args with public_send and without a receiver does not register an offense for an invocation without args does not register an offense for an invocation with args and with a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args with __send__ and with a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args and without a receiver does not register an offense for an invocation with args does not register an offense for an invocation without args RuboCop::Cop::Style::MultilineMethodSignature when arguments span a single line when defining an instance method registers an offense when closing paren is on the following line when method signature is on a single line does not register an offense for parameterized method does not register an offense for unparameterized method when defining an class method when method signature is on a single line does not register an offense for unparameterized method does not register an offense for parameterized method when arguments span a single line registers an offense when closing paren is on the following line when arguments span multiple lines when defining an instance method registers an offense when `end` is on the same line registers an offense when `end` is on the following line when correction would exceed maximum line length does not register an offense when defining an class method registers an offense when `end` is on the following line registers an offense when `end` is on the same line when correction would not exceed maximum line length registers an offense RuboCop::Cop::Layout::FirstArgumentIndentation when EnforcedStyle is consistent when indentation width is overridden for this cop only accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 2 registers an offense and corrects an under-indented first argument registers an offense and corrects an over-indented first argument accepts operator calls accepts method calls with no arguments registers an offense and corrects lines affected by another offense does not view chained call as an outer method call does not view []= as an outer method call accepts a first argument that is not preceded by a line break when using safe navigation operator registers an offense and corrects an under-indented 1st argument when the receiver contains a line break accepts a correctly indented first argument registers an offense and corrects an over-indented first argument accepts a correctly indented first argument preceded by an empty line when preceded by a comment line registers an offense and corrects an under-indented first argument accepts a correctly indented first argument for assignment accepts a correctly indented first argument and does not care about the second argument with line break registers an offense and corrects an under-indented first argument accepts a correctly indented first argument for method calls within method calls accepts first argument indented relative to previous line registers an offense and corrects an over-indented first argument when EnforcedStyle is consistent_relative_to_receiver when indentation width is overridden for this cop only registers an offense and corrects an over-indented first argument accepts a correctly indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument for method calls within method calls with outer parentheses registers an offense and corrects an over-indented 1st argument indents all relative to the receiver without outer parentheses indents all relative to the receiver accepts a first argument with special indentation when IndentationWidth:Width is 2 registers an offense and corrects an under-indented first argument accepts a first argument that is not preceded by a line break registers an offense and corrects lines affected by other offenses accepts method calls with no arguments accepts operator calls does not view chained call as an outer method call registers an offense and corrects an over-indented first argument does not view []= as an outer method call for assignment register an offense and corrects a correctly indented first argument and does not care about the second argument with line break accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when the receiver contains a line break accepts a correctly indented first argument preceded by an empty line registers an offense and corrects an over-indented 1st argument accepts a correctly indented first argument when preceded by a comment line accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when EnforcedStyle is special_for_inner_method_call when IndentationWidth:Width is 2 does not view []= as an outer method call accepts method calls with no arguments accepts operator calls registers an offense and corrects an over-indented first argument accepts a first argument that is not preceded by a line break registers an offense and corrects lines affected by another offense registers an offense and corrects an under-indented first argument does not view chained call as an outer method call for assignment accepts a correctly indented first argument and does not care about the second argument with line break registers an offense and corrects an under-indented first argument accepts a correctly indented first argument when using safe navigation operator registers an offense and corrects an under-indented 1st argument when the receiver contains a line break registers an offense and corrects an over-indented first argument accepts a correctly indented first argument accepts a correctly indented first argument preceded by an empty line when preceded by a comment line accepts a correctly indented first argument registers an offense and corrects an under-indented first argument for method calls within method calls without outer parentheses accepts a first argument with special indentation with outer parentheses registers an offense and corrects an over-indented first argument when indentation width is overridden for this cop only accepts a correctly indented first argument registers an offense and corrects an over-indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when EnforcedStyle is special_for_inner_method_call_in_parentheses when IndentationWidth:Width is 2 registers an offense and corrects an under-indented first argument registers an offense and corrects lines affected by another offense accepts method calls with no arguments registers an offense and corrects an over-indented first argument accepts operator calls accepts a first argument that is not preceded by a line break does not view chained call as an outer method call does not view []= as an outer method call for assignment accepts a correctly indented first argument and does not care about the second argument with line break accepts a correctly indented first argument registers an offense and corrects an under-indented first argument when using safe navigation operator registers an offense and corrects an under-indented 1st argument when the receiver contains a line break accepts a correctly indented first argument registers an offense and corrects an over-indented first argument accepts a correctly indented first argument preceded by an empty line when preceded by a comment line registers an offense and corrects an under-indented first argument accepts a correctly indented first argument when IndentationWidth:Width is 4 registers an offense and corrects an over-indented first argument when indentation width is overridden for this cop only accepts a correctly indented first argument registers an offense and corrects an over-indented first argument for method calls within method calls with outer parentheses registers an offense and corrects an over-indented first argument registers an offense and corrects an under-indented first argument accepts a correctly indented first argument with fullwidth characters accepts a correctly indented first argument in interpolation without outer parentheses accepts a first argument with consistent style indentation RuboCop::Cop::Lint::UselessElseWithoutRescue with `else` without `rescue` registers an offense with `else` with `rescue` accepts RuboCop::Cop::Lint::UnderscorePrefixedVariableName in a method calling `super` without arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used explicitly does not register an offense when an underscore-prefixed variable in top-level scope is used registers an offense when an underscore-prefixed variable is captured by a block accepts in a method calling `binding` without arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used explicitly does not register an offense when an underscore-prefixed named capture variable is used registers an offense when an underscore-prefixed method argument is used registers an offense when non-underscore-prefixed variable is used does not register an offense when an underscore-prefixed variable is used registers an offense when an underscore-prefixed block argument is used registers an offense registers an offense when an underscore-prefixed variable is reassigned does not register an offense in a method calling `binding` with arguments when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed argument is not used does not register an offense in a method calling `super` with arguments when an underscore-prefixed argument is not used does not register an offense when an underscore-prefixed argument is used explicitly registers an offense when an underscore-prefixed keyword block argument is used registers an offense when AllowKeywordBlockArguments is set does not register an offense RuboCop::Cop::Style::DateTime does not register an offense when using Time for current time registers an offense when using DateTime for current time does not register an offense when using Date for modern date does not register an offense when using DateTime for historic date registers an offense when using ::DateTime for current time registers an offense when using DateTime for modern date does not register an offense when using ::DateTime for historic date does not register an offense when using DateTime in another namespace when configured to allow #to_datetime does not register an offense when configured to not allow #to_datetime registers an offense RuboCop::Cop::Style::InlineComment registers an offense for a trailing inline comment does not register an offense for a standalone comment does not register an offense for special rubocop inline comments RuboCop::Cop::Lint::NonDeterministicRequireOrder when not requiring files does not register an offense when requiring files with unsorted glob registers an offsense and autocorrects to add .sort with top-level ::Dir registers an offense and corrects to add .sort with require block passed as parameter registers an offense an autocorrects to add sort with direct block glob registers an offsense and autocorrects to add .sort.each with require block passed as parameter registers an offense and autocorrects to add sort with top-level ::Dir registers an offense and corrects to add .sort.each with sorted glob does not register an offense with unsorted index registers an offsense and autocorrects to add .sort registers an offsense with extra logic with top-level ::Dir registers an offense and corrects to add .sort with require block passed as parameter registers an offense an autocorrects to add sort with sorted index does not register an offense RuboCop::Cop::Layout::HashAlignment accepts single line hash accepts several pairs per line accepts pairs that don't start a line register no offense for yield without args register no offense for superclass call without args with default configuration accepts left-aligned hash keys with single spaces does not register an offense when value starts on next line registers an offense and corrects zero or multiple spaces registers an offense and corrects alignment when using double splat in an explicit hash registers an offense and corrects misaligned hash keys registers an offense and corrects alignment when using double splat in braces registers an offense and corrects mixed hash styles registers an offense and corrects table alignment registers an offense and corrects misaligned mixed multiline hash keys registers an offense and corrects multiline value starts in wrong place registers an offense and corrects separator alignment with implicit hash as last argument registers an offense and corrects right alignment of keys registers an offense and corrects misaligned hash keys accepts aligned hash keys accepts an empty hash always inspect last argument hash registers an offense and corrects misaligned keys in implicit hash for super registers offense and corrects misaligned keys in implicit hash registers an offense and corrects misaligned keys in explicit hash for yield registers offense and corrects misaligned keys in explicit hash registers an offense and corrects misaligned keys in implicit hash for yield registers an offense and corrects misaligned keys in explicit hash for super ignore implicit last argument hash registers an offense and corrects misaligned keys in explicit hash for yield registers an offense and corrects misaligned keys in explicit hash accepts misaligned keys in implicit hash accepts misaligned keys in implicit hash for yield accepts misaligned keys in implicit hash for super registers an offense and corrects misaligned keys in explicit hash for super with separator alignment configuration registers an offense and corrects misaligned hash rockets registers an offense and corrects misaligned hash values registers an offense and corrects mixed indentation and spacing accepts single line hash accepts hashes with different separators accepts several pairs per line accepts pairs that don't start a line accepts aligned hash keys accepts an empty hash doesn't break code by moving long keys too far left with table+separator alignment configuration accepts a single method argument entry with colon with invalid configuration fails with table alignment configuration accepts aligned hash keys and values accepts pairs that don't start a line accepts an empty hash accepts single line hash registers an offense and corrects for misaligned hash keys registers an offense and corrects misaligned hash rockets accepts several pairs per line accepts a keyword splat only hash accepts a multiline array of single line hashes accepts a symbol only hash followed by a keyword splat accepts hashes that use different separators and double splats registers an offense for misaligned hash values accepts hashes that use different separators ignore explicit last argument hash accepts misaligned keys in explicit hash for yield registers an offense and corrects misaligned keys in implicit hash for super registers an offense and corrects misaligned keys in implicit hash accepts misaligned keys in explicit hash for super registers an offense and corrects misaligned keys in implicit hash for yield accepts misaligned keys in explicit hash with different settings for => and : registers offenses and correct misaligned entries accepts aligned entries always ignore last argument hash accepts misaligned keys in explicit hash for yield accepts misaligned keys in explicit hash accepts misaligned keys in implicit hash accepts misaligned keys in explicit hash for super accepts misaligned keys in implicit hash for super accepts misaligned keys in implicit hash for yield with multiple preferred(key and table) alignment configuration accepts aligned hash keys with mixed hash style accepts aligned hash keys, by both accepts an empty hash registers an offense and corrects misaligned hash values, prefer key when least offenses registers an offense and corrects misaligned hash values accepts aligned hash keys, by table registers an offense and corrects misaligned hash values, works separate for each hash registers an offense and corrects misaligned hash keys with mixed hash style registers an offense and corrects misaligned hash values, prefer table when least offenses accepts aligned hash keys, by keys table and key config registers an offense and corrects misaligned hash values, prefer table because it is specified first RuboCop::Cop::Style::NestedParenthesizedCalls on an aref, nested in a parenthesized method call doesn't register an offense on a non-parenthesized call nested in a parenthesized one with a single argument to the nested call registers an offense when using safe navigation operator registers an offense with multiple arguments to the nested call registers an offense on a nested, parenthesized method call doesn't register an offense on a non-parenthesized method call doesn't register an offense on a permitted method doesn't register an offense on a deeply nested argument doesn't register an offense backslash newline in method call registers an offense on a call with no arguments, nested in a parenthesized one doesn't register an offense on a method call with no arguments doesn't register an offense on a call to a setter method doesn't register an offense RuboCop::Cop::Style::EachWithObject ignores inject and reduce with passed in, but not returned hash ignores inject and reduce with condition as body correctly autocorrects with return value only does not blow up for reduce with no arguments correctly autocorrects finds inject and reduce with passed in and returned hash ignores inject/reduce with assignment to accumulator param in block ignores inject and reduce passed in symbol ignores inject and reduce with empty body when a simple literal is passed as initial value ignores inject/reduce RuboCop::Cop::Style::RedundantCondition ternary expression (?:) accepts expressions when the condition and if branch do not match when condition and if_branch are same registers an offense and corrects when the else branch contains an erange registers an offense and corrects when the else branch contains `and` registers an offense and corrects when the else branch contains an irange registers an offense and corrects class vars registers an offense and corrects nested vars registers an offense and corrects registers an offense and corrects when the else branch contains `rescue` registers an offense and corrects functions when inverted condition (unless) registers no offense when condition and else branch are same registers an offense accepts complex unless branches when regular condition (if) accepts different when the condition does not match the branch accepts elsif when condition and if_branch are same registers an offense and corrects when the else branch contains an irange registers an offense and corrects multiline nodes registers an offense and corrects complex one liners auto-corrects when using `<<` method higher precedence than `||` operator accepts complex else branches accepts an elsif branch registers an offense and corrects registers an offense and corrects when a method without argument parentheses in `else` registers an offense and corrects modifier nodes offense registers an offense and corrects when `if` condition and `then` branch are the same and it has no `else` branch registers an offense and corrects when using modifier if accepts when using ternary if in `else` branch registers an offense and corrects when `raise` without argument parentheses in `else` RuboCop::Cop::Layout::ClassStructure with a complete ordered example does not create offense with attribute macros before after validations is expected to eq class Person include AnotherModule extend SomeModule CustomError = Cla...rotected_method end private def some_private_method end end simple example is expected to eq "class Person\n include AnotherModule\n extend SomeModule\n CONST = 'wrong place'\nend\n" #autocorrect when there is a comment in the macro method autocorrects the offenses with protected methods declared before private is expected to eq class MyClass def public_method end private def first_private...ar before `private_methods`. end def second_protected_method end end RuboCop::Cop::Style::EndBlock does not report offenses for other blocks reports an offense and corrects END block RuboCop::Cop::Style::Copyright does not register an offense when the notice is in a block comment does not register an offense when the notice is not the first comment does not register an offense when the notice is present when the copyright notice is missing and the source code file starts with shebang and an encoding comment adds an offense when the copyright notice is missing and the source code file starts with a shebang adds an offense when the copyright notice comes after any code adds an offense when the source code file is empty adds an offense when the copyright notice is missing adds an offense fails to autocorrect if no AutocorrectNotice is given fails to autocorrect when the AutocorrectNotice does not match the Notice pattern when the copyright notice is missing and the source code file starts with an encoding comment adds an offense RuboCop::Cop::Style::Dir when using `#dirname` and `#realpath` registers an offense registers an offense with ::File when using `#expand_path` and `#dirname` registers an offense registers an offense with ::File RuboCop::Cop::Style::MultilineMemoization EnforcedStyle: braces with a multiline memoization without braces when the expression is wrapped in `begin` and `end` keywords registers an offense for begin...end block on first line registers an offense for begin...end block on following line with a multiline memoization without a `begin` and `end` block allows with another block on the following line allows with a conditional on the following line allows with a conditional on the first line allows with another block on the first line with a single line memoization allows expression on the following line allows expression on first line EnforcedStyle: keyword with a multiline memoization without a `begin` and `end` block allows with a conditional on the following line allows with a conditional on the first line allows with another block on the following line allows with another block on the first line with a multiline memoization without a `begin` and `end` block when the expression is wrapped in parentheses registers an offense when expression starts on following line registers an offense with multiline expression registers an offense when expression starts on first line with a single line memoization allows expression on the following line allows expression on first line RuboCop::Cop::Metrics::Utils::AbcSizeCalculator #calculate with a known iterating block is expected to eq "<2, 4, 2>" with []= is expected to eq "<2, 1, 0>" with &.foo is expected to eq "<0, 4, 2>" with repeated lvar receivers is expected to eq "<3, 5, 3>" method with arguments is expected to eq "<4, 0, 0>" multiple assignment is expected to eq "<3, 1, 0>" multiple calls with return is expected to eq "<0, 3, 0>" with a block is expected to eq "<2, 3, 0>" assignment with ternary operator is expected to eq "<2, 6, 2>" with ||= is expected to eq "<2, 0, 1>" with unused assignments is expected to eq "<2, 1, 0>" with a yield is expected to eq "<0, 1, 0>" if and arithmetic operations is expected to eq "<2, 8, 4>" with a for is expected to eq "<2, 1, 1>" same but with 7 arguments is expected to eq "<9, 3, 0>" same with extra condition is expected to eq "<2, 9, 5>" elsif vs else if else if is expected to eq "<0, 5, 4>" elsif is expected to eq "<0, 5, 3>" with .foo = is expected to eq "<1, 2, 0>" with &&= is expected to eq "<2, 0, 1>" RuboCop::Cop::Metrics::BlockNesting accepts if/elsif accepts `Max` levels of nesting `Max + 2` levels of `if` nesting registers an offense nested `case` registers an offense nested modifier `until` registers an offense when CountBlocks is true nested inline block registers an offense nested multiline block registers an offense `Max + 1` levels of `if` nesting registers an offense nested `rescue` registers an offense Multiple nested `ifs` at same level registers 2 offenses nested `while` registers an offense nested modifier `while` registers an offense nested `until` registers an offense when CountBlocks is false accepts nested multiline blocks accepts nested inline blocks nested `for` registers an offense RuboCop::Cop::Style::DoubleCopDisableDirective registers an offense for duplicate disable directives registers an offense for duplicate todo directives does not register an offense for cops with single cop directive RuboCop::Cop::Layout::EmptyLineAfterGuardClause accepts a guard clause followed by end accepta a guard clause that is after multiline heredoc accepts using guard clause is after `raise` registers an offense and corrects a guard clause is before `begin` registers an offense and corrects a guard clause not followed by empty line registers an offense and corrects when using `or return` before guard condition accpets a guard clause that is after a multiline heredoc nested argument call accepts a modifier if when the next line is `end` registers an offense and corrects a next guard clause not followed by empty line when guard clause is after heredoc including string interpolation accepts a guard clause inside oneliner block accpets a guard clause when the next line is `ensure` accpets a guard clause when the next line is `elsif` accpets a guard clause that is after a multiline heredoc with chained calls accepts a guard clause when the next line is `rescue` accepts a guard clause followed by empty line when guard clause including heredoc accepts modifier if accpets a guard clause when the next line is `rescue`-`else` accepts multiple guard clauses registers an offense and corrects a `raise` guard clause not followed by empty line when `if` condition is after heredoc registers an offense and corrects only the last guard clause registers an offense and corrects when using `and return` before guard condition registers an offense and corrects a `raise` guard clause not followed by empty line when `unless` condition is after heredoc registers an offense and corrects a guard clause that is a ternary operator registers an offense and corrects a `raise` guard clause not followed by empty line when guard clause is after method call with argument accepts a guard clause when the next line is `else` accepta a guard clause after a single line heredoc accepts a `raise` guard clause not followed by empty line when guard clause is after condition without method invocation registers an offense and corrects a guard clause not followed by empty line when guard clause including heredoc registers an offense and corrects a method starting with end_ registers an offense and corrects `next` guard clause not followed by empty line RuboCop::Cop::Style::Attr registers offense for attr within module_eval registers offense for attr within class_eval does not register offense for custom `attr` method accepts attr when it does not take arguments registers an offense attr accepts attr when it has a receiver auto-corrects attr with multiple names to attr_reader attr, false to attr_reader attr to attr_reader attr :name, true to attr_accessor :name RuboCop::Cop::Layout::EmptyComment registers an offense and corrects using single line empty comment does not register an offense when using comment text with leading and trailing blank lines registers an offense and corrects using an empty comment next to code does not register an offense when using comment text register offenses and correct multiple aligned empty comments next to code registers an offense and corrects using multiline empty comments registers an offense and corrects an empty comment without space next to code register offenses and correct multiple empty comments next to code allow border comment (default) does not register an offense when using border comment allow margin comment (default) does not register an offense when using margin comment disallow margin comment registers an offense and corrects using margin comment disallow border comment registers an offense and corrects using border comment registers an offense and corrects using single line empty comment RuboCop::Cop::Style::MethodDefParentheses require_no_parentheses behaves like no parentheses reports an offense for def with no args and parens reports an offense for opposite + correct accepts a class def with parameters with parens reports an offense for class def with parameters with parens accepts a def with parameters but no parens reports an offense for def with parameters with parens auto-removes the parens for defs accepts def with no args and no parens require_parentheses reports an offense for def with parameters but no parens reports an offense for correct + opposite reports an offense for class def with parameters but no parens auto-adds required parens to argument lists on multiple lines auto-adds required parens for a defs accepts def with no args and no parens require_no_parentheses_except_multiline when args span multiple lines auto-adds required parens to argument lists on multiple lines reports an offense for correct + opposite when args are all on a single line behaves like no parentheses auto-removes the parens for defs accepts def with no args and no parens reports an offense for def with parameters with parens reports an offense for def with no args and parens reports an offense for class def with parameters with parens accepts a def with parameters but no parens accepts a class def with parameters with parens reports an offense for opposite + correct RuboCop::ConfigObsoletion #validate when the configuration includes any obsolete cop name prints a warning message when the configuration includes any obsolete parameters prints a warning message RuboCop::TargetFinder #find_files works also if a folder is named "," does not search excluded top level directories #target_files_in_dir picks ruby executable files with no extension does not pick files specified to be excluded in config picks files specified to be included in config picks files with extension .rb does not pick directories does not pick files with no extension and no ruby shebang w/ --fail-fast option works when an exception is raised while reading file and debug mode is enabled outputs error message and debug mode is disabled outputs nothing #find(..., :only_recognized_file_types) does not find hidden files returns absolute paths when a directory path is passed finds files under the specified directory when files with ruby interpreters are passed picks all the ruby files when a file with a ruby filename is passed picks all the ruby files when files with a ruby extension are passed picks all the ruby files when local AllCops/Include lists two patterns picks two files when a subdirectory AllCops/Include only lists one pattern picks two files when same paths are passed does not return duplicated file paths when some non-known Ruby files are specified in the configuration Include and they are not explicitly passed as arguments includes them when some paths are specified in the configuration Exclude and they are explicitly passed as arguments when it's forced to adhere file exclusion configuration excludes them normally does not exclude them when a hidden directory path is passed finds files under the specified directory when a non-ruby file is passed doesn't pick the file when a pattern is passed finds files which match the pattern when some non-known Ruby files are specified in the configuration Include and they are explicitly passed as arguments includes them when no argument is passed finds files under the current directory when a hidden directory path is passed finds files under the specified directory when input is passed on stdin includes the file #find(..., :all_file_types) returns absolute paths does not find hidden files when some paths are specified in the configuration Exclude and they are explicitly passed as arguments when it's forced to adhere file exclusion configuration excludes them normally does not exclude them when a hidden directory path is passed finds files under the specified directory when same paths are passed does not return duplicated file paths when no argument is passed finds files under the current directory when a file with a ruby filename is passed picks all the ruby files when a pattern is passed finds files which match the pattern when files with ruby interpreters are passed picks all the ruby files when a directory path is passed finds files under the specified directory when input is passed on stdin includes the file when a non-ruby file is passed picks the file when some non-known Ruby files are specified in the configuration Include and they are explicitly passed as arguments includes them when some non-known Ruby files are specified in the configuration Include and they are not explicitly passed as arguments includes them when files with a ruby extension are passed picks all the ruby files when local AllCops/Include lists two patterns picks all the ruby files when a subdirectory AllCops/Include only lists one pattern picks all the ruby files RuboCop::Cop::Lint::ToJSON does not register an offense when using `#to_json` with arguments registers an offense and corrects using `#to_json` without arguments RuboCop::Cop::Style::TrailingBodyOnMethodDefinition accepts a method with one line of body does not register offense with trailing body on method end registers when body starts on def line & continues one more line auto-corrects with comment after body auto-corrects body with method definition with args not in parens registers an offense when body trails after method definition accepts a method with multiple lines of body registers when body starts on def line & continues many more lines auto-correction removes semicolon from method definition but not body when method is not on first line of processed_source auto-corrects offense RuboCop::Cop::Lint::UnusedMethodArgument when IgnoreNotImplementedMethods config parameter is set accepts a method with a single unused parameter & fails without message accepts a method with a single unused parameter & raises NotImplementedError registers an offense for a non-empty method with a single unused parameter accepts an empty method with multiple unused parameters accepts a method with a single unused parameter & fails with message registers an offense for a non-empty method with multiple unused parameters accepts a method with a single unused parameter & raises ::NotImplementedError accepts an empty singleton method with a single unused parameter &raise NotImplementedError inspection when a method takes multiple arguments and all the arguments are unused registers offenses and suggests the use of `*` and auto-corrects to add underscore-prefix to all arguments and an argument is unused registers an offense and adds underscore-prefix and there is some whitespace around the unused argument registers an offense and preserves whitespace and arguments are swap-assigned accepts and one argument is assigned to another, whilst other's value is not used registers an offense when a block argument is unused does not care when an argument with a default value is unused registers an offense and preserves the default value in a method calling `super` with arguments when a method argument is unused registers an offense in a method calling `super` without arguments when a method argument is not used explicitly accepts since the arguments are guaranteed to be the same as superclass' ones and the user has no control on them when a singleton method argument is unused registers an offense when a trailing block argument is unused registers an offense and removes the unused block arg when an optional keyword argument is unused registers an offense but does not suggest underscore-prefix and AllowUnusedKeywordArguments set does not care when an underscore-prefixed method argument is unused accepts in a method calling `binding` with arguments when a method argument is unused registers an offense when a required keyword argument is unused registers an offense but does not suggest underscore-prefix when a variable is unused does not care when a splat argument is unused registers an offense and preserves the splat when a method argument is used accepts in a method calling `binding` without arguments accepts all arguments inside another method definition registers offenses when IgnoreEmptyMethods config parameter is set accepts an empty singleton method with a single unused parameter accepts an empty method with multiple unused parameters accepts an empty method with a single unused parameter registers an offense for a non-empty method with a single unused parameter registers an offense for a non-empty method with multiple unused parameters RuboCop::Cop::Style::ConditionalAssignment allows if elsif else with the same assignment only in if elsif registers an offense for assignment in case when then else registers an offense for assignment in case with when when else allows if elsif else with the same assignment only in elsif else allows assignment of different variables in case when else allows method calls in conditionals allows modifier if doesn't crash when assignment statement uses chars which have special meaning in a regex registers an offense for assignment in unless else registers an offense for assignment in if elsif else registers an offense in an if else if the assignment is already at the line length limit allows aref assignment with different indices in if..else registers an offense for assignment in ternary operation using strings allows if elsif else with the same assignment only in if else counts array assignment when determining multiple assignment allows assignment to the result of a ternary operation allows assignment using different operators in if elsif else allows method calls in if else registers an offense for assignment in if elsif elsif else allows if else without variable assignment allows assignment using different operators in if else allows assignment of different variables in if else registers an offense for assignment in if then elsif then else allows different assignment types in case with when when else doesn't crash with empty braces allows assignment in multiple branches when it is wrapped in a modifier autocorrects assignment in if else when the assignment spans multiple lines allows modifier if inside of if else allows assignment using different (method) operators in if..else behaves like all assignment types with end alignment to keyword for a constant lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a instance variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a local variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a global variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a class variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a constant lval registers an offense for assignment using ||= in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a constant lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a local variable lval registers an offense for assignment using ||= in if else registers an offense for assignment using ||= in case when for a class variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a instance variable lval registers an offense for assignment using ||= in case when registers an offense for assignment using ||= in if else for a class variable lval registers an offense for assignment using ||= in ternary for a instance variable lval registers an offense for assignment using ||= in ternary for a local variable lval registers an offense for assignment using ||= in ternary for a global variable lval registers an offense for assignment using ||= in ternary behaves like all assignment types with end alignment to start_of_line for a global variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a instance variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a class variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a local variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a constant lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a constant lval registers an offense for assignment using |= in ternary with end alignment to keyword for a constant lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a local variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a instance variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a class variable lval registers an offense for assignment using |= in if else registers an offense for assignment using |= in case when for a global variable lval registers an offense for assignment using |= in case when registers an offense for assignment using |= in if else for a class variable lval registers an offense for assignment using |= in ternary for a local variable lval registers an offense for assignment using |= in ternary for a global variable lval registers an offense for assignment using |= in ternary for a instance variable lval registers an offense for assignment using |= in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when behaves like all variable types registers an offense assigning any variable type in case when allows assignment to the return of case when allows assignment to the return of a ternary registers an offense assigning any variable type in if else registers an offense assigning any variable type in ternary allows assignment to the return of if else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when behaves like all assignment types for a instance variable lval registers an offense for assignment using &&= in ternary with end alignment to start_of_line for a class variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a local variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else for a instance variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a global variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else for a constant lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a constant lval registers an offense for assignment using &&= in ternary for a global variable lval registers an offense for assignment using &&= in ternary for a local variable lval registers an offense for assignment using &&= in ternary for a class variable lval registers an offense for assignment using &&= in ternary with end alignment to keyword for a local variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a global variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a instance variable lval registers an offense for assignment using &&= in if else registers an offense for assignment using &&= in case when for a constant lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else for a class variable lval registers an offense for assignment using &&= in case when registers an offense for assignment using &&= in if else behaves like all variable types registers an offense assigning any variable type in if else registers an offense assigning any variable type in case when allows assignment to the return of a ternary allows assignment to the return of if else allows assignment to the return of case when registers an offense assigning any variable type in ternary IncludeTernaryExpressions false allows assignment in ternary operation behaves like all assignment types for a class variable lval registers an offense for assignment using -= in ternary for a constant lval registers an offense for assignment using -= in ternary with end alignment to keyword for a class variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a global variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a constant lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a local variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a instance variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else with end alignment to start_of_line for a class variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a constant lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a local variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a instance variable lval registers an offense for assignment using -= in if else registers an offense for assignment using -= in case when for a global variable lval registers an offense for assignment using -= in case when registers an offense for assignment using -= in if else for a instance variable lval registers an offense for assignment using -= in ternary for a global variable lval registers an offense for assignment using -= in ternary for a local variable lval registers an offense for assignment using -= in ternary behaves like all assignment types for a local variable lval registers an offense for assignment using <<= in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a local variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a class variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a constant lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a global variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a constant lval registers an offense for assignment using <<= in ternary for a class variable lval registers an offense for assignment using <<= in ternary with end alignment to keyword for a instance variable lval registers an offense for assignment using <<= in case when registers an offense for assignment using <<= in if else for a constant lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a local variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a global variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a class variable lval registers an offense for assignment using <<= in if else registers an offense for assignment using <<= in case when for a instance variable lval registers an offense for assignment using <<= in ternary for a global variable lval registers an offense for assignment using <<= in ternary behaves like all assignment types with end alignment to keyword for a instance variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a local variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a class variable lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a constant lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a global variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a global variable lval registers an offense for assignment using **= in ternary for a constant lval registers an offense for assignment using **= in ternary for a instance variable lval registers an offense for assignment using **= in ternary for a local variable lval registers an offense for assignment using **= in ternary for a class variable lval registers an offense for assignment using **= in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a constant lval registers an offense for assignment using **= in if else registers an offense for assignment using **= in case when for a global variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a class variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else for a local variable lval registers an offense for assignment using **= in case when registers an offense for assignment using **= in if else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when behaves like all variable types allows assignment to the return of if else registers an offense assigning any variable type in ternary registers an offense assigning any variable type in if else allows assignment to the return of case when registers an offense assigning any variable type in case when allows assignment to the return of a ternary behaves like all assignment types for a class variable lval registers an offense for assignment using >>= in ternary for a local variable lval registers an offense for assignment using >>= in ternary with end alignment to keyword for a local variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a global variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a constant lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a instance variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a class variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a global variable lval registers an offense for assignment using >>= in ternary for a instance variable lval registers an offense for assignment using >>= in ternary for a constant lval registers an offense for assignment using >>= in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else for a class variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a local variable lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a constant lval registers an offense for assignment using >>= in if else registers an offense for assignment using >>= in case when for a instance variable lval registers an offense for assignment using >>= in case when registers an offense for assignment using >>= in if else correction would exceed max line length allows assignment to the same variable in case when else if the correction would create a line longer than the configured LineLength allows assignment to the same variable in if else if the correction would cause the condition to exceed the configured LineLength allows assignment to the same variable in if else if the correction would create a line longer than the configured LineLength EndAlignment configured to start_of_line auto-correct uses proper end alignment in unless uses proper end alignment in if uses proper end alignment in case behaves like all variable types registers an offense assigning any variable type in ternary allows assignment to the return of case when allows assignment to the return of if else registers an offense assigning any variable type in case when allows assignment to the return of a ternary registers an offense assigning any variable type in if else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when with end alignment to start_of_line corrects comparison methods in unless else corrects comparison methods in case when corrects comparison methods in if elsif else behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in case when corrects comparison methods in if elsif else with end alignment to start_of_line corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when behaves like all assignment types with end alignment to start_of_line for a local variable lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a instance variable lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a constant lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a global variable lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a class variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else with end alignment to keyword for a global variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a constant lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a class variable lval registers an offense for assignment using << in if else registers an offense for assignment using << in case when for a instance variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a local variable lval registers an offense for assignment using << in case when registers an offense for assignment using << in if else for a local variable lval registers an offense for assignment using << in ternary for a constant lval registers an offense for assignment using << in ternary for a class variable lval registers an offense for assignment using << in ternary for a global variable lval registers an offense for assignment using << in ternary for a instance variable lval registers an offense for assignment using << in ternary empty branch allows an empty when branch with an else allows assignment in case when without an else allows case with an empty else allows if elsif without else allows an empty elsif statement allows assignment in if without an else allows assignment in unless without an else allows an empty if statement behaves like all assignment types for a local variable lval registers an offense for assignment using %= in ternary for a instance variable lval registers an offense for assignment using %= in ternary for a global variable lval registers an offense for assignment using %= in ternary for a class variable lval registers an offense for assignment using %= in ternary with end alignment to keyword for a constant lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a local variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a instance variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a global variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a class variable lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when with end alignment to start_of_line for a constant lval registers an offense for assignment using %= in if else registers an offense for assignment using %= in case when for a instance variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a local variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a global variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a class variable lval registers an offense for assignment using %= in case when registers an offense for assignment using %= in if else for a constant lval registers an offense for assignment using %= in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in case when corrects comparison methods in unless else auto-correct preserves comments during correction in if else corrects assignment to unbracketed array in if else preserves comments during correction in case when else corrects =~ in ternary operations self.attribute= assignment corrects if..else with different receivers doesn't register an offense aref assignment corrects if..else with different indices doesn't register an offense constant assignment corrects if..else with namespaced constant corrects if..else with top-level constant assignment from a method corrects case when corrects if else corrects unless else multiple assignment does not register an offense in case when does not register an offense in if else behaves like all assignment types for a class variable lval registers an offense for assignment using = in ternary for a local variable lval registers an offense for assignment using = in ternary with end alignment to keyword for a class variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a instance variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a constant lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a global variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a local variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a instance variable lval registers an offense for assignment using = in ternary for a global variable lval registers an offense for assignment using = in ternary for a constant lval registers an offense for assignment using = in ternary with end alignment to start_of_line for a class variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a constant lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a local variable lval registers an offense for assignment using = in case when registers an offense for assignment using = in if else for a instance variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when for a global variable lval registers an offense for assignment using = in if else registers an offense for assignment using = in case when behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in case when corrects comparison methods in if elsif else corrects comparison methods in unless else with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else behaves like all assignment types with end alignment to keyword for a local variable lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a instance variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a global variable lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a class variable lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a constant lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else with end alignment to start_of_line for a global variable lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a constant lval registers an offense for assignment using *= in case when registers an offense for assignment using *= in if else for a instance variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a class variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a local variable lval registers an offense for assignment using *= in if else registers an offense for assignment using *= in case when for a class variable lval registers an offense for assignment using *= in ternary for a instance variable lval registers an offense for assignment using *= in ternary for a constant lval registers an offense for assignment using *= in ternary for a local variable lval registers an offense for assignment using *= in ternary for a global variable lval registers an offense for assignment using *= in ternary behaves like all assignment types with end alignment to keyword for a global variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a class variable lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a constant lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a local variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a instance variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a instance variable lval registers an offense for assignment using ^= in ternary for a local variable lval registers an offense for assignment using ^= in ternary for a global variable lval registers an offense for assignment using ^= in ternary with end alignment to start_of_line for a instance variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a class variable lval registers an offense for assignment using ^= in if else registers an offense for assignment using ^= in case when for a global variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a constant lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a local variable lval registers an offense for assignment using ^= in case when registers an offense for assignment using ^= in if else for a class variable lval registers an offense for assignment using ^= in ternary for a constant lval registers an offense for assignment using ^= in ternary behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in case when corrects comparison methods in if elsif else with end alignment to start_of_line corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when with nested conditionals eventually autocorrects all branches does not consider branches of nested ifs behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to start_of_line corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when with end alignment to keyword corrects comparison methods in unless else corrects comparison methods in if elsif else corrects comparison methods in case when behaves like comparison methods registers an offense for comparison methods in ternary operations with end alignment to keyword corrects comparison methods in if elsif else corrects comparison methods in unless else corrects comparison methods in case when with end alignment to start_of_line corrects comparison methods in case when corrects comparison methods in unless else corrects comparison methods in if elsif else behaves like all assignment types with end alignment to keyword for a local variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a instance variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a constant lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a global variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a class variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a global variable lval registers an offense for assignment using += in ternary with end alignment to start_of_line for a global variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a constant lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a class variable lval registers an offense for assignment using += in case when registers an offense for assignment using += in if else for a instance variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a local variable lval registers an offense for assignment using += in if else registers an offense for assignment using += in case when for a constant lval registers an offense for assignment using += in ternary for a instance variable lval registers an offense for assignment using += in ternary for a local variable lval registers an offense for assignment using += in ternary for a class variable lval registers an offense for assignment using += in ternary behaves like else followed by new conditional without else allows if elsif else unless behaves like else followed by new conditional without else allows if elsif else if behaves like all variable types allows assignment to the return of case when registers an offense assigning any variable type in ternary registers an offense assigning any variable type in if else allows assignment to the return of a ternary registers an offense assigning any variable type in case when allows assignment to the return of if else behaves like all assignment types for a constant lval registers an offense for assignment using /= in ternary for a local variable lval registers an offense for assignment using /= in ternary for a global variable lval registers an offense for assignment using /= in ternary with end alignment to keyword for a class variable lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a constant lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a local variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a instance variable lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a global variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a class variable lval registers an offense for assignment using /= in ternary with end alignment to start_of_line for a class variable lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a constant lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a global variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a local variable lval registers an offense for assignment using /= in if else registers an offense for assignment using /= in case when for a instance variable lval registers an offense for assignment using /= in case when registers an offense for assignment using /= in if else for a instance variable lval registers an offense for assignment using /= in ternary for if elsif else if else autocorrects the inner offense first autocorrects the outer offense later behaves like all variable types registers an offense assigning any variable type in if else allows assignment to the return of a ternary registers an offense assigning any variable type in case when allows assignment to the return of if else allows assignment to the return of case when registers an offense assigning any variable type in ternary configured to check conditions with multiple statements registers an offense for multiple assignment when an earlier assignment is is protected by a modifier allows assignment in multiple branches when it is wrapped in a modifier assignment as the last statement registers an offense for multiple assignment in if elsif else registers offense for multiple assignment in unless else register an offense for multiple assignment in if else registers an offense in if elsif else with some branches only containing variable assignment and others containing more than variable assignment registers an offense in case when else with more than variable assignment registers an offense in if else with more than variable assignment registers offense for multiple assignments in case when with only one when registers offense for multiple assignment in if elsif elsif else registers an offense in if elsif else with more than variable assignment registers offense for multiple assignments in case when with multiple whens registers an offense in unless else with more than variable assignment multiple assignment in only one branch registers an offense when multiple assignment is in elsif registers an offense when multiple assignment is in if registers an offense when multiple assignment is in else behaves like allows out of order multiple assignment in if elsif else allows out of order multiple assignment in if elsif else auto-correct corrects multiple assignment in case when with multiple whens corrects multiple assignment in case when corrects multiple assignment in if elsif else corrects multiple assignment in if elsif else with multiple elsifs corrects assignment in an if statement that is nested in unless else corrects multiple assignment in unless else corrects multiple assignment in if else behaves like all variable types allows assignment to the return of case when registers an offense assigning any variable type in if else registers an offense assigning any variable type in case when allows assignment to the return of a ternary allows assignment to the return of if else registers an offense assigning any variable type in ternary behaves like all assignment types for a class variable lval registers an offense for assignment using &= in ternary for a local variable lval registers an offense for assignment using &= in ternary for a global variable lval registers an offense for assignment using &= in ternary for a instance variable lval registers an offense for assignment using &= in ternary for a constant lval registers an offense for assignment using &= in ternary with end alignment to start_of_line for a class variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a instance variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a global variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a constant lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a local variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when with end alignment to keyword for a class variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else for a instance variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a constant lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a global variable lval registers an offense for assignment using &= in if else registers an offense for assignment using &= in case when for a local variable lval registers an offense for assignment using &= in case when registers an offense for assignment using &= in if else assignment as the last statement allows multiple assignment in case statements when the last assignment is the same and the earlier assignments do not appear in all branches allows variable assignment in case when else with more than variable assignment allows multiple assignment in case when else when the last assignment is the same and the earlier assignments do not appear in all branches allows multiple assignment in if elsif elsif else allows multiple assignment in if else allows multiple assignments in case when with only one when allows multiple assignments in case when if there are uniq variables in the when branches allows multiple assignment in if elsif else allows multiple assignment in if elsif else when the last assignment is the same and the earlier assignments do not appear in all branches allows more than variable assignment in if elsif else allows assignment in if elsif else with some branches only containing variable assignment and others containing more than variable assignment allows multiple assignment in unless else allows multiple assignments in case when with multiple whens allows more than variable assignment in if else allows variable assignment in unless else with more than variable assignment behaves like allows out of order multiple assignment in if elsif else allows out of order multiple assignment in if elsif else multiple assignment in only one branch registers an offense when multiple assignment is in else allows multiple assignment is in elsif allows multiple assignment is in if RuboCop::Cop::Layout::MultilineArrayLineBreaks when nested arrays registers an offense and corrects when on same line does not add any offenses when two elements on same line registers an offense and corrects when on same line, separate line from brackets does not add any offenses RuboCop::Cop::Style::OrAssignment when using unless var; var = something; end registers an offense for class variables registers an offense for global variables does not register an offense if any of the variables are different registers an offense for instance variables registers an offense for normal variables when using var = if var; var; else; something; end registers an offense with class variables does not register an offense if any of the variables are different registers an offense with global variables registers an offense with instance variables registers an offense with normal variables when using var = var ? var : something does not register an offense if any of the variables are different registers an offense with instance variables registers an offense with normal variables registers an offense with class variables registers an offense with global variables when using var = something unless var registers an offense for instance variables does not register an offense if any of the variables are different registers an offense for global variables registers an offense for class variables registers an offense for normal variables when `then` branch body is empty registers an offense when using `elsif` statement does not register an offense RuboCop::Cop::Style::MissingRespondToMissing allows method_missing and respond_to_missing? when defined with inline access modifier and method_missing is not qualified by inline access modifier allows method_missing and respond_to_missing? when defined with inline access modifier registers an offense respond_to_missing? is implemented as an instance method and method_missing is implemented as a class method registers an offense when respond_to_missing? is not implemented allows method_missing and respond_to_missing? implemented as class methods registers an offense respond_to_missing? is implemented as a class method and method_missing is implemented as an instance method allows method_missing and respond_to_missing? implemented as instance methods registers an offense when method_missing is implemented as a class methods RuboCop::Cop::Style::SymbolProc accepts ::Proc.new with 1 argument does not crash with a bare method call accepts block with a block argument accepts lambda with 1 argument accepts block with more than 1 arguments registers an offense for a block with parameterless method call on param accepts Proc.new with 1 argument accepts block with splat params registers an offense for a block when method in body is unary -/+ accepts block when method in body is not called on block arg accepts block with more than 1 expression in body auto-corrects correctly when there are no arguments in parentheses auto-corrects correctly when args have a trailing comma autocorrects multiple aliases with symbols as proc accepts ignored method accepts block with no arguments accepts empty block body accepts proc with 1 argument accepts block with adding a comma after the sole argument when the method has arguments registers an offense when `super` has arguments registers an offense when `super` has no arguments registers an offense RuboCop::Formatter::WorstOffendersFormatter #finished when there are many offenses sorts by offense count first and then by cop name RuboCop::Cop::Style::MultilineIfModifier if guard clause allows a multiline condition registers an offense when indented registers an offense allows a one liner unless guard clause registers an offense when indented allows a multiline condition allows a one liner registers an offense RuboCop::Cop::Lint::SelfAssignment registers an offense when using global var self-assignment does not register an offense when using multiple var assignment through method call registers an offense when using multiple var self-assignment registers an offense when using class var self-assignment does not register an offense when using shorthand-or var assignment registers an offense when using multiple var self-assignment through array registers an offense when using shorthand-and var self-assignment registers an offense when using instance var self-assignment does not register an offense when using multiple var assignment through splat registers an offense when using local var self-assignment does not register an offense when using multiple var assignment does not register an offense when using constant var or-assignment for constant from another scope does not register an offense when using global var assignment does not register an offense when using local var assignment does not register an offense when using constant var assignment for constant from another scope does not register an offense when using class var assignment registers an offense when using shorthand-or var self-assignment does not register an offense when using instance var assignment registers an offense when using constant var self-assignment does not register an offense when using shorthand-and var assignment RuboCop::Cop::Gemspec::DuplicatedAssignment registers an offense when `name=` method call is not block value registers an offense when using `name=` twice registers an offense when using `spec.add_dependency` twice registers an offense when using `version=` twice registers an offense when using `<<` twice registers an offense when using `name=` twice with `cbase` RuboCop::Cop::Lint::NumberConversion does not register an offense when using Integer() with integer when using Complex() when using Time when `#to_i` called without a receiver when using Time/DateTime with multiple method calls when using DateTime when using Float() registers an offense when `#to_i` called on a variable when using `#to_f` when using `#to_i` for integer when using `#to_c` when `#to_i` called on a variable on a array when `#to_i` called on a variable on a hash when `#to_i` called on a hash value when using `#to_i` RuboCop::Cop::InternalAffairs::RedundantMessageArgument does not register an offense when formatted `MSG` is passed does not register an offense when `#message` with another node is passed when `#message` with offending node is passed when there are others keyword arguments registers an offense when message is the only keyword argument registers an offense when `MSG` is passed registers an offense when `#message` is passed registers an offense RuboCop::Cop::Style::ConstantVisibility does not register an offense in the top level scope does not register an offense when passing a string to the visibility declaration when defining a constant in a class with a multi-statement body registers an offense when there is no matching visibility declaration registers an offense when not using a visibility declaration does not register an offense when using a visibility declaration with a single-statement body registers an offense when not using a visibility declaration when defining a constant in a module does not register an offense when using a visibility declaration registers an offense when not using a visibility declaration RuboCop::Cop::Offense redefines == to compare offenses based on their contents is frozen has a few required attributes overrides #to_s does not blow up if a message contains % #location is frozen when unknown severity is passed raises error #message is frozen #severity_level when severity is :fatal is 5 when severity is :refactor is 1 #<=> when receiver has {:line=>6, :col=>4} and other has {:line=>5, :col=>5} returns 1 when receiver has {:cop=>"B"} and other has {:cop=>"A"} returns 1 when receiver has {:line=>6, :cop=>"A"} and other has {:line=>5, :cop=>"B"} returns 1 when receiver has {} and other has {} returns 0 when receiver has {:line=>5, :col=>6} and other has {:line=>5, :col=>5} returns 1 when receiver has {:col=>6, :cop=>"A"} and other has {:col=>5, :cop=>"B"} returns 1 when receiver has {:line=>6} and other has {:line=>5} returns 1 offenses that span part of a line highlights the first line offenses that span multiple lines highlights the first line #severity is frozen #cop_name is frozen RuboCop::Cop::Style::Lambda with default `line_count_dependent` style with a single line lambda literal does not register an offense >= Ruby 2.7 when using numbered parameter with a multiline lambda method call does not register an offense with a single line lambda literal does not register an offense with a single line lambda method call registers an offense with a single line lambda method call with arguments registers an offense without arguments registers an offense when calling a lambda method without a block does not register an offense with a multiline lambda literal with arguments registers an offense without arguments registers an offense with a multiline lambda method call does not register an offense with a multiline lambda literal as an argument registers an offense unusual lack of spacing with a multiline lambda literal without parentheses registers an offense with no parentheses and bad spacing registers an offense with no arguments and no spacing registers an offense with empty arguments registers an offense with no arguments and bad spacing registers an offense with no parentheses and many args registers an offense without any spacing registers an offense without spacing before arguments registers an offense without spacing after arguments registers an offense with a multiline braces lambda literal as a keyword argument registers an offense with a multiline do-end lambda as a parenthesized kwarg registers an offense with a multiline do-end lambda literal as a keyword argument registers an offense with enforced `literal` style with a multiline lambda method call without arguments registers an offense with arguments registers an offense with a single line lambda method call without arguments registers an offense with arguments registers an offense with enforced `lambda` style with a multiline lambda literal without arguments registers an offense with arguments registers an offense with a single line lambda literal without argument parens and spaces registers an offense without arguments registers an offense with arguments registers an offense when using safe navigation operator does not break RuboCop::Cop::Registry exposes a list of cop names exposes a mapping of cop names to cop classes exposes cop departments exposes the number of stored cops can filter down to one type can be cloned can filter down to all but one type #contains_cop_matching? can find cops matching a given name returns false for cops not included in the store #enabled selects only safe cops if :safe passed overrides config if :only includes the cop selects cops which are enabled in the config when new cops are introduced does not include them overrides config if :only includes the cop when specifying `NewCops: enable` option in .rubocop.yml includes them when specifying `--disable-pending-cops` command-line option does not include them when specifying `NewCops: enable` option in .rubocop.yml does not include them because command-line option takes precedence over .rubocop.yml when specifying `--enable-pending-cops` command-line option includes them when specifying `NewCops: disable` option in .rubocop.yml includes them because command-line option takes precedence over .rubocop.yml when specifying `NewCops: pending` option in .rubocop.yml does not include them when specifying `NewCops: disable` option in .rubocop.yml does not include them when dismissing a cop class disallows it if done too late allows it if done rapidly allows re-listing #cops exposes a list of cops #qualified_cop_name qualifies names with the correct namespace emits a warning when namespace is incorrect qualifies names without a namespace gives back already properly qualified names returns the provided name if no namespace is found raises an error when a cop name is ambiguous RuboCop::Cop::EnforceSuperclass registers an offense for model defined using top-level registers an offense for top-level constant ::Class.new definition registers an offense for single-line definitions registers an offense for models that subclass ::ActiveRecord::Base registers an offense for models that subclass ActiveRecord::Base registers an offense for Class.new definition when MyModel subclasses ApplicationRecord behaves like no offense registers no offenses for `class MyModel < ApplicationRecord; end` behaves like no offense registers no offenses for `MyModel = ::Class.new(::ApplicationRecord) do end MyModel = ::Class.new(::ApplicationRecord) ` behaves like no offense registers no offenses for `class MyModel < ::ApplicationRecord; end` behaves like no offense registers no offenses for `MyModel = Class.new(ApplicationRecord) do end MyModel = Class.new(ApplicationRecord) ` when ApplicationRecord subclasses ActiveRecord::Base behaves like no offense registers no offenses for `ApplicationRecord = Class.new(ActiveRecord::Base) ` behaves like no offense registers no offenses for `ApplicationRecord = Class.new(ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `::ApplicationRecord = ::Class.new(::ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `class ApplicationRecord < ActiveRecord::Base; end` behaves like no offense registers no offenses for `::ApplicationRecord = Class.new(ActiveRecord::Base) do; end ` behaves like no offense registers no offenses for `class ::ApplicationRecord < ActiveRecord::Base; end` behaves like no offense registers no offenses for `::ApplicationRecord = ::Class.new(::ActiveRecord::Base) ` behaves like no offense registers no offenses for `ApplicationRecord = Class.new(::ActiveRecord::Base) do; end ` RuboCop::Cop::Lint::EmptyConditionalBody registers an offense for missing `if` body registers an offense for missing `elsif` body does not register an offense for missing `if` body with a comment does not register an offense for missing `elsif` body with a comment does not register an offense for missing `unless` body with a comment registers an offense for missing `unless` body when AllowComments is false registers an offense for missing `if` body with a comment registers an offense for missing `unless` body with a comment registers an offense for missing `elsif` body with a comment RuboCop::Cop::Style::TrailingUnderscoreVariable configured to allow named underscore variables registers an offense for complex nested assignments with trailing underscores does not register an offense for an underscore preceded by a splat variable does not register an offense for complex nested assignments without trailing underscores does not register an offense when there are no underscores registers an offense for an underscore as the last param when there is also an underscore as the first param does not register an offense for a named underscore variable preceded by a splat variable registers an offense when the last variable of parallel assignment is an underscore does not register an offense for a named variable preceded by a names splat underscore variable registers an offense when underscore is the only variable in parallel assignment registers an offense when multiple underscores are used as the last variables of parallel assignment does not register an offense for an underscore preceded by a splat variable anywhere in the argument chain does not register an offense for multiple underscores preceded by a splat variable registers an offense for nested assignments with trailing underscores does not register an offense for an underscore preceded by a splat variable and another underscore registers an offense for multiple underscore variables preceded by a splat underscore variable registers an offense for splat underscore as the last variable does not register an offense for nested assignments without trailing underscores registers an offense when underscore is the second to last variable and blank is the last variable does not register an offense for a named splat underscore as the last variable does not register an offense for multiple underscore variables preceded by a named splat underscore variable does not register an offense for underscores at the beginning does not register an offense for an underscore variable preceded by a named splat underscore variable does not register an offense for named variables that start with an underscore does not register an offense for multiple named underscores preceded by a splat variable autocorrect with parentheses removes assignment part when every assignment is to `_` leaves parentheses but removes trailing underscores removes assignment part when it is the only variable leaves parentheses but removes trailing underscores and commas configured to not allow named underscore variables registers an offense for a named splat underscore as the last variable registers an offense when underscore is the second to last variable and blank is the last variable does not register an offense for a named underscore variable preceded by a splat variable registers an offense for multiple underscore variables preceded by a splat underscore variable registers an offense for nested assignments with trailing underscores does not register an offense for multiple underscores preceded by a splat variable registers an offense when multiple underscores are used as the last variables of parallel assignment registers an offense for complex nested assignments with trailing underscores registers an offense when the last variable of parallel assignment is an underscore does not register an offense for an underscore preceded by a splat variable anywhere in the argument chain does not register an offense for underscores at the beginning registers an offense for multiple underscore variables preceded by a named splat underscore variable registers an offense for splat underscore as the last variable does not register an offense when there are no underscores does not register an offense for an underscore preceded by a splat variable does not register an offense for complex nested assignments without trailing underscores does not register an offense for a named variable preceded by a names splat underscore variable does not register an offense for multiple named underscores preceded by a splat variable registers an offense for named variables that start with an underscore registers an offense for an underscore as the last param when there is also an underscore as the first param registers an offense for an underscore preceded by a named splat underscore does not register an offense for nested assignments without trailing underscores registers an offense for an underscore variable preceded by a named splat underscore variable registers an offense when underscore is the only variable in parallel assignment does not register an offense for an underscore preceded by a splat variable and another underscore does not register an offense for a named underscore preceded by a splat variable autocorrect with parentheses removes assignment part when every assignment is to `_` leaves parentheses but removes trailing underscores and commas removes assignment part when it is the only variable leaves parentheses but removes trailing underscores RuboCop::Cop::Gemspec::OrderedDependencies behaves like ordered dependency when add_dependency when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: false registers an offense with TreatCommentsAsGroupSeparators: true accepts when gems are not alphabetically sorted registers an offense when each individual group of line is sorted does not register any offenses When gems are alphabetically sorted does not register any offenses behaves like ordered dependency when add_development_dependency when each individual group of line is sorted does not register any offenses when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: false registers an offense with TreatCommentsAsGroupSeparators: true accepts When gems are alphabetically sorted does not register any offenses when gems are not alphabetically sorted registers an offense when different dependencies are consecutive does not register any offenses behaves like ordered dependency when add_runtime_dependency when dependency is separated by multiline comment with TreatCommentsAsGroupSeparators: true accepts with TreatCommentsAsGroupSeparators: false registers an offense when gems are not alphabetically sorted registers an offense when each individual group of line is sorted does not register any offenses When gems are alphabetically sorted does not register any offenses When using a local variable in an argument of dependent gem does not register any offenses When using method call to gem names does not register any offenses RuboCop::Cop::Layout::MultilineBlockLayout does not register offenses when there is a newline for {} block auto-corrects nested parens correctly registers an offense and corrects a do/end block with a mult-line body does not auto-correct a trailing comma when only one argument is present does not error out when the block is empty registers an offense and corrects for missing newline before opening parenthesis `(` for block body registers offenses and corrrects for new lambda literal syntax registers an offense and corrects for missing newline in {} block with params does not register an offense for one-line {} blocks does not register offenses when there are too many parameters to fit on one line registers an offense and corrects a line-break within arguments registers an offense and corrects line-break before arguments registers an offense and corrects for missing newline in {} block w/o params registers offenses and corrects for lambdas registers an offense and corrects line-break within arguments registers an offense for missing newline in do/end block w/o params registers offenses when there are not too many parameters to fit on one line does not register offenses when there is a newline for do/end block registers an offense and corrects for missing newline in do/end block with params doesn't move end keyword in a way which causes infinite loop in combination with Style/BlockEndNewLine autocorrects in more complex case with lambda and assignment, and aligns the next line two spaces out from the start of the block does not register an offense for one-line do/end blocks considers the extra space required to join the lines together registers an offense and corrects a line break within destructured arguments registers an offense and corrects line-break before arguments with empty block RuboCop::Cop::Lint::PercentSymbolArray detecting colons or commas in a %i/%I string accepts tokens without colons or commas registers an offense and corrects when symbols contain colons and are comma separated registers an offense and corrects when there are no colons but one comma accepts likely false positive $, registers an offense and corrects when symbols contain colons and are comma separated accepts tokens without colons or commas registers an offense and corrects when there are no colons but one comma accepts likely false positive $, registers an offense and corrects when one symbol has a colon but there are no commas registers an offense and corrects when one symbol has a colon but there are no commas with binary encoded source accepts if tokens contain no quotes registers an offense and corrects when tokens contain quotes RuboCop::Cop::Metrics::MethodLength accepts a method with less than 5 lines properly counts lines when method ends with block accepts empty methods does not count commented lines by default does not count blank lines is not fooled by one-liner methods, syntax #1 accepts a method with multiline arguments and less than 5 lines of body is not fooled by one-liner methods, syntax #2 when method is defined with `define_method` registers an offense when method is an instance method registers an offense when method is defined on a singleton class registers an offense when method is defined in `ExcludedMethods` accepts the foo method with more than 5 lines still rejects other methods with more than 5 lines when `CountAsOne` is not empty folds array into one line when method is a class method registers an offense when CountComments is enabled also counts commented lines RuboCop::Formatter::JUnitFormatter #file_finished displays an offfense for `classname='test_1` in parsable text displays a non-offfense element in parsable text displays end of parsable text displays start of parsable text displays an offfense for `classname='test_2` in parsable text RuboCop::Cop::Style::CommandLiteral when PercentLiteralDelimiters is configured and a default exists ignores the default when auto-correcting when EnforcedStyle is set to percent_x a single-line ` string without backticks registers an offense and corrects to %x a single-line %x string with backticks is accepted a multi-line ` string without backticks registers an offense and corrects to %x a single-line %x string without backticks is accepted a multi-line %x string with backticks is accepted a multi-line %x string without backticks is accepted a single-line ` string with backticks registers an offense without auto-correction a multi-line ` string with backticks registers an offense without auto-correction when EnforcedStyle is set to backticks a single-line ` string without backticks is accepted a multi-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction a multi-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted a single-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction a single-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted a single-line %x string without backticks registers an offense and corrects to backticks a multi-line ` string without backticks is accepted a multi-line %x string without backticks registers an offense and corrects to backticks when PercentLiteralDelimiters is configured with curly braces respects the configuration when auto-correcting heredoc commands is ignored when PercentLiteralDelimiters only has a default respects the configuration when auto-correcting when EnforcedStyle is set to mixed a single-line %x string without backticks registers an offense and corrects to backticks a single-line ` string without backticks is accepted a multi-line ` string with backticks registers an offense without auto-correction a multi-line %x string with backticks is accepted a multi-line ` string without backticks registers an offense and corrects to %x a multi-line %x string without backticks is accepted a single-line %x string with backticks is accepted when configured to allow inner backticks registers an offense without auto-correction a single-line ` string with backticks registers an offense without auto-correction when configured to allow inner backticks is accepted %x commands with other delimiters than parentheses registers an offense RuboCop::Cop::Style::GlobalVars does not register an offense for built-in variable $ERROR_POSITION does not register an offense for built-in variable $stdin does not register an offense for built-in variable $CLASSPATH does not register an offense for built-in variable $INPUT_LINE_NUMBER does not register an offense for built-in variable $LAST_MATCH_INFO does not register an offense for built-in variable $JRUBY_REVISION does not register an offense for built-in variable $-v registers an offense for $custom does not register an offense for built-in variable $OUTPUT_FIELD_SEPARATOR does not register an offense for built-in variable $! does not register an offense for built-in variable $stdout does not register an offense for built-in variable $FIELD_SEPARATOR does not register an offense for built-in variable $MATCH does not register an offense for built-in variable $OFS does not register an offense for built-in variable $. does not register an offense for built-in variable $-0 does not register an offense for built-in variable $ERROR_INFO does not register an offense for built-in variable $? does not register an offense for built-in variable $-d does not register an offense for built-in variable $FILENAME does not register an offense for built-in variable $< allows user permitted variables does not register an offense for built-in variable $` does not register an offense for built-in variable $" does not register an offense for built-in variable $@ does not register an offense for built-in variable $/ does not register an offense for built-in variable $ORS does not register an offense for built-in variable $-F does not register an offense for built-in variable $SAFE does not register an offense for built-in variable $LAST_READ_LINE does not register an offense for built-in variable $\ does not register an offense for built-in variable $JRUBY_VERSION does not register an offense for built-in variable $+ does not register an offense for built-in variable $-w does not register an offense for built-in variable $ENV_JAVA does not register an offense for built-in variable $LOADED_FEATURES does not register an offense for built-in variable $OUTPUT_RECORD_SEPARATOR does not register an offense for built-in variable $PID does not register an offense for built-in variable $' does not register an offense for built-in variable $DEFAULT_INPUT does not register an offense for built-in variable $PROCESS_ID does not register an offense for backrefs like $1 does not register an offense for built-in variable $$ does not register an offense for built-in variable $VERBOSE does not register an offense for built-in variable $PREMATCH does not register an offense for built-in variable $-i does not register an offense for built-in variable $; does not register an offense for built-in variable $& does not register an offense for built-in variable $LAST_PAREN_MATCH does not register an offense for built-in variable $: does not register an offense for built-in variable $> does not register an offense for built-in variable $CHILD_STATUS does not register an offense for built-in variable $_ does not register an offense for built-in variable $ARGV does not register an offense for built-in variable $, does not register an offense for built-in variable $-a does not register an offense for built-in variable $* does not register an offense for built-in variable $0 does not register an offense for built-in variable $-l does not register an offense for built-in variable $INPUT_RECORD_SEPARATOR does not register an offense for built-in variable $PROGRAM_NAME does not register an offense for built-in variable $FS does not register an offense for built-in variable $RS does not register an offense for built-in variable $DEBUG does not register an offense for built-in variable $POSTMATCH does not register an offense for built-in variable $NR does not register an offense for built-in variable $DEFAULT_OUTPUT does not register an offense for built-in variable $= does not register an offense for built-in variable $IGNORECASE does not register an offense for built-in variable $~ does not register an offense for built-in variable $-I does not register an offense for built-in variable $-p does not register an offense for built-in variable $stderr does not register an offense for built-in variable $LOAD_PATH RuboCop::Cop::Lint::DeprecatedClassMethods prefer `block_given?` over `iterator?` does not register an offense for block_given? does not register an offense for offensive method `iterator?`on other receivers registers an offense and corrects iterator? prefer `File.exist?` over `File.exists?` registers an offense and corrects File.exists? registers an offense and corrects ::File.exists? does not register an offense for File.exist? prefer `Dir.exist?` over `Dir.exists?` does not register an offense for Dir.exist? registers an offense and corrects Dir.exists? registers an offense and corrects ::Dir.exists? does not register an offense for offensive method `exists?`on other receivers RuboCop::Cop::Layout::ClosingParenthesisIndentation accepts begin nodes that are not grouped expressions for method assignments with indented parameters with line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) without arguments registers an offense for misaligned ) accepts a correctly aligned ) against ( can handle indentation up against the left edge can handle indentation up against the method accepts empty () with no line break before 1st parameter accepts a correctly indented ) accepts a correctly aligned ) can handle individual arguments that are broken over lines can handle indentation up against the left edge can handle inner method calls can handle hash arguments that are not broken over lines registers an offense for misaligned ) for grouped expressions with no line break before 1st operand registers an offense for misaligned ) accepts a correctly aligned ) accepts ) that does not begin its line with line break before 1st operand accepts a correctly aligned ) registers an offense for misaligned ) for method calls with no line break before 1st parameter registers an offense for misaligned ) accepts a correctly indented ) inside a block accepts a correctly aligned ) registers an offense and corrects misindented ) when ) is aligned with the params accepts a correctly indented ) with first multiline arg on new line accepts ) on the same level as ( with args on same line accepts ) on the same level as ( with second arg on new line with line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) without arguments accepts empty () can handle indentation up against the left edge accepts a correctly aligned ) against ( for method definitions with no line break before 1st parameter accepts a correctly aligned ) registers an offense for misaligned ) accepts empty () with line break before 1st parameter registers an offense for misaligned ) accepts a correctly aligned ) for method chains can handle multiple chains with differing breaks registers an offense and corrects method chains when using safe navigation operator registers an offense and corrects misaligned ) RuboCop::Cop::Layout::RescueEnsureAlignment accepts correctly aligned rescue in assigned begin-end block accepts rescue and ensure on the same line accepts correctly aligned ensure accepts correctly aligned rescue accepts the modifier form accepts end being misaligned allows inline access modifier with private modifier ensure with defs correct alignment registers an offense ensure with def registers an offense correct alignment rescue with def correct alignment registers an offense rescue with defs registers an offense correct alignment with private_class_method modifier rescue with def registers an offense correct alignment ensure with defs registers an offense correct alignment rescue with defs registers an offense correct alignment ensure with def registers an offense correct alignment with public_class_method modifier ensure with defs registers an offense correct alignment ensure with def correct alignment registers an offense rescue with defs registers an offense correct alignment rescue with def registers an offense correct alignment ensure with def registers an offense ensure with defs registers an offense rescue with begin registers an offense as RHS of assignment accepts multi-line, indented registers offense for incorrect alignment accepts multi-line, aligned >= Ruby 2.5 accepts aligned rescue in do-end block assigned to instance variable accepts aligned rescue in do-end block assigned to class variable accepts aligned rescue in do-end block on multi-assignment accepts aligned rescue in do-end block accepts aligned rescue in assigned do-end block starting on newline accepts aligned rescue in do-end block assigned to class accepts aligned rescue in do-end block on operation assignment accepts aligned rescue in do-end block assigned to global variable accepts aligned rescue do-end block assigned to local variable accepts aligned rescue in do-end block in a method accepts aligned rescue in do-end block on or-assignment accepts aligned rescue in do-end block on and-assignment rescue in do-end block on or-assignment registers an offense rescue in assigned do-end block starting on newline registers an offense rescue in do-end block assigned to instance variable registers an offense rescue in do-end block assigned to global variable registers an offense rescue in do-end block assigned to local variable registers an offense rescue in do-end block assigned to class variable registers an offense rescue with do-end block registers an offense rescue in do-end block on operation assignment registers an offense rescue in do-end block on and-assignment registers an offense rescue in do-end block on multi-assignment registers an offense rescue in do-end block assigned to class registers an offense ensure with class registers an offense rescue with module registers an offense when rescue used with module ensure with module registers an offense when ensure used with module rescue with defs registers an offense ensure with begin registers an offense when ensure used with begin allows inline expression before ensure registers an offense rescue registers an offense rescue with class registers an offense when rescue used with class excluded file processes excluded files with issue rescue with def registers an offense RuboCop::Cop::Style::WhenThen registers an offense for when x; accepts ; separating statements in the body of when when inspecting a case statement with an empty branch does not register an offense RuboCop::Cop::Lint::EmptyExpression when used as a standalone expression registers an offense with nested empty expressions registers an offense when used in a condition registers an offense in the return value of a ternary operator registers an offense inside `if` registers an offense inside `elsif` registers an offense inside `case` registers an offense inside `when` registers an offense in the condition of a ternary operator when used as an assignment registers an offense for the assigned value when used as a return value registers an offense in the return value of a method registers an offense in the return value of a case statement registers an offense in the return value of a condition RuboCop::Cop::Lint::RedundantSplatExpansion allows expansions of an array that is assigned to a variable in rescue allows assigning to a splat variable allows assigning a variable to a splat expansion of a variable allows expanding a method call on an array literal allows splat expansion inside of an array allows assigning to an expanded range registers an offense and corrects an array literal being expanded in a rescue allows assigning to a splat accepts expanding a variable as a method parameter allows an array using a constructor behaves like splat expansion behaves like splat literal assignment registers an offense and converts to an array method parameters registers an offense and converts to an array expanding an array literal in a when condition allows an array that is assigned to a variable registers an offense and corrects an array using %W registers an offense and corrects an array using [] registers an offense and corrects %i to a list of symbols registers an offense and corrects %I to a list of symbols allows an array using a constructor registers an offense and corrects an array using %w behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments arrays being expanded with %i variants using splat expansion splat expansion of method parameters registers an offense and corrects an array literal %i registers an offense and corrects an array literal %I splat expansion inside of an array registers an offense and corrects %i to a list of symbols registers an offense and changes %I to a list of symbols expanding Array.new call on array literal with ::Array.new when the array literal contains exactly one element registers an offense and corrects when the array literal contains exactly one element registers an offense and corrects when the array literal contains more than one element accepts behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments behaves like splat expansion method parameters registers an offense and converts to an array behaves like splat literal assignment registers an offense and converts to an array behaves like splat expansion behaves like splat literal assignment registers an offense and converts to an array method parameters registers an offense and converts to an array behaves like splat expansion behaves like splat literal assignment registers an offense and converts to an array method parameters registers an offense and converts to an array behaves like array splat expansion behaves like splat literal assignment registers an offense and removes the splat from array method parameters registers an offense and converts to a list of arguments splat expansion inside of an array registers an offense and corrects expansion of %W to a list of words registers an offense and corrects expansion of %w to a list of words registers an offense and corrects the expansion of an array literalinside of an array literal assignment to splat expansion registers an offense and corrects an array using a constructor registers and corrects an array using top-level const behaves like array splat expansion method parameters registers an offense and converts to a list of arguments behaves like splat literal assignment registers an offense and removes the splat from array RuboCop::Cop::Style::AccessorGrouping when EnforcedStyle is separated does not register an offense for grouped accessors with comments registers an offense and corrects when using grouped accessors does not register an offense when using separated accessors registers an offense and corrects when using grouped accessors with different access modifiers registers an offense and corrects when using grouped accessors within eigenclass when EnforcedStyle is grouped registers offense and corrects if atleast two separate accessors without comments registers an offense and corrects when using separated accessors does not register an offense when using grouped accessors registers an offense and corrects when using separated accessors with different access modifiers registers an offense and corrects when using separated accessors within eigenclass does not register offense for accessors with comments RuboCop::Cop::Style::ImplicitRuntimeError registers an offense for `fail` without error class does not register an offense for `fail` without arguments does not register an offense for `raise` without arguments does not register an offense for `fail` with an error class registers an offense for `fail` with a multiline string registers an offense for `raise` with a multiline string does not register an offense for `raise` with an error class registers an offense for `raise` without error class RuboCop::Cop::Style::StderrPuts registers no offense when using `$stderr.puts` with no arguments registers an offense when using `STDERR.puts('hello')` registers an offense when using `::STDERR.puts('hello')` registers no offense when using `STDERR.puts` with no arguments registers an offense when using `$stderr.puts('hello')` RuboCop::Cop::Style::GlobalStdStream does not register an offense when assigning std stream const to std stream gvar registers an offense and corrects when using std stream as const does not register an offense when assigning other const to std stream gvar does not register an offense when using non std stream const RuboCop::Cop::Style::EmptyLambdaParameter registers an offense for an empty block parameter with a lambda does not crash on a super accepts a keyword lambda RuboCop::Cop::Lint::MissingCopEnableDirective when the maximum range size is infinite registers an offense when a cop is disabled and never re-enabled does not register an offense when the disable cop is re-enabled when the maximum range size is finite registers an offense when a cop is disabled and never re-enabled does not register an offense when the disable cop is re-enabled within the limit registers an offense when a cop is disabled for too many lines RuboCop::Cop::Metrics::Utils::CodeLengthCalculator #calculate raises when unknown foldable type is passed when class calculates class length does not count lines of inner classes counts comments if asked folds arrays if asked does not count blank lines folds hashes if asked folds heredocs if asked when method does not count blank lines counts comments if asked folds heredocs if asked calculates method length folds hashes if asked folds arrays if asked RuboCop::Cop::Layout::FirstArrayElementLineBreak ignores elements listed on a single line ignores properly formatted implicit arrays masgn implicit arrays detects the offense autocorrects the offense word arrays detects the offense autocorrects the offense elements listed on the first line registers an offense autocorrects the offense array nested in a method call registers ans offense autocorrects the offense send implicit arrays autocorrects the offense detects the offense RuboCop::Cop::Style::SpecialGlobalVars when style is use_english_names auto-corrects #{$!} to #{$ERROR_INFO} registers an offense for $: auto-corrects #$: to #{$LOAD_PATH} registers an offense for $" registers an offense for $0 generates correct auto-config when Perl variable names are used generates correct auto-config when mixed styles are used auto-corrects $/ to $INPUT_RECORD_SEPARATOR does not register an offense for backrefs like $1 registers an offense for $$ is clear about variables from the English library vs those not when style is use_perl_names auto-corrects $INPUT_RECORD_SEPARATOR to $/ auto-corrects #{$LOAD_PATH} to #$: registers an offense for $PROCESS_ID does not register an offense for backrefs like $1 registers an offense for $PROGRAM_NAME registers an offense for $LOADED_FEATURES registers an offense for $LOAD_PATH registers an offense for $PID RuboCop::Cop::Style::MultilineBlockChain accepts a chain of calls followed by a multi-line block accepts a chain of blocks spanning one line accepts a multi-line block chained with calls on one line with multi-line block chaining registers two offenses for a chain of three blocks registers an offense for a simple case registers an offense for a slightly more complicated case registers an offense for a chain where the second block is single-line accepts a chain where the first block is single-line RuboCop::Formatter::TapFormatter #file_finished when any offenses are detected prints "not ok" when no offenses are detected prints "ok" #finished when any offenses are detected reports all detected offenses for all failed files when no offenses are detected does not report offenses RuboCop::Cop::Lint::BooleanSymbol does not register an offense when using `false` does not register an offense when using regular symbol does not register an offense when using `true` registers an offense when using `:false` registers an offense when using `:true` when using the new hash syntax registers an offense when using `key: :false` registers an offense when using `true:` registers an offense when using `false:` RuboCop::Cop::Lint::PercentStringArray with invalid byte sequence in UTF-8 accepts if tokens contain invalid byte sequence only add an offense and corrects when tokens contain quotes detecting quotes or commas in a %w/%W string adds an offense and corrects when tokens contain quotes and are comma separated adds an offense and corrects when one token is quoted but there are no commas accepts likely false positive %w(' ") accepts tokens without quotes or commas accepts likely false positive %W(#{a} b) adds an offense and corrects when tokens contain both types of quotes accepts likely false positive %w(' " ! = # ,) adds an offense and corrects when one token is quoted but there are no commas accepts likely false positive :"#{a}" accepts likely false positive :"#{a}" adds an offense and corrects when tokens contain quotes and are comma separated accepts likely false positive %W(' " ! = # ,) adds an offense and corrects when there are no quotes but one comma adds an offense and corrects when there are no quotes but one comma accepts likely false positive %w(#{a} b) accepts likely false positive %W(' ") adds an offense and corrects when tokens contain both types of quotes accepts tokens without quotes or commas with binary encoded source accepts if tokens contain no quotes adds an offense and corrects when tokens contain quotes RuboCop::Cop::Style::BarePercentLiterals when EnforcedStyle is bare_percent and strings are static accepts heredoc accepts %q accepts "" string with interpolation accepts __FILE__ accepts '' accepts %() registers an offense for %Q() accepts regular expressions accepts "" and strings are dynamic registers an offense for %Q() accepts "" accepts %() accepts regular expressions accepts %q accepts "" string with interpolation accepts heredoc accepts __FILE__ accepts '' when EnforcedStyle is percent_q and strings are dynamic accepts %Q() accepts __FILE__ registers an offense for %() accepts "" string with interpolation accepts regular expressions accepts %q accepts "" accepts '' accepts heredoc and strings are static accepts heredoc registers an offense for %() accepts '' accepts %Q() accepts "" accepts __FILE__ accepts "" string with interpolation accepts regular expressions accepts %q RuboCop::Cop::Style::NumericLiteralPrefix decimal literals does not register offense for no prefix registers an offense for prefixes hex literals registers an offense for uppercase prefix does not register offense for lowercase prefix binary literals does not register offense for lowercase prefix registers an offense for uppercase prefix octal literals when config is zero_only registers an offense for prefix `0O` and `0o` does not register offense for prefix `0` when config is zero_with_o registers an offense for prefixes `0` and `0O` does not register offense for lowercase prefix RuboCop::Cop::Style::StringLiterals configured with double quotes preferred registers offense for escaped single quote in single quotes accepts %q and %Q quotes accepts heredocs accepts single quotes in string with escaped non-' character accepts escaped single quote in string with escaped non-' character accepts double quotes accepts ' in a %w can handle a built-in constant parsed as string registers offense for opposite + correct accepts % quotes accepts single quotes at the start of regexp literals registers offense for single quotes when double quotes would be equivalent does not accept multiple escaped single quotes in single quotes accepts single quotes in interpolation accepts single quotes when they are needed flags single quotes with plain # (not #@var or #{interpolation} when configured with a bad value fails when ConsistentQuotesInMultiline is true and EnforcedStyle is single_quotes registers an offense for strings with line breaks in them registers an offense for mixed quote styles in a continued string doesn't register offense for double quotes with interpolation accepts continued strings using all single quotes accepts for double quotes with an escaped special character doesn't register offense for double quotes with embedded single accepts for double quotes with an escaped normal character doesn't choke on heredocs with inconsistent indentation registers an offense for unneeded double quotes in continuation and EnforcedStyle is double_quotes registers an offense for mixed quote styles in a continued string registers an offense for unneeded single quotes in continuation accepts continued strings using all double quotes doesn't register offense for single quotes with embedded double configured with single quotes preferred registers offense for correct + opposite accepts double quotes when interpolating an instance variable accepts double quotes when interpolating a global variable accepts single quotes accepts double quotes with some other special symbols detects unneeded double quotes within concatenated string accepts double quotes when new line is used accepts heredocs accepts double quotes at the start of regexp literals accepts % quotes does not register an offense for words with non-ascii chars and other control sequences registers offense for double quotes when single quotes suffice accepts double quotes when single quotes are used can handle character literals accepts \\\n in a string accepts single quotes in interpolation registers an offense for "\"" registers an offense for words with non-ascii chars accepts double quotes when control characters are used accepts double quotes when interpolating & quotes in multiple lines accepts double quotes when interpolating a class variable accepts double quotes in interpolation accepts %q and %Q quotes accepts double quotes when unicode control sequence is used accepts " in a %w can handle a built-in constant parsed as string RuboCop::Cop::Naming::MethodName when configured for camelCase accepts class emitter method in a class registers an offense for camel case methods names in attr. accepts class emitter method in a class, even when it is defined inside another method accepts class emitter method in a module accepts camel case names in attr. registers an offense for singleton snake_case method within class accepts operator definitions accepts class emitter method in a module, even when it is defined inside another method accepts one line methods registers an offense for mixed snake case and camel case accepts camel case in instance method name accepts unary operator definitions registers an offense for capitalized camel case registers an offense for mixed snake case and camel case in attr. registers an offense for snake case name in attr. registers an offense for mixed snake case and camel case in attr. registers an offense for singleton upper case method without corresponding class accepts camel case in singleton method name registers an offense for capitalized camel case name in attr. registers an offense for correct + opposite registers an offense for snake case in names when specifying `IgnoredPatterns` does not register an offense for snake case method name matching `IgnoredPatterns` does not register an offense for camel case method name in attr. does not register an offense for snake case method name in attr. does not register an offense for camel case method name matching `IgnoredPatterns` when configured for snake_case accepts class emitter method in a module, even when it is defined inside another method registers an offense for camel case method names in attr. registers an offense for mixed snake case and camel case in attr. accepts snake case in names registers an offense for singleton upper case method without corresponding class registers an offense for mixed snake case and camel case in attr. registers an offense for singleton camelCase method within class registers an offense for camel case in singleton method name registers an offense for camel case in instance method name accepts unary operator definitions accepts snake case in attr. accepts one line methods registers an offense for mixed snake case and camel case accepts class emitter method in a module accepts class emitter method in a class, even when it is defined inside another method registers an offense for capitalized camel case registers an offense for capitalized camel case name in attr. accepts operator definitions accepts class emitter method in a class registers an offense for camel case methods names in attr. registers an offense for opposite + correct when specifying `IgnoredPatterns` does not register an offense for camel case method name in attr. does not register an offense for camel case method name matching `IgnoredPatterns` does not register an offense for snake case method name in attr. does not register an offense for snake case method name matching `IgnoredPatterns` RuboCop::Formatter::EmacsStyleFormatter #finished does not report summary #file_finished displays parsable text when the offense is automatically corrected prints [Corrected] along with message when the offense message contains a newline strips newlines out of the error message when the offense is marked as todo prints [Todo] along with message RuboCop::Cop::Layout::SpaceAroundBlockParameters when EnforcedStyleInsidePipes is no_space accepts a block with spaces in the right places accepts an empty block accepts block parameters with surrounding space that includes line breaks registers an offense and corrects space after last parameter accepts a block parameter without preceding space skips lambda without parens registers an offense and corrects multiple spaces before parameter registers an offense and corrects all types of spacing issues for a lambda accepts a lambda with spaces in the right places accepts a block with parameters but no body skips lambda without args registers an offense and corrects a lambda for space after the last parameter registers an offense and corrects all types of spacing issues registers an offense and corrects a lambda for space before first parameter registers an offense and corrects no space after closing pipe accepts line break after closing pipe registers an offense and corrects for space with parens registers an offense and corrects space before first parameter trailing comma accepts no space after the last comma registers an offense for space after the last comma when EnforcedStyleInsidePipes is space registers an offense and corrects a lambda for extra spacebefore first parameter skips lambda without args registers an offense for no space before first parameter accepts line break after closing pipe registers an offense and corrects multiple spaces after last parameter registers an offense and corrects no space after closing pipe registers an offense and corrects a lambda for multiple spacesafter last parameter registers an offense and corrects space with parens at middle registers an offense and corrects multiple spaces before parameter accepts a lambda with spaces in the right places registers an offense and corrects a lambda for no space before first parameter registers an offense and corrects extra space before first parameter accepts a block parameter without preceding space registers an offense and corrects a lambda for no space after last parameter registers an offense and corrects block arguments inside Hash#each registers an offense and corrects spacing in lambda args registers an offense and corrects missing space before first argument and after last argument skips lambda without parens accepts an empty block accepts a block with parameters but no body registers an offense and corrects no space after last parameter accepts a block with spaces in the right places trailing comma registers an offense and corrects no space after the last comma accepts space after the last comma RuboCop::Cop::Style::VariableInterpolation registers an offense for interpolated global variables in symbol registers an offense for interpolated class variables registers an offense for interpolated regexp nth back references registers an offense for interpolated instance variables registers an offense for interpolated regexp back references registers an offense for interpolated global variables in string does not register an offense for variables in expressions registers an offense for interpolated global variables in backticks registers an offense for interpolated global variables in regexp RuboCop::Formatter::JSONFormatter #file_finished adds value of #hash_for_file to #output_hash[:files] adds detected offense count in summary #hash_for_location sets column value for :column key sets line value for :line key sets length value for :length key #finished sets inspected file count in summary outputs #output_hash as JSON #started sets target file count in summary #hash_for_file sets an array of #hash_for_offense values for :offenses key sets relative file path for :path key #hash_for_offense sets Offense#corrected? value for :corrected key sets Offense#severity value for :severity key sets Offense#cop_name value for :cop_name key sets Offense#correctable? value for :correctable key sets value of #hash_for_location for :location key sets Offense#message value for :message key RuboCop::Cop::Style::HashSyntax configured to enforce hash rockets style accepts hash rockets in a hash literal accepts an empty hash registers an offense for mixed syntax registers an offense for 1.9 style in method calls accepts hash rockets in method calls registers offense for Ruby 1.9 style UseHashRocketsWithSymbolValues has no impact does not register an offense when there is a symbol value configured to enforce ruby19 style with SpaceAroundOperators enabled preserves quotes during autocorrection registers an offense when symbol keys have strings in them accepts new syntax in a hash literal registers offense when keys start with an uppercase letter accepts hash rockets when symbol keys end with = accepts hash rockets when symbol characters are not supported accepts hash rockets when keys have different types registers an offense for hash rockets in method calls registers an offense for mixed syntax when new is possible accepts an empty hash auto-corrects even if it interferes with SpaceAroundOperators registers offense for hash rocket syntax when new is possible accepts new syntax in method calls auto-corrects a missing space when hash is used as argument if PreferHashRocketsForNonAlnumEndingSymbols is true accepts hash rockets when symbols end with ? accepts hash rockets when symbols end with ! if PreferHashRocketsForNonAlnumEndingSymbols is false registers an offense for hash rockets when symbols end with ? registers an offense for hash rockets when symbols end with ! when using a return value uses `return` registers an offense and corrects when not enclosed in parentheses registers an offense and corrects when enclosed in parentheses with SpaceAroundOperators disabled auto-corrects even if there is no space around => configured to use hash rockets when symbol values are found accepts ruby19 syntax when no elements have symbol values accepts ruby19 syntax when no elements have symbol values in method calls registers an offense when any element uses a symbol for the value accepts hash in ruby19 style with no symbol values accepts both hash rockets and ruby19 syntax in the same code accepts an empty hash registers an offense when using hash rockets and no elements have a symbol value registers an offense when any element has a symbol value in method calls registers an offense for hashes with elements on multiple lines auto-corrects to hash rockets when all elements have symbol value configured to enforce ruby 1.9 style with no mixed keys UseHashRocketsWithSymbolValues enabled registers an offense when keys have special symbols in them registers offense for hash rocket syntax when new is possible registers an offense when keys have whitespaces in them registers an offense when keys start with a digit registers an offense for hash rockets in method calls accepts new syntax in method calls accepts new syntax when keys are interpolated string registers an offense for mixed syntax when new is possible accepts hash rockets when keys have different types accepts an empty hash registers an offense when any element has a symbol value in method calls accepts new syntax in a hash literal registers an offense when any element uses a symbol for the value registers an offense when keys have different types and styles auto-corrects to hash rockets when all elements have symbol value UseHashRocketsWithSymbolValues disabled registers an offense when keys have whitespaces in them registers an offense when keys have special symbols in them accepts new syntax in method calls accepts hash rockets when keys have different types registers an offense when keys start with a digit registers an offense for mixed syntax when new is possible accepts new syntax in a hash literal registers an offense when keys have different types and styles accepts new syntax when keys are interpolated string accepts an empty hash registers offense for hash rocket syntax when new is possible registers an offense for hash rockets in method calls configured to enforce no mixed keys registers an offense when keys have whitespaces and mix styles registers an offense when keys start with a digit and mix styles accepts hash rockets in method calls accepts hash rockets when keys start with a digit accepts new syntax in a hash literal registers an offense for mixed syntax when new is possible accepts hash rockets when keys have special symbols in them accepts hash rockets when keys have whitespaces in them accepts an empty hash accepts old hash rockets style accepts hash rockets when keys have different types accepts the hash rocket syntax when new is possible auto-corrects mixed key hashes accepts new hash style registers an offense when keys have special symbols and mix styles accepts new syntax in method calls registers an offense when keys have different types and styles isolated environment is not affected by a config file above the work directory RuboCop::Cop::Style::SelfAssignment registers an offense for non-shorthand assignment - and @x registers an offense for non-shorthand assignment || and @x registers an offense for non-shorthand assignment * and @x registers an offense for non-shorthand assignment | and @@x registers an offense for non-shorthand assignment | and @x registers an offense for non-shorthand assignment + and @@x registers an offense for non-shorthand assignment && and @@x registers an offense for non-shorthand assignment || and x registers an offense for non-shorthand assignment / and @x registers an offense for non-shorthand assignment / and @@x registers an offense for non-shorthand assignment & and x registers an offense for non-shorthand assignment & and @x registers an offense for non-shorthand assignment ** and @@x registers an offense for non-shorthand assignment - and @@x registers an offense for non-shorthand assignment | and x registers an offense for non-shorthand assignment + and @x registers an offense for non-shorthand assignment & and @@x registers an offense for non-shorthand assignment / and x registers an offense for non-shorthand assignment && and @x registers an offense for non-shorthand assignment && and x registers an offense for non-shorthand assignment ** and @x registers an offense for non-shorthand assignment - and x registers an offense for non-shorthand assignment || and @@x registers an offense for non-shorthand assignment * and x registers an offense for non-shorthand assignment * and @@x registers an offense for non-shorthand assignment + and x registers an offense for non-shorthand assignment ** and x RuboCop::Cop::Severity is frozen overrides #to_s has a few required attributes redefines == to compare severities constructs from code E is expected to eq # C is expected to eq # F is expected to eq # W is expected to eq # R is expected to eq # #level convention is expected to eq 2 error is expected to eq 4 refactor is expected to eq 1 fatal is expected to eq 5 warning is expected to eq 3 Comparable error is expected to be < fatal refactor is expected to be < convention warning is expected to be < error convention is expected to be < warning #code error is expected to eq "E" fatal is expected to eq "F" convention is expected to eq "C" refactor is expected to eq "R" warning is expected to eq "W" RuboCop::Cop::Lint::SafeNavigationWithEmpty in a conditional does not register an offense on `.empty?` registers an offense and corrects on `&.empty?` outside a conditional registers no offense RuboCop::Cop::Style::Next handles nested autocorrections allows empty blocks does not crash with an empty body branch keeps comments when autocorrecting allows loops with conditions at the end with ternary op handles `then` when autocorrecting doesn't reindent heredoc bodies when autocorrecting does not blow up on empty body until block does not blow up on empty body while block does not crash with empty brackets allows super nodes does not blow up on empty body for block MinBodyLength: 3 accepts if whose body has 1 line Invalid MinBodyLength fails with an error behaves like iterators registers an offense for a condition at the end of an iterator when there is more in the iterator than the condition allows loops with unless being the entire body with else registers an offense for unless inside of each_with_object registers an offense for unless inside of times allows loops with conditional break registers an offense for unless inside of collect registers an offense for unless inside of nested iterators registers an offense for unless inside of downto registers an offense for unless inside of loop registers an offense for unless inside of each registers an offense for unless inside of reject! registers an offense for unless inside of nested iterators reports an offense for unless whose body has 3 lines allows loops with conditional return registers an offense for unless inside of select registers an offense for unless inside of reject allows loops with unless with else, nested in another condition registers an offense for unless inside of map auto-corrects a misaligned end allows loops with unless with else at the end registers an offense for unless inside of for registers an offense for unless inside of select! EnforcedStyle: skip_modifier_ifs allows modifier unless EnforcedStyle: always registers an offense for modifier unless behaves like iterators allows loops with if being the entire body with else auto-corrects a misaligned end registers an offense for if inside of loop registers an offense for if inside of downto registers an offense for a condition at the end of an iterator when there is more in the iterator than the condition registers an offense for if inside of nested iterators reports an offense for if whose body has 3 lines registers an offense for if inside of each registers an offense for if inside of nested iterators registers an offense for if inside of times registers an offense for if inside of each_with_object registers an offense for if inside of select registers an offense for if inside of reject! allows loops with conditional return registers an offense for if inside of map allows loops with if with else at the end registers an offense for if inside of reject registers an offense for if inside of collect registers an offense for if inside of select! registers an offense for if inside of for allows loops with if with else, nested in another condition allows loops with conditional break EnforcedStyle: skip_modifier_ifs allows modifier if EnforcedStyle: always registers an offense for modifier if RuboCop::Cop::Lint::FloatComparison does not register an offense when comparing with float method that can return numeric and returns integer registers an offense when comparing with float method that can return numeric and returns float registers an offense when comparing with method on float receiver registers an offense when comparing with float returning method registers an offense when comparing with arightmetic operator on floats registers an offense when comparing with float does not register an offense when comparing with float using epsilon RuboCop::Cop::Security::YAMLLoad registers an offense and corrects a fully qualified ::YAML.load does not register an offense for YAML.load under a different namespace registers an offense and corrects load with a literal string does not register an offense for YAML.dump RuboCop::Cop::Style::DoubleNegation when `EnforcedStyle: allowed_in_returns` does not register an offense for `!!` when not a return location does not register an offense for `!!` when return location does not register an offense for `!!` when using `return` keyword registers an offense for `!!` does not register an offense for ! does not register an offense for `not not` when `EnforcedStyle: forbidden` does not register an offense for ! does not register an offense for `!!` when using `return` keyword does not register an offense for `!!` when not a return location does not register an offense for `not not` registers an offense for `!!` when return location registers an offense for `!!` RuboCop::Cop::Style::RedundantFileExtensionInRequire does not register an offense when requiring variable as a filename does not register an offense when requiring filename without an extension does not register an offense when requiring filename ending with `.so` registers an offense and corrects when requiring filename ending with `.rb` RuboCop::Cop::Layout::MultilineOperationIndentation when EnforcedStyle is indented accepts special indentation of for expression accepts indentation of next if condition registers an offense and corrects one space indentation of second line accepts double indentation of until condition registers an offense and corrects no indentation of second line registers an offense for a 2 space indentation of until condition accepts indented operands in for body accepts no extra indentation of third line accepts alignment inside a grouped expression accepts two spaces indentation of second line registers an offense and corrects correct + unrecognized style accepts the indentation of a broken string accepts indented operands in if body accepts two spaces indentation in assignment of array element accepts indented operands inside and outside a block accepts any indentation of parameters to #[] accepts normal indentation of method parameters accepts double indentation of while condition accepts indentation of assignment accepts indented operands in while body accepts indented operands in until body registers an offense for a 2 space indentation of while condition registers an offense and corrects aligned operands in if conditions accepts any indentation of method parameters accepts indented operands in an array accepts normal indentation inside grouped expression accepts indentation of return unless condition accepts two spaces indentation in assignment of local variable registers an offense and corrects emacs ruby-mode 1.1 indentation of an expression in an array accepts indented operands in if condition accepts indented operands in ordinary statement registers an offense and corrects wrong indentation of for expression accepts double indentation of if condition accepts indentation of return if condition registers an offense and corrects extra indentation of third line registers an offense and corrects aligned operators in assignment registers an offense for a 2 space indentation of unless condition accepts unary operations registers an offense and corrects three space indentation of second line registers an offense and corrects aligned code on LHS of equality operator accepts double indentation of unless condition accepts indentation of next unless condition accepts indented operands in unless body does not check method calls accepts an expression where the first operand spans multiple lines registers an offense and corrects an unindented multiline operation that is the left operand in another operation registers an offense for a 2 space indentation of if condition when indentation width is overridden for this cop accepts indentation of unless condition which is offset by a single normal indentation step accepts indented operands in if condition accepts indented operands in if body registers an offense for a 4 space indentation of if condition accepts indented operands in unless body accepts indentation of until condition which is offset by a single normal indentation step registers an offense for a 4 space indentation of until condition accepts indented operands in until body registers an offense for a 4 space indentation of while condition accepts indented operands in while body accepts indentation of while condition which is offset by a single normal indentation step registers an offense and corrects accepts indentation of if condition which is offset by a single normal indentation step registers an offense for a 4 space indentation of unless condition when EnforcedStyle is aligned accepts indented operands in for body accepts an expression where the first operand spans multiple lines accepts indented operands with ternary operators accepts indented operands inside and outside a block accepts indented code on LHS of equality operator accepts two spaces indentation in assignment of local variable registers an offense and corrects one space indentation of second line accepts alignment inside a grouped expression registers an offense and corrects no indentation of second line accepts indented operands in an array does not check method calls registers an offense for misaligned operands in unless condition registers an offense and corrects three space indentation of second line accepts aligned operands in if condition accepts any indentation of parameters to #[] accepts aligned operands in assignment registers an offense and corrects misaligned operands in unless condition registers an offense and corrects misaligned string operand when the first operand has backslash continuation registers an offense and corrects extra indentation of third line accepts two spaces indentation in assignment of array element accepts no extra indentation of third line registers an offense for misaligned operands in while condition registers an offense and corrects indented second part of string registers an offense and corrects unaligned operands in op-assignment accepts unary operations accepts aligned or:ed operands in assignment registers an offense and corrects emacs ruby-mode 1.1 indentation of an expression in an array registers an offense and corrects indented operands in if condition registers an offense for misaligned operands in if condition registers an offense and corrects misaligned string operand when plus is used registers an offense for misaligned operands in until condition registers an offense and corrects an unindented multiline operation that is the left operand in another operation accepts two spaces indentation of second line accepts indented operands in ordinary statement accepts indented operands inside block + assignment registers an offense and corrects indented operand in second argument RuboCop::Cop::Style::EmptyCaseCondition given a case statement with an empty case when used as an argument of a method without comment behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case with multiple when branches and an `else` with code comments behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects with multiple when branches and an else behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects with first when branch including comma-delimited alternatives behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when using `return` in `when` clause and assigning the return value of `case` does not register an offense with multiple when branches and no else behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects with a single when branch and no else behaves like detect/correct empty case, accept non-empty case registers an offense and autocorrects accepts the source with case when used as an argument of a method with comment behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when using `return ... if` in `else` clause and assigning the return value of `case` does not register an offense when using `return ... if` in `when` clause and assigning the return value of `case` does not register an offense with when branches using then behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects when using `return` in `else` clause and assigning the return value of `case` does not register an offense with a single when branch and an else behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects with a when branch including comma-delimited alternatives behaves like detect/correct empty case, accept non-empty case accepts the source with case registers an offense and autocorrects RuboCop::Cop::RangeHelp source indicated by #range_by_whole_lines with beginning of one line with include_final_newline is expected to eq "puts 'another example'\n" without include_final_newline is expected to eq "puts 'another example'" with a whole line plus beginning of next line with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n" without include_final_newline is expected to eq "puts 'example'\nputs 'another example'" with parts of four lines with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n\nsomething_else\n" without include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n\nsomething_else" when source doesn't end with a newline with include_final_newline is expected to eq 30 is expected to eq "newline_at_end" without include_final_newline is expected to eq "newline_at_end" with a whole line except newline selected with include_final_newline is expected to eq "puts 'example'\n" without include_final_newline is expected to eq "puts 'example'" with parts of two lines with include_final_newline is expected to eq "puts 'example'\nputs 'another example'\n" without include_final_newline is expected to eq "puts 'example'\nputs 'another example'" when part of a single line is selected without include_final_newline is expected to eq "puts 'example'" with include_final_newline is expected to eq "puts 'example'\n" with end of one line without include_final_newline is expected to eq "puts 'example'" with include_final_newline is expected to eq "puts 'example'\n" source indicated by #range_with_surrounding_space when side is :right is expected to eq "a(2) " when side is :both is expected to eq " a(2) " when side is :left is expected to eq " a(2)" source indicated by #range_with_surrounding_comma when side is :right is expected to eq "Error," when side is :both is expected to eq ",Error," when side is :left is expected to eq ",Error" RuboCop::Formatter::FuubarStyleFormatter #progressbar_color when a convention offense is detected in a file is yellow when no offenses are detected in a file is still green when an error offense is detected in a file is red and then a convention offense is detected in the next file is still red when convention and error offenses are detected in a file is red initially is green when a offense is detected in a file and auto-corrected is green #with_color when color is enabled outputs coloring sequence code at the beginning and the end when color is disabled outputs nothing RuboCop::Cop::InternalAffairs::OffenseLocationKeyword does not register an offense when the `loc` is on a child node does not register an offense when the `loc` is on a different node when `node.loc.selector` is passed registers an offense if message argument is passed registers an offense RuboCop::Cop::Layout::SpaceInsideBlockBraces accepts braces surrounded by spaces registers an offense and corrects right brace without inner space registers an offense and corrects left brace without inner space accepts left brace without outer space register offenses and correct both braces without inner space with passed in parameters accepts new lambda syntax for single-line blocks registers an offense and corrects left brace without inner space accepts left brace with inner space and BlockDelimiters cop enabled registers an offense and corrects multi-line blocks registers an offense and corrects for single-line blocks and space before block parameters not allowed accepts left brace without inner space registers an offense and corrects left brace with inner space accepts new lambda syntax for multi-line blocks registers an offense and corrects left brace without inner space accepts left brace with inner space with space inside empty braces not allowed accepts empty braces with comment and line break inside accepts empty braces with no space inside accepts braces with something inside registers an offense and corrects empty braces with space inside accepts multiline braces with content accepts empty braces with line break inside accepts braces that are not empty with space inside empty braces allowed registers an offense and corrects empty braces with no space inside accepts empty braces with space inside with invalid value for EnforcedStyleForEmptyBraces fails with an error configured with no_space registers an offense and corrects left brace with inner space accepts left brace without outer space accepts braces without spaces inside registers an offense and corrects right brace with inner space with passed in parameters and space before block parameters not allowed registers an offense when braces are not aligned in multiline block registers an offense and corrects left brace with inner space accepts new lambda syntax accepts when braces are aligned in multiline block and space before block parameters allowed accepts left brace with inner space registers an offense and corrects left brace without inner space accepts new lambda syntax RuboCop::Cop::Lint::MultipleComparison accepts to use one compare operator registers an offense for x > y < z registers an offense for x >= y >= z registers an offense for x <= y > z registers an offense for x >= y < z registers an offense for x >= y > z registers an offense for x <= y <= z registers an offense for x > y <= z registers an offense for x <= y >= z registers an offense for x < y > z registers an offense for x < y <= z registers an offense for x > y >= z registers an offense for x < y >= z registers an offense for x <= y < z registers an offense for x > y > z registers an offense for x < y < z registers an offense for x >= y <= z RuboCop::Cop::VariableForce::Reference .new when non variable reference node is passed raises error RuboCop::Cop::Style::PreferredHashMethods with enforced `short` style registers an offense for has_value? with one arg registers an offense for has_key? with one arg accepts has_key? with no args accepts has_value? with no args when using safe navigation operator registers an offense for has_value? with one arg with enforced `verbose` style accepts value? with no args registers an offense for key? with one arg registers an offense for value? with one arg accepts key? with no args RuboCop::Cop::Lint::SafeNavigationChain accepts usages of ordinary method chain with argument accepts usages of ordinary method chain registers an offense for ordinary method chain exists after safe navigation method call with a block accepts usages of safe navigation with `nil?` method registers an offense for safe navigation with []= operator registers an offense for safe navigation with < operator registers an offense for ordinary method chain exists after safe navigation method call with a block-pass accepts usages of safe navigation with `try` method registers an offense for safe navigation with <= operator accepts usages of method chain with safe navigation only registers an offense for ordinary method chain exists after safe navigation method call with an argument registers an offense for safe navigation with > operator accepts usages of safe navigation at last only with argument accepts usages of safe navigation with == operator accepts usages of safe navigation with | operator accepts usages of safe navigation with assignment method registers an offense for safe navigation with >= operator registers an offense for ordinary method call exists after safe navigation method call registers an offense for safe navigation with [] operator accepts usages of safe navigation with `present?` method accepts usages of safe navigation with self assignment method registers an offense for ordinary method call exists after safe navigation method call with an argument accepts usages of safe navigation with & operator accepts usages of safe navigation with === operator accepts usages of safe navigation with `to_d` method registers an offense for ordinary method chain exists after safe navigation method call accepts usages of safe navigation with || operator registers an offense for safe navigation with + operator accepts usages of safe navigation with && operator accepts usages of safe navigation with `blank?` method accepts usages of method chain with safe navigation only with argument accepts usages of safe navigation at last only proper highlighting when there are methods after when in a method when there are methods before when in a begin when used with a modifier if >= Ruby 2.7 registers an offense for ordinary method chain exists after safe navigation method call with a block using numbered parameter RuboCop::Cop::Layout::SpaceAfterColon accepts required keyword arguments accepts colons denoting required keyword argument accepts colons in strings accepts colons in symbols accepts colon in ternary followed by space accepts hash rockets registers an offense and corrects colon without space after it accepts hashes with a space after colons registers an offense and corrects a keyword optional argument without a space accepts if RuboCop::Cop::Style::BeginBlock reports an offense for a BEGIN block RuboCop::Cop::Style::WordArray with non-default MinSize does not autocorrects arrays of one symbol if MinSize > 1 when EnforcedStyle is percent does not register an offense in an ambiguous block context does not register an offense for array containing non-string auto-corrects an array of words auto-corrects an array with one element does not register an offense for array of non-words registers an offense for strings with newline and tab escapes registers an offense for arrays with character constants detects right value of MinSize to use for --auto-gen-config auto-corrects an array of words and character constants registers an offense in a non-ambiguous block context keeps the line breaks in place after auto-correct registers an offense for arrays of single quoted strings does not register an offense for array with empty strings does not register offense for array with allowed number of strings uses %W when autocorrecting strings with embedded newlines and tabs auto-corrects an array of words in multiple lines registers an offense for an array with comments outside of it registers an offense for arrays of strings containing hyphens does not register an offense on non-word strings doesn't fail in wacky ways when multiple cop instances are used does not register an offense for an array with comments in it auto-corrects an array of words using partial newlines registers an offense for arrays of double quoted strings does not register an offense for array starting with %w detects when the cop must be disabled to avoid offenses when the default external encoding is UTF-8 registers an offense for arrays of unicode word characters when the default external encoding is US-ASCII registers an offense for arrays of unicode word characters when EnforcedStyle is array doesn't fail on strings which are not valid UTF-8 does not register an offense for arrays of double quoted strings registers an offense for a %w() array autocorrects a %w() array which uses string with hyphen does not register an offense for arrays of single quoted strings doesn't fail with `encoding: binary autocorrects a %W() array which uses string interpolation autocorrects a %W() array which uses escapes does not register an offense for arrays of strings with hyphens autocorrects a %W() array which uses string with hyphen autocorrects a %w() array which uses single quotes when the WordRegex configuration is not a Regexp still parses the code without raising an error with a treacherous WordRegex configuration doesn't break when words contain delimiters doesn't break when words contain whitespace when PreferredDelimiters is specified autocorrects an array with delimiters with a custom WordRegex configuration registers an offense for arrays of email addresses with a WordRegex configuration which accepts almost anything uses %w for strings which only appear to have an escape uses %W when autocorrecting strings with non-printable chars RuboCop::Cop::Layout::EmptyLines does not register an offense for empty lines in a string registers an offense for consecutive empty lines does not register an offense for heredocs with empty lines inside works when there are no tokens handles comments RuboCop::Cop::Layout::SpaceAroundMethodCallOperator does not register an offense when no method call operator :: operator does not register an offense when no space around method call does not register an offense if no space before `::` operator with assignment registers an offense when multiple spaces with assignment autocorrects offense when space after last method call operator registers an offense when space after method call autocorrects offense when space after method call autocorrects offense when multiple spaces with assignment registers an offense when space after first operator with assignment autocorrects offense when space around multiple method call operator does not register an offense when no space around any `.` operators autocorrects offense when spaces after method call registers an offense when space around intermediate method call operator does not register an offense if no space with conditionals registers an offense when space after last method call operator autocorrects offense when space around intermediate method call operator autocorrects offense when space after first operator with assignment registers an offense when spaces after method call registers an offense when space around multiple method call operator does not register an offense if no space before `::` operator with inheritance when multi line method call does not register an offense when no space after the `::` autocorrects offense when space before method call registers an offense when space before method call safe navigation operator autocorrects offense when space before first method call operator autocorrects offense when space before method call autocorrects offense when space around multiple method call operator autocorrects offense when space after method call registers an offense when spaces before method call autocorrects offense when spaces around method call registers an offense when spaces around method call registers an offense when space before last method call operator does not register an offense when no space around any `.` operators registers an offense when space before first method call operator autocorrects offense when space around intermediate method call operator registers an offense when space after method call autocorrects offense when spaces before method call autocorrects offense when spaces after method call does not register an offense when no space around method call autocorrects offense when space before last method call operator registers an offense when space around intermediate method call operator registers an offense when space before method call registers an offense when space after last method call operator registers an offense when space around multiple method call operator autocorrects offense when space after first method call operator registers an offense when spaces after method call registers an offense when space after first method call operator autocorrects offense when space after last method call operator when multi line method call autocorrects offense when space before method call registers an offense when space before method call autocorrects offense when space before method call in suffix chaining does not register an offense when no space after the `&.` registers an offense when space before method call in suffix chaining dot operator autocorrects offense when spaces after `Proc#call` shorthand call registers an offense when space around multiple method call operator autocorrects offense when space before last method call operator autocorrects offense when space before first method call operator registers an offense when space before method call registers an offense when spaces around method call autocorrects offense when space after method call autocorrects offense when spaces after method call autocorrects offense when space after first method call operator registers an offense when space around intermediate method call operator autocorrects offense when space around multiple method call operator registers an offense when space before last method call operator autocorrects offense when space after last method call operator registers an offense when space after method call autocorrects offense when spaces around method call registers an offense when space after last method call operator autocorrects offense when space around intermediate method call operator registers an offense when spaces after method call registers an offense when space after first method call operator autocorrects offense when space before method call does not register an offense when no space around method call does not register an offense when no space around any `.` operators registers an offense when spaces after `Proc#call` shorthand call autocorrects offense when spaces before method call registers an offense when space before first method call operator registers an offense when spaces before method call when multi line method call autocorrects offense when space before method call autocorrects offense when space before method call in suffix chaining registers an offense when space before method call does not register an offense when no space after the `.` registers an offense when space before method call in suffix chaining when there is a space between `.` operator and a comment registers an offense when there is a space before `.` does not register an offense when there is not a space before `.` RuboCop::Cop::Migration::DepartmentName when a disable comment contains an unexpected character for department name accepts when todo/enable comments have cop names without departments registers offenses and corrects when there is space around `:` registers offenses and corrects registers offenses and corrects when using a legacy cop name when a disable comment has cop names with departments accepts when an unexpected disable comment format does not register an offense when a disable comment contains a plain comment accepts RuboCop::StringInterpreter .interpret handles unicode handles octal handles extended unicode handles hex behaves like simple escape handles \\f behaves like simple escape handles \\n behaves like simple escape handles \\s behaves like simple escape handles \\n behaves like simple escape handles \\r behaves like simple escape handles \\b behaves like simple escape handles \\v behaves like simple escape handles \\a behaves like simple escape handles \\e behaves like simple escape handles \\t RuboCop::Cop::Lint::DuplicateMethods registers an offense for duplicate attr_writer in dynamic class doesn't register an offense for non-duplicate alias in module handles class_eval with implicit receiver accepts for attr_reader and setter in class_eval block registers an offense for a duplicate instance method in separate class blocks doesn't register offense for non-duplicate class methods in dynamic module doesn't register an offense for non-duplicate method in dynamic class registers an offense for a duplicate class method in separate dynamic module blocks registers an offense for duplicate alias in class registers an offense for duplicate alias_method in module registers offense for a duplicate instance method in separate files registers an offense for duplicate alias_method in dynamic module doesn't register offense for non-duplicate class methods in dynamic class registers an offense for duplicate class methods with named receiver in class understands class << self registers an offense for duplicate attr_reader in class accepts for non-duplicate alias_method in module registers an offense when class << exp is used (PENDING: No reason given) registers an offense for duplicate protected methods in dynamic module registers offenses for duplicate attr_accessor in module registers an offense for duplicate protected methods in class_eval block understands nested modules accepts for non-duplicate alias_method in class recognizes difference between instance and class methods in dynamic class understands nested modules recognizes difference between instance and class methods in dynamic module doesn't register an offense for non-duplicate alias in class_eval block understands class << self registers an offense for a duplicate instance method in separate dynamic module blocks registers an offense for duplicate protected methods in module doesn't register an offense for non-duplicate method in class recognizes difference between instance and class methods in class_eval block doesn't register an offense for non-duplicate method in class_eval block registers offenses for duplicate attr_accessor in dynamic class doesn't register an offense for alias for gvar in class_eval block registers an offense when class << exp is used (PENDING: No reason given) registers an offense for duplicate method in dynamic class registers an offense for duplicate alias_method in dynamic class registers an offense for duplicate attr in dynamic class registers an offense for duplicate method in class_eval block registers offense for a duplicate instance method in separate files registers an offense for duplicate private methods in dynamic class registers an offense for duplicate private methods in class registers an offense for a duplicate instance method in separate class_eval block blocks registers an offense for duplicate attr in class_eval block understands class << A registers an offense for duplicate class methods in dynamic class registers an offense for a duplicate class method in separate class blocks doesn't register an offense for non-duplicate alias in class accepts for non-duplicate alias_method in class_eval block registers an offense for duplicate protected methods in dynamic class registers an offense for duplicate class methods with `<<` and named receiver in module accepts for attr_reader and setter in class accepts for non-duplicate alias_method in dynamic class registers an offense for duplicate class methods in module registers an offense for duplicate class methods with `self` and named receiver in class understands nested modules accepts for attr_writer and getter in module ignores method definitions in RSpec `describe` blocks registers an offense for duplicate private methods in class_eval block registers an offense for duplicate methods at top level registers an offense for duplicate attr_reader in module registers an offense for duplicate attr in dynamic module registers offense for a duplicate instance method in separate files registers an offense for duplicate attr in module doesn't register an offense for alias for gvar in dynamic class understands nested modules registers an offense for duplicate method in dynamic module registers 2 offenses for pair of duplicate methods in dynamic class registers an offense for duplicate class methods with `self` and named receiver in module registers 2 offenses for pair of duplicate methods in module registers an offense for a duplicate class method in separate class_eval block blocks doesn't register offense for non-duplicate class methods in module registers an offense for duplicate class methods with `<<` and named receiver in class doesn't register an offense for non-duplicate method in dynamic module registers offenses for duplicate attr_accessor in dynamic module registers offenses for duplicate attr_accessor in class_eval block recognizes difference between instance and class methods in module accepts for attr_reader and setter in module accepts for attr_writer and getter in dynamic module registers an offense for a duplicate class method in separate module blocks ignores Class.new blocks which are assigned to local variables registers an offense for duplicate method in module accepts for attr_reader and setter in dynamic module registers an offense for a duplicate instance method in separate dynamic class blocks registers an offense for duplicate private methods in dynamic module doesn't register an offense for alias for gvar in class doesn't register an offense for non-duplicate method in module registers an offense for duplicate class methods in dynamic module registers an offense for duplicate private self methods in class registers an offense for duplicate private self methods in dynamic module registers an offense for a duplicate instance method in separate module blocks registers an offense for duplicate attr in class doesn't register an offense for different private methods in class doesn't register an offense for alias for gvar in module registers an offense for duplicate protected methods in class accepts for attr_reader and setter in dynamic class registers an offense for duplicate private self methods in class_eval block registers offenses for duplicate assignable attr in module registers offense for a duplicate instance method in separate files registers an offense for duplicate alias in module doesn't register offense for non-duplicate class methods in class_eval block registers an offense for duplicate attr_writer in class_eval block understands class << self registers an offense when class << exp is used (PENDING: No reason given) doesn't register an offense for different private methods in dynamic module registers an offense for duplicate class methods in class_eval block doesn't register an offense for different private methods in class_eval block registers an offense for duplicate method in class doesn't register offense for non-duplicate class methods in class registers an offense for duplicate alias_method in class_eval block doesn't register an offense for non-duplicate alias in dynamic class registers offense for a duplicate instance method in separate files accepts for non-duplicate alias_method in dynamic module registers an offense for duplicate private self methods in dynamic class registers an offense for duplicate attr_writer in module understands nested modules doesn't register an offense for different private methods in module registers an offense for duplicate attr_writer in dynamic module registers offenses for duplicate attr_accessor in class registers an offense for duplicate private methods in module registers 2 offenses for pair of duplicate methods in class_eval block recognizes difference between instance and class methods in class registers an offense for duplicate class methods in class registers offenses for duplicate assignable attr in dynamic class understands class << self registers an offense for duplicate alias in dynamic class registers 2 offenses for pair of duplicate methods in class doesn't register an offense for different private methods in dynamic class accepts for attr_writer and getter in class registers an offense when class << exp is used (PENDING: No reason given) registers an offense for duplicate private self methods in module accepts for attr_writer and getter in dynamic class registers offenses for duplicate assignable attr in dynamic module doesn't register an offense for alias for gvar in dynamic module registers an offense when class << exp is used (PENDING: No reason given) registers 2 offenses for pair of duplicate methods in dynamic module registers an offense for duplicate alias in class_eval block registers an offense for duplicate class methods with named receiver in module registers an offense for duplicate alias_method in class registers an offense for a duplicate class method in separate dynamic class blocks understands class << self registers an offense for duplicate attr_reader in class_eval block registers an offense for duplicate attr_writer in class accepts for attr_writer and getter in class_eval block registers an offense for duplicate alias in dynamic module doesn't register an offense for non-duplicate alias in dynamic module registers offenses for duplicate assignable attr in class registers offenses for duplicate assignable attr in class_eval block registers an offense for duplicate attr_reader in dynamic module registers an offense for duplicate attr_reader in dynamic class when path is in the project root adds a message with relative path when path is not in the project root adds a message with absolute path RuboCop::Cop::Naming::MethodParameterName does not register offense for valid keyword parameters registers offense when parameter ends in number registers offense when parameter contains uppercase characters registers offense for offensive default parameter registers offense for offensive keyword parameters does not register for method without parameters does not register offense for empty kwrestarg does not register offense for valid parameter names on self.method can register multiple offenses in one method definition does not register offense for valid default parameters registers offense when parameter is less than minimum length does not register offense for empty restarg does not register offense for valid parameter names registers offense when parameter ends in number on class method with AllowedNames accepts specified block param names accepts param names prefixed with underscore accepts underscore param names registers unlisted offensive names with ForbiddenNames accepts parameter that uses a forbidden name's letters registers offense for parameter listed as forbidden when using argument forwarding does not register an offense with AllowNamesEndingInNumbers accept parameters that end in numbers RuboCop::Cop::Naming::BlockParameterName does not register for block without parameters registers offense when param ends in number registers offense when param is less than minimum length registers offense when param contains uppercase characters does not register offense for valid parameter names does not register for brace block without parameters can register multiple offenses in one block with ForbiddenNames registers offense for param listed as forbidden accepts param that uses a forbidden name's letters with AllowedNames accepts specified block param names registers unlisted offensive names with AllowNamesEndingInNumbers accept params that end in numbers RuboCop::Cop::Lint::Debugger reports an offense for a byebug call does not report an offense for a debugger method reports an offense for a binding.pry with Kernel call does not report an offense for a non-pry binding reports an offense for a remote_byebug call reports an offense for a pry_remote binding call reports an offense for a byebug with an argument call does not report an offense for a remote_pry in comments does not report an offense for a console in comments does not report an offense for a pry method does not report an offense for a debugger in comments does not report an offense for a pry_remote method does not report an offense for a pry_remote in comments does not report an offense for a save_screenshot in comments reports an offense for a debugger call reports an offense for a binding.irb with Kernel call does not report an offense for a save_and_open_page method does not report an offense for a save_and_open_screenshot in comments reports an offense for a debugger with ::Kernel call does not report an offense for a remote_pry method reports an offense for a web console binding call does not report an offense for a irb method does not report an offense for a remote_byebug in comments reports an offense for a pry binding with an argument call reports an offense for a pry binding call reports an offense for a remote_pry binding call does not report an offense for a remote_byebug method does not report an offense for a pry in comments reports an offense for a pry_remote binding with an argument call reports an offense for a Pry.rescue call reports an offense for a irb binding call does not report an offense for a byebug in comments does not report an offense for a save_and_open_page in comments reports an offense for a remote_pry binding with an argument call does not report an offense for a save_screenshot method does not report an offense for a console method does not report an offense for a save_and_open_screenshot method does not report an offense for a byebug method does not report an offense for save_and_open_page with Kernel does not report an offense for a irb in comments reports an offense for a debugger with Kernel call reports an offense for a debugger with an argument call with capybara debug method call reports an offense for save_and_open_screenshot reports an offense for save_screenshot reports an offense for save_and_open_page with an argument reports an offense for save_and_open_screenshot reports an offense for save_and_open_page reports an offense for save_screenshot RuboCop::Cop::Security::MarshalLoad registers an offense for using Marshal.restore registers an offense for using Marshal.load allows using dangerous Marshal methods for deep cloning does not register an offense Marshal methods under another namespace does not register an offense for Marshal.dump RuboCop::Cop::Style::DocumentationMethod when declaring methods outside a class when declaring methods for class instance with documentation comment does not register an offense does not register an offense with `end` on the same line when method is private does not register an offense with inline `private` and `end` does not register an offense does not register an offense with `end` on the same line does not register an offense with inline `private` when required for non-public methods registers an offense registers an offense with inline `private` registers an offense with inline `private` and `end` registers an offense with `end` on the same line with both public and private methods when required for non-public methods registers an offense when the public method has no documentation registers an offense when the public method has documentation does not register an offense without documentation comment registers an offense with `end` on the same line registers an offense with both public and private methods when the public method has documentation does not register an offense when the public method has no documentation registers an offense when required for non-public methods registers an offense when declaring methods in a module with both public and private methods when required for non-public methods registers an offense when the public method has documentation does not register an offense when the public method has no documentation registers an offense with documentation comment when method is module_function does not register an offense for inline def does not register an offense for separate def when method is public does not register an offense does not register an offense with `end` on the same line without documentation comment when method is module_function registers an offense for separate def registers an offense for inline def when method is public registers an offense with `end` on the same line registers an offense when method is private does not register an offense with `end` on the same line does not register an offense with inline `private` and `end` does not register an offense does not register an offense with inline `private` when required for non-public methods registers an offense with inline `private` and `end` registers an offense registers an offense with `end` on the same line registers an offense with inline `private` when declaring methods in a class without documentation comment wheh method is public registers an offense with `end` on the same line registers an offense when method is private does not register an offense with inline `private` does not register an offense does not register an offense with `end` on the same line does not register an offense with inline `private` and `end` when required for non-public methods registers an offense with inline `private` and `end` registers an offense registers an offense with inline `private` registers an offense with `end` on the same line with annotation comment registers an offense with documentation comment when method is public does not register an offense does not register an offense with `end` on the same line with directive comment registers an offense with both public and private methods when the public method has no documentation registers an offense when required for non-public methods registers an offense when the public method has documentation does not register an offense with documentation comment does not register an offense does not register an offense with `end` on the same line without documentation comment when method is protected does not register an offense does not register an offense with inline `protected` when required for non-public methods registers an offense with inline `protected` registers an offense when method is private does not register an offense does not register an offense with `end` on the same line does not register an offense with inline `private` and `end` does not register an offense with inline `private` when required for non-public methods registers an offense registers an offense with inline `private` and `end` registers an offense with `end` on the same line registers an offense with inline `private` when method is public registers an offense registers an offense with `end` on the same line RuboCop::Cop::Style::RedundantParentheses accepts parentheses inside an irange registers an offense when there is space around the parentheses accepts parentheses in yield call with hash registers an offense for parens around a literal in array and following newline accepts parentheses when enclosed in parentheses at `until-post` registers an offense for parens around constant ternary condition registers an offense for parens around an integer exponentiation base registers an offense for parens around a positive exponent accepts parentheses around an irange registers an offense for parens around a literal hash value and following newline accepts parentheses around operator keywords accepts parentheses around an erange accepts parentheses when enclosed in parentheses at `while-post` registers an offense for parens around last expressions in block body registers an offense for parens around a variable after semicolon registers an offense for parens around a block body accepts parentheses when they touch the following keyword accepts parentheses inside an erange registers an offense for parens around a float exponentiation base registers an offense for parens around method body registers an offense for parens around last expressions in method body registers an offense for parens around a literal hash value registers an offense for parens around a literal in array registers an offense for parens around a negative exponent accepts parentheses around the error passed to rescue accepts parentheses around a method call with unparenthesized arguments accepts parentheses when they touch the preceding keyword accepts parentheses around a constant passed to when accepts parentheses in super call with hash behaves like keyword with return value behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a keyword behaves like keyword with return value behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a variable behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a constant behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a variable behaves like redundant registers an offense for parentheses around a method call when the first argument in a method call begins with a hash literal registers an offense if the argument list is parenthesized accepts parentheses if the argument list is not parenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like plausible accepts parentheses when arguments are unparenthesized behaves like keyword with arguments behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a literal behaves like keyword with return value behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a method call behaves like redundant registers an offense for parentheses around a method call when a non-parenthesized call has an arg and a block accepts parens around the arg behaves like redundant registers an offense for parentheses around an unary operation behaves like redundant registers an offense for parentheses around an unary operation behaves like redundant registers an offense for parentheses around a literal behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a method call when a hash literal is the second argument in a method call registers an offense behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like keyword with arguments behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around a keyword behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a keyword behaves like redundant registers an offense for parentheses around an unary operation behaves like redundant registers an offense for parentheses around a variable behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around an unary operation behaves like redundant registers an offense for parentheses around a method call behaves like plausible accepts parentheses when arguments are unparenthesized behaves like redundant registers an offense for parentheses around a literal RuboCop::YAMLDuplicationChecker when yaml has duplicated keys in the top level calls block >= Ruby 2.5 calls block with keys when yaml does not have any duplication does not call block when yaml has duplicated keys in the second level calls block >= Ruby 2.5 calls block with keys RuboCop::Cop::Lint::LiteralInInterpolation accepts interpolation of erange where endpoints are not literals handles double quotes in single quotes when auto-correction accepts interpolation of xstr accepts interpolation of irange where endpoints are not literals accepts empty interpolation handles backslach in double quotes when auto-correction handles backslach in single quotes when auto-correction handles nested interpolations when auto-correction behaves like literal interpolation removes interpolation around multiple 1.2e-3 removes interpolation around 1.2e-3 when there is more text registers an offense only for final 1.2e-3 in interpolation registers an offense for 1.2e-3 in interpolation and removes interpolation around it when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like non-special string literal interpolation registers an offense for 'foo' and removes the interpolation and quotes around 'foo' behaves like special keywords registers an offense and autocorrects interpolation after __LINE__ accepts strings like __LINE__ behaves like literal interpolation removes interpolation around multiple -1 registers an offense only for final -1 in interpolation registers an offense for -1 in interpolation and removes interpolation around it removes interpolation around -1 when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around 1 when there is more text removes interpolation around multiple 1 registers an offense for 1 in interpolation and removes interpolation around it registers an offense only for final 1 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final %i[s1 s2] in interpolation removes interpolation around multiple %i[s1 s2] registers an offense for %i[s1 s2] in interpolation and removes interpolation around it removes interpolation around %i[s1 s2] when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like special keywords registers an offense and autocorrects interpolation after __ENCODING__ accepts strings like __ENCODING__ behaves like literal interpolation removes interpolation around multiple %w[v1] registers an offense only for final %w[v1] in interpolation registers an offense for %w[v1] in interpolation and removes interpolation around it removes interpolation around %w[v1] when there is more text when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for %I[s1 s2] in interpolation and removes interpolation around it removes interpolation around multiple %I[s1 s2] registers an offense only for final %I[s1 s2] in interpolation removes interpolation around %I[s1 s2] when there is more text when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final :"symbol" in interpolation removes interpolation around :"symbol" when there is more text removes interpolation around multiple :"symbol" registers an offense for :"symbol" in interpolation and removes interpolation around it when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 0o377 in interpolation and removes interpolation around it removes interpolation around 0o377 when there is more text removes interpolation around multiple 0o377 registers an offense only for final 0o377 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 1_123 in interpolation and removes interpolation around it removes interpolation around multiple 1_123 removes interpolation around 1_123 when there is more text registers an offense only for final 1_123 in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around %w[v1 v2] when there is more text registers an offense for %w[v1 v2] in interpolation and removes interpolation around it removes interpolation around multiple %w[v1 v2] registers an offense only for final %w[v1 v2] in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple 1..2 registers an offense for 1..2 in interpolation and removes interpolation around it removes interpolation around 1..2 when there is more text registers an offense only for final 1..2 in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple 2.0 registers an offense for 2.0 in interpolation and removes interpolation around it registers an offense only for final 2.0 in interpolation removes interpolation around 2.0 when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for 1...2 in interpolation and removes interpolation around it registers an offense only for final 1...2 in interpolation removes interpolation around 1...2 when there is more text removes interpolation around multiple 1...2 when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like non-special string literal interpolation registers an offense for "foo" and removes the interpolation and quotes around "foo" behaves like literal interpolation registers an offense for ["a", "b"] in interpolation and removes interpolation around it removes interpolation around ["a", "b"] when there is more text removes interpolation around multiple ["a", "b"] registers an offense only for final ["a", "b"] in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around {"a" => "b"} when there is more text registers an offense only for final {"a" => "b"} in interpolation registers an offense for {"a" => "b"} in interpolation and removes interpolation around it removes interpolation around multiple {"a" => "b"} when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around :symbol when there is more text registers an offense only for final :symbol in interpolation removes interpolation around multiple :symbol registers an offense for :symbol in interpolation and removes interpolation around it when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple 0xaabb registers an offense for 0xaabb in interpolation and removes interpolation around it registers an offense only for final 0xaabb in interpolation removes interpolation around 0xaabb when there is more text when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for false in interpolation and removes interpolation around it removes interpolation around multiple false removes interpolation around false when there is more text registers an offense only for final false in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like special keywords registers an offense and autocorrects interpolation after __FILE__ accepts strings like __FILE__ behaves like literal interpolation registers an offense for %w[] in interpolation and removes interpolation around it registers an offense only for final %w[] in interpolation removes interpolation around %w[] when there is more text removes interpolation around multiple %w[] when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around multiple [] registers an offense for [] in interpolation and removes interpolation around it removes interpolation around [] when there is more text registers an offense only for final [] in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation registers an offense only for final nil in interpolation removes interpolation around nil when there is more text registers an offense for nil in interpolation and removes interpolation around it removes interpolation around multiple nil when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like special keywords accepts strings like __END__ registers an offense and autocorrects interpolation after __END__ behaves like literal interpolation registers an offense for 123_456_789_123_456_789 in interpolation and removes interpolation around it removes interpolation around 123_456_789_123_456_789 when there is more text removes interpolation around multiple 123_456_789_123_456_789 registers an offense only for final 123_456_789_123_456_789 in interpolation when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal behaves like literal interpolation registers an offense for %i[s1 s2] in interpolation and removes interpolation around it removes interpolation around %i[s1 s2] when there is more text registers an offense only for final %i[s1 s2] in interpolation removes interpolation around multiple %i[s1 s2] when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal behaves like literal interpolation removes interpolation around true when there is more text removes interpolation around multiple true registers an offense for true in interpolation and removes interpolation around it registers an offense only for final true in interpolation when there is non-literal and literal interpolation when literal interpolation is before non-literal only removes interpolation around literal when literal interpolation is after non-literal only removes interpolation around literal in string-like contexts removes interpolation in regular expressions removes interpolation in symbols removes interpolation in backticks behaves like literal interpolation registers an offense only for final %i[ s1 s2 ] in interpolation registers an offense for %i[ s1 s2 ] in interpolation and removes interpolation around it removes interpolation around multiple %i[ s1 s2 ] removes interpolation around %i[ s1 s2 ] when there is more text when there is non-literal and literal interpolation when literal interpolation is after non-literal only removes interpolation around literal when literal interpolation is before non-literal only removes interpolation around literal RuboCop::Cop::Layout::IndentationStyle when EnforcedStyle is spaces does not auto-correct a line with tab other than indentation accepts a line which begins with tab in a string registers offenses before __END__ but not after registers an offense for a line indented with mixed whitespace auto-corrects a line indented with multiple tabs auto-corrects a line indented with mixed whitespace registers an offense for a line indented with tab registers an offense for a line indented with multiple tabs auto-corrects a line indented with tab accepts a line with a tab between string literals accepts a line which begins with tab in a heredoc accepts a line which begins with tab in a multiline heredoc accepts a line with tab in a string auto-corrects a line with tab in a string indented with tab accepts a line with a tab other than indentation custom indentation width uses the configured number of spaces to replace a tab when EnforcedStyle is tabs accepts a line which begins with tab in a string accepts a line with tabs between string literals registers an offense for a line indented with multiple spaces accepts a line which begins with tab in a heredoc auto-corrects a line indented with fractional number ofindentation groups by rounding down registers offenses before __END__ but not after auto-corrects a line indented with multiple spaces registers an offense for a line indented with mixed whitespace registers an offense for a line indented with space does not auto-corrects a line with tab other than indentation accepts a line a tab other than indentation accepts a line which begins with tab in a multiline heredoc auto-corrects a line with tab in a string indented with space accepts a line with tab in a string auto-corrects a line indented with mixed whitespace auto-corrects a line indented with space custom indentation width uses the configured number of spaces to replace with a tab RuboCop::Formatter::TextUtil pluralize will pluralize quantities greater than 1 will pluralize -1 will not change 0 to no will not pluralize 1 will change 0 to no when configured will pluralize fractions will pluralize negative quantities less than -1 RuboCop::CLI -E/--extra-details shows extra details -V exits cleanly --only when a cop name is not specified displays how to use `--only` option when a namespace is given runs all enabled cops in that namespace when one cop is given runs just one cop displays correction candidate if an incorrect cop name is given exits with error if an incorrect cop name is passed exits with error if an empty string is given only checks syntax if Syntax is given accepts cop names from plugins exits with error if cop name Lint/RedundantCopDisableDirective is passed only checks syntax if Lint/Syntax is given exits with error if cop name RedundantCopDisableDirective is passed enables the given cop when specifying a pending cop when Style department is disabled does not show pending cop warning when Style department is enabled when specifying `NewCops: enable` in .rubocop.yml does not display a pending cop warning when specifying `NewCops: disable` in .rubocop.yml does not display a pending cop warning when specifying `NewCops: pending` in .rubocop.yml displays a pending cop warning when `VersionAdded` is not specified accepts cop names from plugins with a pending cop warning when using `--enable-pending-cops` command-line option does not display a pending cop warning when `VersionAdded` is specified accepts cop names from plugins with a pending cop warning when using `--disable-pending-cops` command-line option does not display a pending cop warning without using namespace runs just one cop when several cops are given runs the given cops and --lint runs the given cops plus all enabled lint cops when three namespaces are given runs all enabled cops in those namespaces -S/--display-style-guide shows style guide and reference entries shows reference entry shows style guide entry --parallel combined with AllCops:UseCache:false fails with an error message in combination with --ignore-parent-exclusion does ignore the exclusion in the parent directory configuration in combination with --force-default-config does not parse local configuration on Unix-like systems prints a message if --debug is specified does not print a message if --debug is not specified -d/--debug shows cop names shows config files -o/--out option redirects output to the specified file is applied to the previously specified formatter --version exits cleanly option is invalid suggests to use the --help flag --only-recognized-file-types when explicitly included includes the file given on the command line when not explicitly included does not include the file given on the command line but option is not given includes the file given on the command line -D/--display-cop-names shows cop names DisplayCopNames: false in .rubocop.yml shows cop names without --display-cop-names does not show cop names --no-display-cop-names does not show cop names --lint runs only lint cops --except when one cop is given without namespace disables the given cop when one cop plus one namespace are given runs all cops except the given when one name is given exits with error if Lint/Syntax is given exits with error if the cop name is incorrect exits with error if Syntax is given displays correction candidate if an incorrect cop name is given exits with error if an empty string is given when several cops are given disables the given cops including Lint/RedundantCopDisableDirective disables the given cops including Lint disables the given cops including RedundantCopDisableDirective when a cop name is not specified displays how to use `--except` option --force-exclusion when explicitly excluded excludes files specified in the configuration Exclude even if they are explicitly passed as arguments with already excluded by default excludes files excluded by default even if they are explicitly passed as arguments with --auto-correct-all and disabled offense succeeds when there is only a disabled offense --fail-level option fails when option is equal to the severity level fails when option is less than the severity level succeeds when option is greater than the severity level with --auto-correct-all succeeds when option is not given and all offenses are autocorrected fails when option is autocorrect and all offenses are autocorrected succeeds when option is refactor and all offenses are autocorrected fails when option is A and all offenses are autocorrected with --display-only-fail-level-offenses outputs offense message when fail-level is equal to the severity outputs offense message when fail-level is less than the severity doesn't output offense message when less than the fail-level with disabled line still checks unprinted offense if they're a redundant disable doesn't consider a unprinted offense to be a redundant disable -f/--format can be used multiple times builtin formatters when unknown format name is specified aborts with error message when emacs format is specified outputs with emacs format when json format is specified and offenses come from the cache and a message has binary encoding outputs JSON code without crashing when simple format is specified outputs with simple format when clang format is specified outputs with clang format when html format is specified and offenses come from the cache and a message has binary encoding outputs HTML code without crashing custom formatter when unknown class name is specified aborts with error message when a class name is specified uses the class as a formatter --stdin causes source code to be read from stdin requires a file path does not accept more than one file path detects CR at end of line prints corrected code to stdout if --auto-correct-all is used --list-target-files when there are no files prints nothing with -L prints nothing with --list-target-files when there are some files when there is an include and exclude prints the included files and not the excluded ones when there are no includes or excludes prints known ruby files --show-cops with no args prints all available cops and their description prints the current configuration prints all departments prints all cops in their right department listing with --force-default-config prioritizes default config with two cops given prints the current configuration with one cop given prints that cop and nothing else prints the current configuration with one of the cops misspelled skips the unknown cop RuboCop::Cop::Style::PerlBackrefs registers an offense for $1 registers an offense for $9 auto-corrects #$1 to #{Regexp.last_match(1)} RuboCop::Cop::Layout::BlockEndNewline registers an offense and corrects when multiline block end is not on its own line registers an offense and corrects when `}` of multiline block without processing is not on its own line accepts multiline blocks with newlines before the end registers an offense and corrects when multiline block } is not on its own line accepts a one-liner RuboCop::Cop::Layout::ArrayAlignment when aligned with first parameter does not indent heredoc strings in autocorrect accepts single line array accepts aligned array with fullwidth characters accepts aligned array keys does not auto-correct array within array with too little indentation accepts the first element being on a new row accepts several elements per line does not auto-correct array within array with too much indentation registers an offense and corrects misaligned array elements auto-corrects array if the first element being on a new row when aligned with fixed indentation accepts the first element being on a new row accepts several elements per line accepts aligned array with fullwidth characters does not auto-correct array within array with too much indentation accepts aligned array keys does not auto-correct array within array with too little indentation does not indent heredoc strings in autocorrect accepts single line array registers an offense and corrects misaligned array elements auto-corrects array if the first element being on a new row RuboCop::Cop::Naming::PredicateName without restricted prefixes accepts method name when corrected name is invalid identifier registers an offense when method name starts with "is" accepts method name that starts with unknown prefix registers an offense when method name starts with "has" with permitted predicate names accepts method name which is in permitted list without method definition macros registers an offense when using `define_method` accepts method name when corrected name is invalid identifier does not register any offenses when using an internal affair macro with method definition macros registers an offense when using an internal affair macro accepts method name when corrected name is invalid identifier registers an offense when using `define_method` with restricted prefixes registers an offense when method name starts with "is" accepts method name that is an assignment accepts method name that starts with unknown prefix accepts method name when corrected name is invalid identifier registers an offense when method name starts with "has" RuboCop::Cop::InternalAffairs::RedundantLocationArgument when location argument is not passed does not register an offense when location argument is passed when location argument does not equal to :expression does not register an offense when location argument is :expression removes default `location` when preceded by another keyword removes default `location` surrounded by other keywords registers an offense when there is a message argument registers an offense RuboCop::Cop::Style::BlockDelimiters Semantic style accepts a multi-line block with braces when chained accepts a single line block with {} if used in a logical or accepts a single line block with {} if used in an irange registers an offense for a multi-line block with braces if the return value is not used accepts a single line block with {} if used in an array accepts a single line block with {} if used in an if statement accepts a multi-line block with braces when passed to a known functional method accepts a single line block with {} if used in a logical and auto-corrects do-end to {} if it is a functional block registers an offense for a multi-line block with do-end if the return value is attribute-assigned accepts a multi-line block with braces if the return value is assigned auto-corrects do-end to {} with appropriate spacing allows {} if it is a known functional method accepts a multi-line functional block with do-end if it is a known procedural method registers an offense for a multi-line block with do-end if the return value is passed to a method registers an offense for a multi-line block with do-end if the return value is assigned auto-corrects do-end to {} if it is a functional block and does not change the meaning accepts a multi-line block with braces when passed to a method allows {} if it is a known procedural method accepts a multi-line block with do-end if it is the return value of its scope accepts a multi-line block with braces if it is the return value of its scope accepts a single line block with {} if used in an erange accepts a multi-line functional block with do-end if it is an ignored method with a procedural multi-line block auto-corrects { and } to do and end with appropriate spacing auto-corrects { and } to do and end with a procedural one-line block with AllowBracesOnProceduralOneLiners true accepts a single line procedural do-end block accepts a single line procedural block with braces with AllowBracesOnProceduralOneLiners false or unset registers an offense for a single line procedural block accepts a single line block with do-end if it is procedural always braces registers an offence for a multi-line block with do-end accepts a multi-line block that needs braces to be valid ruby registers an offense for multi-lined do-end blocks when combined with attribute assignment accepts a single line block with braces registers an offense for multi-line chained do-end blocks does not auto-correct do-end if {} would change the meaning accepts a multi-line functional block with do-end if it is an ignored method registers an offense for a single line block with do-end when there are braces around a multi-line block allows in the simple case allows when combined with attribute assignment allows when the block is being chained braces for chaining style allows do/end inside Hash[] accepts a multi-line functional block with {} if it is an ignored method registers an offense for multi-line chained do-end blocks accepts a multi-line block that needs braces to be valid ruby accepts a single line block with braces registers an offense for a single line block with do-end accepts a multi-line block with do-end allows chaining to } inside of Hash[] allows when :[] is chained disallows {} with no chain inside of Hash[] with safe navigation registers an offense for multi-line chained do-end blocks when there are braces around a multi-line block registers an offense when combined with attribute assignment allows when the block is being chained with attribute assignment registers an offense in the simple case allows when the block is being chained line count-based style does not auto-correct {} if do-end would change the meaning accepts a single line block with braces accepts a multi-line block that needs braces to be valid ruby accepts a multi-line block with do-end does not auto-correct do-end if {} would change the meaning registers an offense for a single line block with do-end auto-corrects do and end for single line blocks to { and } when there are braces around a multi-line block accepts a multi-line functional block with {} if it is an ignored method does not auto-correct {} if do-end would introduce a syntax error registers an offense in the simple case auto-corrects { and } to do and end accepts braces if do-end would change the meaning registers an offense when combined with attribute assignment registers an offense for braces if do-end would not change the meaning auto-corrects adjacent curly braces correctly can handle special method names such as []= and done? BracesRequiredMethods other methods allows braces auto-corrects { and } to do and end BracesRequiredMethods methods allows braces registers an offense with do RuboCop::Cop::Style::Encoding registers an offense for vim-style encoding comments registers an offense for encoding inserted by magic_encoding gem registers no offense when encoding is in the wrong place registers no offense when no encoding present registers an offense when encoding present on 2nd line after shebang registers an offense when encoding present and UTF-8 registers no offense when encoding present but not UTF-8 RuboCop::Cop::Layout::DotPosition Trailing dots style does not err on method call without a method name registers an offense for leading dot in multi-line call does not err on method call on same line does not err on method call with no dots accepts trailing dot in multi-line method call does not get confused by several lines of chained methods when using safe navigation operator registers an offense for correct + opposite accepts trailing dot in multi-line method call Leading dots style does not err on method call on same line registers an offense for correct + opposite accepts leading do in multi-line method call does not err on method call with no dots does not err on method call without a method name registers an offense for trailing dot in multi-line call when there is an intervening blank line does not register offense when using safe navigation operator accepts leading do in multi-line method call registers an offense for correct + opposite when there is an intervening line comment does not register offense RuboCop::Cop::Style::CharacterLiteral accepts literals like ?\C-\M-d registers an offense for literals like \n auto-corrects ?' to "'" accepts ? in a %w literal registers an offense for character literals RuboCop::Cop::Style::AndOr when style is always auto-corrects "or" with || and doesn't add extra parentheses also warns on while (and) autocorrects "or" with an assignment on the right also warns on non short-circuit (or) warns on short-circuit (and) auto-corrects "or" with || in method calls (3) also warns on until (or) auto-corrects "and" with && and doesn't add extra parentheses also warns on non short-circuit (and) also warns on non short-circuit (or) (unless) auto-corrects "and" with && in method calls warns on short-circuit (or) auto-corrects "and" with && in method calls (4) registers an offense for "or" autocorrects "and" with an Enumerable accessor on either side auto-corrects "and" with && in method calls (2) auto-corrects "or" with || in method calls auto-corrects "and" with && and adds parentheses to expr autocorrects "or" inside def auto-corrects "or" with || in method calls (2) also warns on while (or) also warns on until (and) autocorrects "or" with an assignment on the left auto-corrects "or" with || in method calls (4) autocorrects "and" inside def auto-corrects "and" with && in method calls (3) also warns on non short-circuit (and) (unless) registers an offense for "and" auto-corrects "or" with || and adds parentheses to expr within a nested begin node autocorrects "and" with && and adds parens with !obj.method arg on left autocorrects "and" with && and adds parens with `not` expression on left autocorrects "and" with && and adds parens with one predicate method without space on right and another method autocorrects "and" with && and adds parens autocorrects "or" with || and adds parens with !obj.method arg on right autocorrects "and" with && and adds parens with two predicate methods with args without spaces on right autocorrects "or" with || and adds parens autocorrects "and" with && and adds parens within a nested begin node with one child only autocorrects "and" with && and adds parens with obj.method= arg on left autocorrects "and" with && and adds parens with a file which contains __FILE__ autocorrects "or" with || with obj.method = arg on left autocorrects "and" with && and adds parens when left hand side is a comparison method autocorrects "and" with && and adds parens with predicate method with arg without space on right autocorrects "and" with && and adds parens autocorrects "or" with || and adds parens with !variable on left doesn't crash and burn with `not` expression on right autocorrects "and" with && and adds parens when style is conditionals accepts "or" in while body registers an offense for "or" in if condition registers an offense for "and" in if condition accepts "or" in if body accepts "or" outside of conditional accepts "or" in post-while body accepts "and" in while body accepts "or" in post-until body registers an offense for "and" in until condition registers an offense for "or" in until condition registers an offense for "and" in while condition registers an offense for "and" in post-while condition accepts "and" in until body accepts "and" in post-while body accepts && outside of conditional accepts "and" in post-until body accepts "and" outside of conditional accepts || outside of conditional registers an offense for "or" in post-while condition accepts "or" in until body registers an offense for "or" in while condition accepts "and" in if body accepts || inside of conditional accepts && inside of conditional registers an offense for "and" in post-until condition registers an offense for "or" in post-until condition RuboCop::Cop::Lint::RescueType accepts rescuing nothing accepts rescue modifier accepts rescuing a single exception accepts rescuing nothing within a method definition behaves like offenses def rescue rescuing from :symbol registers an offense and auto-corrects begin rescue ensure rescuing from :symbol registers an offense and auto-corrects def rescue ensure rescuing from :symbol registers an offense and auto-corrects begin rescue rescuing from :symbol before another exception registers an offense and auto-corrects rescuing from :symbol registers an offense and auto-corrects rescuing from :symbol after another exception registers an offense and auto-corrects behaves like offenses def rescue ensure rescuing from "#{string}" registers an offense and auto-corrects def rescue rescuing from "#{string}" registers an offense and auto-corrects begin rescue ensure rescuing from "#{string}" registers an offense and auto-corrects begin rescue rescuing from "#{string}" registers an offense and auto-corrects rescuing from "#{string}" after another exception registers an offense and auto-corrects rescuing from "#{string}" before another exception registers an offense and auto-corrects behaves like offenses begin rescue ensure rescuing from nil registers an offense and auto-corrects def rescue rescuing from nil registers an offense and auto-corrects def rescue ensure rescuing from nil registers an offense and auto-corrects begin rescue rescuing from nil registers an offense and auto-corrects rescuing from nil after another exception registers an offense and auto-corrects rescuing from nil before another exception registers an offense and auto-corrects behaves like offenses begin rescue ensure rescuing from 0.0 registers an offense and auto-corrects begin rescue rescuing from 0.0 registers an offense and auto-corrects rescuing from 0.0 before another exception registers an offense and auto-corrects rescuing from 0.0 after another exception registers an offense and auto-corrects def rescue ensure rescuing from 0.0 registers an offense and auto-corrects def rescue rescuing from 0.0 registers an offense and auto-corrects behaves like offenses def rescue ensure rescuing from {} registers an offense and auto-corrects begin rescue ensure rescuing from {} registers an offense and auto-corrects begin rescue rescuing from {} registers an offense and auto-corrects rescuing from {} before another exception registers an offense and auto-corrects rescuing from {} after another exception registers an offense and auto-corrects def rescue rescuing from {} registers an offense and auto-corrects behaves like offenses def rescue rescuing from [] registers an offense and auto-corrects def rescue ensure rescuing from [] registers an offense and auto-corrects begin rescue rescuing from [] registers an offense and auto-corrects rescuing from [] before another exception registers an offense and auto-corrects rescuing from [] after another exception registers an offense and auto-corrects begin rescue ensure rescuing from [] registers an offense and auto-corrects behaves like offenses begin rescue ensure rescuing from 'string' registers an offense and auto-corrects def rescue rescuing from 'string' registers an offense and auto-corrects begin rescue rescuing from 'string' registers an offense and auto-corrects rescuing from 'string' after another exception registers an offense and auto-corrects rescuing from 'string' before another exception registers an offense and auto-corrects def rescue ensure rescuing from 'string' registers an offense and auto-corrects behaves like offenses begin rescue ensure rescuing from 0 registers an offense and auto-corrects def rescue rescuing from 0 registers an offense and auto-corrects begin rescue rescuing from 0 registers an offense and auto-corrects rescuing from 0 before another exception registers an offense and auto-corrects rescuing from 0 after another exception registers an offense and auto-corrects def rescue ensure rescuing from 0 registers an offense and auto-corrects RuboCop::Cop::Style::InverseMethods allows comparing camel case constants on the right registers an offense for !foo.none? registers an offense for !(foo =~ bar) registers an offense for !foo.include? registers an offense for not (foo < bar) registers an offense for !foo.exclude? registers an offense for !(foo > bar) registers an offense for !foo.even? registers an offense for !(foo !~ bar) registers an offense for !(foo != bar) registers an offense for !(foo < bar) registers an offense for comparing snake case constants on the left registers an offense for !foo.any? registers an offense for not (foo =~ bar) registers an offense for not (foo !~ bar) registers an offense for !foo.odd? registers an offense for calling !.any? inside parens allows an inverse method with a block when double negation is used registers an offense for !foo.blank? registers an offense for !(foo == bar) allows a method call without a not registers an offense for comparing snake case constants on the right registers an offense for calling !.none? with a block registers an offense for not (foo != bar) allows an inverse method in a block with next registers an offense for not (foo == bar) registers an offense for not (foo > bar) registers an offense for calling !.none? with a symbol proc registers an offense for !foo.present? allows comparing camel case constants on the left allows an inverse method when double negation is used behaves like all variable types registers an offense for calling not @foo.none? registers an offense for calling !@foo.none? behaves like all variable types registers an offense for calling not FOO.none? registers an offense for calling !FOO.none? behaves like all variable types registers an offense for calling not foo.bar.none? registers an offense for calling !foo.bar.none? behaves like all variable types registers an offense for calling !foo.none? registers an offense for calling not foo.none? behaves like all variable types registers an offense for calling !@@foo.none? registers an offense for calling not @@foo.none? behaves like all variable types registers an offense for calling not $foo.none? registers an offense for calling !$foo.none? behaves like all variable types registers an offense for calling not foo["bar"].none? registers an offense for calling !foo["bar"].none? behaves like all variable types registers an offense for calling !FOO::BAR.none? registers an offense for calling not FOO::BAR.none? inverse blocks corrects an inverted method call registers an offense for foo.select { |e| !e } registers an offense for foo.select! { |e| !e } registers an offense for an inverted equality block registers an offense for an inverted equality block registers an offense for a multiline method call where the last method is inverted registers an offense for an inverted equality block corrects an inverted method call when using `BasicObject# !` corrects a complex inverted method call registers a single offense for nested inverse method calls corrects an inverted do end method call corrects an inverted do end method call registers a single offense for nested inverse method calls corrects an inverted method call when using `BasicObject# !` corrects a complex inverted method call registers an offense for an inverted equality block corrects an inverted method call corrects an inverted do end method call corrects an inverted method call registers an offense for foo.reject { |e| !e } registers an offense for a multiline method call where the last method is inverted registers an offense for a multiline inverted equality block corrects a complex inverted method call corrects an inverted method call registers an offense for a multiline method call where the last method is inverted registers an offense for a multiline method call where the last method is inverted corrects an inverted do end method call corrects a complex inverted method call registers an offense for foo.reject! { |e| !e } corrects an inverted method call when using `BasicObject# !` registers a single offense for nested inverse method calls corrects an inverted method call when using `BasicObject# !` registers an offense for a multiline inverted equality block corrects an inverted method call when using `BasicObject#!` registers an offense for a multiline inverted equality block corrects an inverted method call when using `BasicObject#!` corrects an inverted method call when using `BasicObject#!` corrects an inverted method call when using `BasicObject#!` registers an offense for a multiline inverted equality block registers a single offense for nested inverse method calls RuboCop::Cop::Lint::RandOne behaves like no offense rand does not register an offense behaves like no offense Kernel.rand(-1..1) does not register an offense behaves like offenses ::Kernel.rand(1) registers an offense behaves like offenses Kernel.rand(-1) registers an offense behaves like offenses Kernel.rand 1.0 registers an offense behaves like offenses rand 1 registers an offense behaves like offenses Kernel.rand(1) registers an offense behaves like offenses rand(1.0) registers an offense behaves like offenses rand(-1.0) registers an offense behaves like no offense ::Kernel.rand does not register an offense behaves like offenses Kernel.rand(-1.0) registers an offense behaves like offenses rand(-1) registers an offense behaves like no offense Kernel.rand does not register an offense behaves like no offense Kernel.rand 2 does not register an offense behaves like no offense rand(-1..1) does not register an offense behaves like no offense rand(2) does not register an offense RuboCop::Cop::Style::MultilineIfThen does not raise an error for an implicit match if does not get confused by a nested postfix unless accepts table style if/then/elsif/ends does not get confused by empty elsif branch registers an offense for then in multiline elsif does not get confused by a then in a when does not raise an error for an implicit match unless registers an offense for then in multiline unless does not get confused by a commented-out then registers an offense for then in multiline if does not get confused by a postfix unless RuboCop::Cop::Layout::EmptyLineAfterMagicComment registers an offense for code that immediately follows comment registers an offense for documentation immediately following comment accepts a source file with only a magic comment registers an offense when multiple magic comments without empty line accepts an empty source file accepts code that separates the comment from the code with a newline RuboCop::Cop::Naming::ConstantName registers an offense for snake case in const name does not check names if rhs is a `Class.new` registers an offense for non-POSIX upper case in const name does not check names if rhs is a `Class.new` with conditional assign registers offenses for camel case in multiple const assignment registers 1 offense if rhs is offending const assignment does not check names if rhs is a `Struct.new` registers an offense for camel case in const namewhen using frozen object assignment does not check if rhs is another constant checks qualified const names allows screaming snake case in const name does not check names if rhs is a `Struct.new` with conditional assign registers an offense for camel case in const namewhen using frozen range assignment does not check names if rhs is a method call with block does not check names if rhs is a method call allows screaming snake case with POSIX upper case characters allows screaming snake case in multiple const assignment registers an offense for camel case in const name does not check names if rhs is a method call with conditional assign does not check if rhs is a non-offensive const assignment when a rhs is a conditional expression when conditional branches contain a value other than a constant does not check names when conditional branches contain only constants does not check names when conditional branches contain only string values registers an offense RuboCop::Cop::Layout::LeadingEmptyLines allows an empty input registers an offense and corrects a new line before a class allows blank lines without any comments or code accepts not having a blank line before a comment registers an offense and corrects a new line before a comment accepts not having a blank line before code registers an offense and corrects a new line before code registers an offense and corrects multiple new lines before a class accepts not having a blank line before a class auto-correct in collaboration does not invoke conflicts with other cops RuboCop::Cop::Style::NumericPredicate when configured to enforce numeric comparison methods registers an offense for checking if a number is zero registers an offense for checking if a number is negative registers an offense for checking if a number is positive allows checking if a number is not zero when there are ignored methods in block not ignored method registers an offense for checking if a number is positive registers an offense for checking if a number is negative ignored method allows checking if a number is negative allows checking if a number is positive simple method call `EnforcedStyle` is `comparison` allows checking if a number is zero `EnforcedStyle` is `predicate` allows checking if a number is zero in argument not ignored method registers an offense for checking if a number is positive registers an offense for checking if a number is negative ignored method allows checking if a number is positive allows checking if a number is negative when configured to enforce numeric predicate methods when checking if a number is zero registers an offense allows comparing against a global variable registers an offense with a complex expression when comparing against a method argument variable registers an offense with complex expression registers an offense with checking if a number is not zero allows comparing against a complex expression allows comparing against a global variable allows comparing against a variable when checking if a number is negative registers an offense in yoda condition registers an offense with a complex expression registers an offense in yoda condition registers an offense when checking if a number is positive registers an offense in yoda condition registers an offense with a complex expression registers an offense registers an offense in yoda condition RuboCop::Cop::Lint::RescueException does not crash when the namespace of a rescued class is in a local variable does not register an offense for rescue with no class and => e registers an offense for rescue with Exception => e does not register an offense for rescue with no class does not register an offense for rescue with other classes does not crash when the splat operator is used in a rescue does not register an offense for rescue with other class does not register an offense for rescue with a module prefix registers an offense for rescue with StandardError, Exception registers an offense for rescue from Exception registers an offense for rescue with ::Exception RuboCop::Cop::Layout::ConditionPosition accepts condition on the same line accepts condition on a different line for modifiers handles ternary ops registers an offense and corrects for condition on the next line accepts condition on a different line for modifiers registers an offense and corrects for condition on the next line accepts condition on a different line for modifiers registers an offense and corrects for condition on the next line registers an offense and corrects for condition on the next line accepts condition on the same line registers an offense and corrects for elsif condition on the next line accepts condition on a different line for modifiers accepts condition on the same line accepts condition on the same line RuboCop::Cop::Naming::AccessorMethodName accepts singleton method get_something with args accepts method get_something with args registers an offense for method set_something with one arg accepts method set_something with two args registers an offense for method get_... with no args accepts method set_something with no args registers an offense for singleton method set_... with one args registers an offense for singleton method get_... with no args accepts singleton method set_something with no args accepts singleton method set_something with two args RuboCop::Cop::Style::CommentAnnotation accepts a keyword that is somewhere in a sentence accepts upper case keyword with colon, space and note accepts a comment that is obviously a code example accepts upper case keyword alone accepts a keyword that is just the beginning of a sentence capitalized keyword registers an offense and upcases upper case keyword with colon by no note registers an offense without auto-correction with configured keyword registers an offense for a missing colon after the word when a keyword is not in the configuration accepts the word without colon missing colon registers an offense and adds colon missing space after colon registers an offense and adds space lower case keyword registers an offense and upcases offenses in consecutive inline comments registers each of them RuboCop::Cop::Style::SymbolArray when EnforcedStyle is percent registers an offense in a non-ambiguous block context detects right value for MinSize to use for --auto-gen-config autocorrects arrays of one symbol autocorrects arrays of symbols with new line autocorrects arrays of symbols with embedded newlines and tabs doesn't break when a symbol contains ) uses %I when appropriate does not register an offense for array with non-syms does not register an offense for array starting with %i detects when the cop must be disabled to avoid offenses does not register an offense if symbol contains whitespace does not register an offense in an ambiguous block context registers an offense for arrays of symbols when PreferredDelimiters is specified autocorrects an array using partial newlines autocorrects an array with delimiters autocorrects an array in multiple lines when EnforcedStyle is brackets autocorrects an array has interpolations autocorrects an array starting with %i registers an offense for array starting with %i does not register an offense for arrays of symbols with non-default MinSize does not autocorrect array of one symbol if MinSize > 1 RuboCop::Cop::Style::OneLineConditional parenthesizes the expression if it is preceded by an operator does not parenthesize expressions when they contain unparenthesized operator method calls allows one line if/then/end does not break when one of the branches contains a self keyword parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains a retry keyword parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not parenthesize expressions when they do not contain method calls with unparenthesized arguments parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains `next` keyword parenthesizes the expression if it is preceded by an operator does not break when one of the branches contains a break keyword allows one line unless/then/end parenthesizes the expression if it is preceded by an operator one line unless/then/else/end registers an offense allows empty else behaves like changed precedence adds parentheses around `a or b` behaves like changed precedence adds parentheses around `puts 1` one line if/then/else/end when `then` branch has no body registers an offense behaves like changed precedence adds parentheses around `a and b` behaves like changed precedence adds parentheses around `super b` behaves like changed precedence adds parentheses around `defined? :A` behaves like changed precedence adds parentheses around `not a` behaves like changed precedence adds parentheses around `a = b` one line if/then/else/end allows empty else registers an offense behaves like changed precedence adds parentheses around `a ? b : c` behaves like changed precedence adds parentheses around `yield a` RuboCop::Cop::VariableForce::Scope #name when the scope is instance method definition returns the method name when the scope is singleton method definition returns the method name #body_node when the scope is instance method returns the body node when the scope is class returns the body node when the scope is block returns the body node when the scope is singleton class returns the body node when the scope is singleton method returns the body node when the scope is top level returns the body node when the scope is module returns the body node .new when begin node is passed accepts that as top level scope when lvasgn node is passed accepts that as top level scope #each_node outer scope boundary handling when the scope is class yields the body nodes when the scope is block yields the argument and the body nodes when the scope is singleton class yields the body nodes when the scope is singleton method yields the argument and the body nodes when the scope is instance method yields the argument and the body nodes when the scope is module yields the body nodes when the scope is top level yields the body nodes inner scope boundary handling when there's a method invocation with block yields only the block node and the child send node when there's a singleton method definition yields only the defs node and the method host node #include? with child node the scope does not include is expected to equal false with node of the scope itself is expected to equal false with child node the scope includes is expected to equal true with ancestor node the scope does not include is expected to equal false with descendant node the scope does not include is expected to equal false RuboCop::Cop::Lint::BigDecimalNew registers an offense and corrects using `::BigDecimal.new()` does not register an offense when using `BigDecimal()` registers an offense and corrects using `BigDecimal.new()` RuboCop::Cop::Style::ClassCheck when enforced style is is_a? registers an offense for kind_of? and corrects to is_a? when enforced style is kind_of? registers an offense for is_a? and corrects to kind_of? RuboCop::Formatter::ClangStyleFormatter #report_file displays text containing the offending source line when the source line is blank does not display offending source line when the offending source spans multiple lines displays the first line with ellipses when the offense is automatically corrected prints [Corrected] along with message when the offense is not corrected prints message as-is RuboCop::Cop::Lint::SendWithMixinArgument does not register an offense when using `prepend` does not register an offense when using `extend` registers an offense when using `public_send` method does not register an offense when using `include` does not register an offense when not using a mixin method registers an offense when using `send` with `extend` registers an offense when using `__send__` method registers an offense when using `send` with `include` registers an offense when using `send` with `prepend` when specifying a mixin method as a string registers an offense when using `send` with `prepend` registers an offense when using `send` with `include` registers an offense when using `send` with `extend` when using namespace for module registers an offense when using `send` with `include` RuboCop::TargetRuby when TargetRubyVersion is not set when .ruby-version is in a parent directory reads it to determine the target ruby version when .ruby-version is not present and Gemfile.lock exists uses MRI Ruby version when it is present in Gemfile.lock uses MRI Ruby version when it has multiple digits uses the default Ruby when rbx is in Gemfile.lock uses the default Ruby when Ruby is not in Gemfile.lock uses the default Ruby when jruby is in Gemfile.lock when bundler lock files are not present uses the default target ruby version and gems.locked exists uses the default Ruby when Ruby is not in gems.locked uses the default Ruby when rbx is in gems.locked uses MRI Ruby version when it has multiple digits uses the default Ruby when jruby is in gems.locked uses MRI Ruby version when it is present in gems.locked when .ruby-version is present does not read Gemfile.lock or gems.locked when .ruby-version contains a version prefixed by "ruby-" correctly determines the target ruby version when .ruby-version contains "system" version uses the default target ruby version when .ruby-version contains a JRuby version uses the default target ruby version when .ruby-version contains a Rbx version uses the default target ruby version when .ruby-version contains an MRI version reads it to determine the target ruby version when the MRI version contains multiple digits reads it to determine the target ruby version when .ruby-version is not in a parent directory when gems.locked is in a parent directory does when Gemfile.lock is in a parent directory does when TargetRubyVersion is set does not read .ruby-version does not read Gemfile.lock or gems.locked uses TargetRubyVersion RuboCop::Cop::Gemspec::RequiredRubyVersion registers an offense when `required_ruby_version` is not specified target ruby version > 2.5 registers an offense when `required_ruby_version` is specified with >= and is higher than `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with ~> and is higher than `TargetRubyVersion` target ruby version > 2.6 does not register an offense when `required_ruby_version` is specified with ~> and equals `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with >= without a patch version and equals `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with >= and equals `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with >= without a minor version and is lower than `TargetRubyVersion` does not register an offense when lowest version of `required_ruby_version` equals `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with ~> without a minor version and is lower than `TargetRubyVersion` does not register an offense when `required_ruby_version` is specified with ~> without a patch version and equals `TargetRubyVersion` target ruby version > 2.7 registers an offense when `required_ruby_version` is specified with >= and is lower than `TargetRubyVersion` registers an offense when `required_ruby_version` is specified with ~> and is lower than `TargetRubyVersion` false negatives does not register an offense when `required_ruby_version` is assigned as a variable (string literal) does not register an offense when `required_ruby_version` is assigned as a variable (an array of string literal) RuboCop::Cop::Style::NumericLiterals accepts short numbers without underscore does not count a leading minus sign as a digit accepts long numbers with underscore autocorrects negative numbers registers an offense for a float with a long undelimited integer part autocorrects numeric literal with exponent (large E) and dot handles numeric literal with exponent registers an offense for an integer with misplaced underscore registers an offense for a long undelimited integer autocorrects negative floating-point numbers ignores non-decimal literals accepts integers with less than three places at the end autocorrects numbers with spaces between leading minus and numbers autocorrects numeric literal with exponent and dot accepts a short integer without underscore strict registers an offense for an integer with misplaced underscore RuboCop::Cop::Style::MixinGrouping when configured with separated style when using `prepend` registers an offense for several mixins in one call when using `include` allows include call as an argument to another method registers an offense for several mixins in separate calls registers an offense for several mixins in one call when using `extend` registers an offense for several mixins in one call when using a mix of diffent methods registers an offense for some calls having several mixins when configured with grouped style when using a mix of diffent methods allows all different mixin methods registers an offense with some duplicated mixin methods when using include registers an offense for single mixins in separate calls allows include with an explicit receiver registers an offense for several mixins in separate calls when using `extend` registers an offense for single mixins in separate calls when using `prepend` registers an offense for single mixins in separate calls registers an offense when other mixins have receivers registers an offense for single mixins in separate calls, interspersed RuboCop::Cop::VariableForce::VariableTable #declare_variable returns the added variable adds variable to current scope with its name as key #find_variable with an empty scope stack returns nil #current_scope_level increases by pushing scope decreases by popping scope #pop_scope returns popped scope object #find_variable when current scope is block when a variable with the target name exists in current scope and also exists in outer scope returns the current scope variable and does not exist in outer scope returns the current scope variable when a variable with the target name does not exist in current scope but exists in a indirect outer scope when the direct outer scope is not block returns nil when the direct outer scope is block returns the indirect outer scope variable and does not exist in all outer scopes returns nil but exists in the direct outer scope returns the direct outer scope variable when current scope is not block when a variable with the target name does not exist in current scope but exists in the direct outer scope returns nil and does not exist in all outer scopes returns nil when a variable with the target name exists in current scope and does not exist in outer scope returns the current scope variable and also exists in outer scope returns the current scope variable #accessible_variables when the current scope has some variables returns all the variables when there are no variables returns empty array when the direct outer scope has some variables and the current scope is block returns the current and direct outer scope variables and the current scope is not block returns only the current scope variables #push_scope returns pushed scope object RuboCop::Cop::Style::OptionHash registers an offense when passing options hash to super does not register an offense does not register an offense when code exists before call to super does not register an offense when call to super is in a nested block permitted list ignores if the method is permitted when the last argument is a non-options-hash optional hash does not register an offense when there are no arguments does not register an offense when the last argument is an options hash named something else does not register an offense when the argument name is in the list of suspicious names registers an offense RuboCop::Cop::Layout::DefEndAlignment when EnforcedStyleAlignWith is start_of_line auto-corrects mismatched def Test.test end accepts matching def ... end auto-corrects mismatched foo def test end accepts matching foo bar def ... end registers an offense for mismatched def Test.test end accepts matching foo def ... end registers an offense for mismatched foo def test end registers an offense for mismatched def test end accepts matching defs ... end auto-corrects mismatched def test end accepts matching def ... end correct + opposite registers an offense when EnforcedStyleAlignWith is def registers an offense for mismatched def Test.test end accepts matching foo def ... end auto-corrects mismatched def Test.test end registers an offense for mismatched def test end auto-corrects mismatched def test end registers an offense for mismatched foo def test end auto-corrects mismatched foo def test end accepts matching defs ... end accepts matching def ... end correct + opposite registers an offense RuboCop::Cop::Layout::CaseIndentation with EnforcedStyle: end with IndentOneStep: true regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented some other way registers an offense and corrects an assignment indented as case with everything on a single line does not register an offense with IndentOneStep: false with everything on a single line does not register an offense regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented some other way with EnforcedStyle: case with IndentOneStep: true registers an offense and corrects a when clause that is equally indented with case accepts a when clause that's 2 spaces deeper than case when indentation width is overridden for this cop only respects cop-specific IndentationWidth regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects an assignment indented some other way with everything on a single line does not register an offense with IndentOneStep: false accepts a when clause that's equally indented with case doesn't get confused by strings with case in them registers an offense and corrects a when clause that is indented deeper than case doesn't get confused by symbols named case or when accepts correctly indented whens in complex combinations regarding assignment where the right hand side is a case accepts a correctly indented assignment registers an offense and corrects assignment indented some other way registers an offense and corrects assignment indented as end registers an offense and corrects correct + opposite style with everything on a single line does not register an offense when case is preceded by something else than whitespace registers an offense and does not correct RuboCop::Cop::Style::SymbolLiteral accepts string syntax when symbols have special chars in them accepts string syntax when symbols have whitespaces in them accepts string syntax when symbol start with a digit registers an offense for word-line symbols using string syntax RuboCop::Cop::InternalAffairs::MethodNameEqual does not register an offense when using `#method?` registers an offense when using `#method == other_node.do_something` registers an offense when using `#method == :do_something` RuboCop::Cop::Style::RescueModifier does not register an offense for nested normal rescue registers an offense for modifier rescue registers an offense for modifier rescue around parallel assignment handles more complex expression with modifier rescue does not register an offense for normal rescue does not register an offense for normal rescue with ensure handles modifier rescue in a method handles modifier rescue in normal rescue excluded file processes excluded files with issue when a singleton method has implicit begin handles modifier rescue in body of implicit begin accepts normal rescue autocorrect corrects doubled rescue modifiers corrects complex rescue modifier when an instance method has implicit begin handles modifier rescue in body of implicit begin accepts normal rescue RuboCop::Cop::InternalAffairs::NodeTypePredicate does not register an offense for a predicate node type check comparison node type check registers an offense and auto-corrects RuboCop::Cop::Style::StringMethods registers an offense when using safe navigation operator registers an offense RuboCop::Cop::Layout::SpaceBeforeComma registers an offense and corrects block argument with space before comma registers an offense and corrects array index with space before comma registers an offense and corrects method call arg with space before comma handles more than one space before a comma does not register an offense for no spaces before comma RuboCop::Cop::Style::HashAsLastArrayItem when EnforcedStyle is braces registers an offense and corrects when hash without braces does not register an offense when hash with braces does not register an offense when hash is not inside array when EnforcedStyle is no_braces does not register an offense when hash without braces registers an offense and corrects when hash with braces does not register an offense when hash is not inside array RuboCop::Cop::Style::ClassMethods registers an offense for methods using a class name does not register an offense for methods using self registers an offense for methods using a module name does not register an offense for other top-level singleton methods does not register an offense outside class/module bodies RuboCop::Cop::Style::UnlessElse unless with nested if-else registers an offense unless with else registers an offense unless without else does not register an offense RuboCop::Cop::Style::EmptyBlockParameter accepts a block that is {} style without parameter registers an offense for an empty block parameter with super accepts a block that is do-end style without parameter registers an offense for an empty block parameter with {} style registers an offense for an empty block parameter with lambda accepts a non-empty block parameter with do-end style registers an offense for an empty block parameter with do-end wtyle accepts an empty block parameter with a lambda accepts a non-empty block parameter with {} style RuboCop::Cop::Layout::MultilineHashKeyLineBreaks without line break after opening bracket registers an offense and corrects nested hashes registers an offense and corrects when key starts on same line as another when on same line does not add any offenses with line break after opening bracket registers an offense and corrects when key starts on same line as another when on different lines than brackets but keys on one does not add any offenses when on all keys on one line different than brackets does not add any offenses when key starts on same line as another with rockets adds an offense RuboCop::Cop::Lint::InheritException when class inherits from `Exception` with enforced style set to `runtime_error` registers an offense and corrects when creating a subclass using Class.new registers an offense and corrects with enforced style set to `standard_error` registers an offense and corrects when creating a subclass using Class.new registers an offense and corrects RuboCop::CLI --auto-gen-config does not include offense counts when --no-offense-counts is used can generate Exclude properties with a given limit includes --auto-gen-only-exclude in the command comment when given can generate a todo list can be called when there are no files to inspection generates a todo list that removes the reports generates Exclude instead of Max when --auto-gen-only-exclude is used honors rubocop:disable comments overwrites an existing todo file does not include a timestamp when --no-auto-gen-timestamp is used does not generate configuration for the Syntax cop when .rubocop.yml is empty bases other cops' configuration on the code base's current maximum line length console output displays report summary but no offenses when different styles appear in different files generates Exclude list if --exclude-limit is not exceeded disables cop if --exclude-limit is exceeded with Layout/LineLength:Max overridden when .rubocop.yml has Layout/LineLength:Max less than code base max bases other cops' configuration on the overridden LineLength:Max when .rubocop.yml has Layout/LineLength disabled skips the cop from both phases of the run when .rubocop.yml has Layout/LineLength:Max more than code base max bases other cops' configuration on the overridden LineLength:Max when --config is used can generate a todo list when .rubocop.yml inherits only from .rubocop_todo.yml in an array bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits only from .rubocop_todo.yml bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits from another file and .rubocop_todo.yml bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits from two other files bases other cops' configuration on the code base's current maximum line length when .rubocop.yml inherits from another file bases other cops' configuration on the code base's current maximum line length when inheriting from a URL when there is a single entry can generate a todo list when there are multiple entries can generate a todo list when .rubocop.yml does not exist bases other cops' configuration on the code base's current maximum line length when working in a subdirectory can generate a todo list when .rubocop.yml doesn't inherit bases other cops' configuration on the code base's current maximum line length when working with a cop who do not support auto-correction can generate a todo list RuboCop::Cop::Lint::EachWithObjectArgument accepts a variable argument registers an offense for bignum argument registers an offense for float argument accepts two arguments accepts a string argument registers an offense for fixnum argument when using safe navigation operator registers an offense for fixnum argument RuboCop::Cop::Style::CaseEquality when AllowOnConstant is true registers an offense and corrects for === when the receiver is a range registers an offense and does not correct for === when receiver is of some other type registers an offense and corrects for === when the receiver is a regexp does not fail when the receiver is implicit does not register an offense for === when the receiver is a constant when AllowOnConstant is false registers an offense and corrects for === when the receiver is a regexp registers an offense and corrects for === when the receiver is a constant registers an offense and does not correct for === when receiver is of some other type does not fail when the receiver is implicit registers an offense and corrects for === when the receiver is a range RuboCop::Cop::Style::GuardClause doesn't register an error if condition has multiple lines doesn't register an error if control flow expr has multiple lines doesn't report an offense if condition has multiple lines accepts a method which body does not end with if / unless doesn't register an error if control flow expr has multiple lines registers an error with break in the if branch doesn't register an error if condition has multiple lines registers an offense when using `and return` in `then` branch does not report an offense if break is inside elsif accepts a method with empty parentheses as its body registers an error with break in the else branch registers an error with next in the if branch registers an error with raise "error" in the else branch does not report an offense if break is inside if..elsif..else..end registers an error with next in the else branch does not report an offense if return is inside if..elsif..else..end registers an error if non-control-flow branch has multiple lines registers an error if non-control-flow branch has multiple lines does not report an offense if next is inside elsif registers an error with return in the if branch registers an error with return in the else branch accepts a method which body is if / unless with else registers an offense when using `|| raise` in `then` branch doesn't register an error if condition has multiple lines does not report an offense if raise "error" is inside if..elsif..else..end registers an offense when using `and return` in `else` branch doesn't register an error if control flow expr has multiple lines registers an offense when using `|| raise` in `else` branch does not report an offense if return is inside elsif does not report an offense if next is inside if..elsif..else..end does not report an offense if raise "error" is inside elsif registers an error if non-control-flow branch has multiple lines doesn't register an error if control flow expr has multiple lines accepts a method whose body is a modifier if / unless does not report an offense if body is if..elsif..end registers an error with raise "error" in the if branch registers an error if non-control-flow branch has multiple lines does not register an offense when assigning the result of a guard condition with `else` doesn't register an error if condition has multiple lines with Metrics/MaxLineLength disabled registers an offense with modifier example code regardless of length with Metrics/MaxLineLength enabled registers an offense with non-modifier example code if too long for single line MinBodyLength: 1 reports an offense for if whose body has 1 line method in module registers an offense for instance method registers an offense for singleton methods behaves like reports offense reports an offense if method body is if / unless without else reports an offense if method body ends with if / unless without else MinBodyLength: 4 accepts a method whose body has 3 lines Invalid MinBodyLength fails with an error behaves like reports offense reports an offense if method body ends with if / unless without else reports an offense if method body is if / unless without else RuboCop::Cop::Style::NonNilCheck when not allowing semantic changes does not blow up when autocorrecting implicit receiver does not register an offense if last expression in class predicate does not report corrected when the code was not modified does not register an offense for != 0 registers an offense for != nil does not register an offense if only expression in class predicate does not register an offense if only expression in predicate does not register an offense for not x.nil? does not register an offense for !x.nil? does not register an offense if last expression in predicate when allowing semantic changes registers an offense for `not x.nil?` does not blow up with ternary operators registers an offense for `!x.nil?` does not register an offense for `!x` autocorrects by changing `x != nil` to `x` registers an offense for unless x.nil? does not blow up when autocorrecting implicit receiver does not register an offense for `x.nil?` corrects code that would not be modified if IncludeSemanticChanges were false RuboCop::Cop::Naming::HeredocDelimiterNaming with multiple heredocs starting on the same line registers an offense with a leading non-meaningful delimiter registers an offense with a trailing non-meaningful delimiter does not register an offense with meaningful delimiters with a naked heredoc registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter with a squiggly heredoc does not register an offense with a meaningful delimiter registers an offense with a non-meaningful delimiter when the delimiter contains non-letter characters does not register an offense when delimiter contains an underscore does not register an offense when delimiter contains a number with an interpolated heredoc does not register an offense with a meaningful delimiter registers an offense with a non-meaningful delimiter with a non-interpolated heredoc when using single quoted delimiters registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter when using back tick delimiters registers an offense with a non-meaningful delimiter does not register an offense with a meaningful delimiter when using double quoted delimiters does not register an offense with a meaningful delimiter registers an offense with a non-meaningful delimiter when using non-word delimiters registers an offense RuboCop::Cop::Style::YodaCondition enforce yoda accepts method call on receiver on right registers an offense for boolean literal on right accepts string literal on left accepts variable on right after assignment accepts negation accepts arrays of numbers on both sides accepts number on left of <=> accepts accessor and variable on right in boolean expression accepts string literal on right of case equality check registers an offense for string literal on right accepts class variable on right accepts subtraction on right of comparison accepts safe navigation on right accepts assignment registers an offense for nil on right registers an offense for number on right of comparison accepts instance variable on right registers an offense for number on right accepts numbers on both sides accepts global variable on right within an if or ternary statement registers an offense for number on right of >= in ternary condition registers an offense for number on right of <= in ternary condition registers an offense for number on right in modifier if registers an offense for nil on right in ternary condition registers an offense number on right of comparison in if condition registers an offense number on right in if condition with EnforcedStyle: require_for_equality_operators_only registers an offense for equality check accepts nil on right of comparison registers an offense for negated equality check accepts mixed order in comparisons accepts number on right of comparison enforce not yoda accepts subtraction expression on left of comparison accepts global variable on left accepts string literal on left of case equality check registers an offense for string literal on left accepts class variable on left accepts array of numbers on both sides registers an offense for nil on left accepts method call on receiver on left accepts string literal on right accepts safe navigation on left accepts assignment accepts interpolated string on left registers an offense number on left accepts negation accepts variable on left after assign accepts number on left of <=> accepts number on both sides accepts interpolated regex on left registers an offense number on left of comparison accepts __FILE__ on left in program name check accepts __FILE__ on left in negated program name check accepts accessor and variable on left in boolean expression accepts instance variable on left registers an offense for boolean literal on left with EnforcedStyle: forbid_for_equality_operators_only accepts nil on left of comparison registers an offense for equality check registers an offense for negated equality check accepts number on left of comparison accepts mixed order in comparisons within an if or ternary statement registers an offense for number on left in modifier if registers an offense for number on left of comparison in if condition registers an offense for number on left of >= in ternary condition registers an offense for number on left in if condition registers an offense for number on left of <= in ternary condition registers an offense for nil on left in ternary condition RuboCop::Cop::Lint::RequireParentheses accepts method calls without parentheses followed by keyword and/or accepts calls to methods that are setters registers an offense for missing parentheses around expression in ternary accepts calls to methods that are operators accepts missing parentheses around expression with + operator accepts method calls that are all operations accepts parentheses around expression with boolean operator accepts condition that is not a call accepts missing parentheses when method is not a predicate registers an offense for missing parentheses around expression with || operator registers an offense for missing parentheses around expression with && operator accepts method call with parentheses in ternary when using safe navigation operator registers an offense for missing parentheses around expression with && operator RuboCop::Cop::Bundler::GemComment when investigating Gemfiles and the gem is permitted does not register any offenses and the file contains source and group does not register any offenses and a gem has no comment registers an offense and the file is empty does not register any offenses when the "OnlyFor" option is set when the version specifiers are checked when a gem is uncommented and has options but no version specifiers does not register an offense when a gem is commented does not register an offense when a gem is uncommented and has multiple version specifiers registers an offense when a gem is uncommented and has no extra options does not register an offense when a gem is uncommented and has a version specifier along with unrelated options registers an offense when a gem is uncommented and has a version specifier registers an offense and some other options are checked when a gem is uncommented and has a version specifier but no other options does not register an offense when a gem is uncommented and only unchecked options does not register an offense when a gem is uncommented and has one of the checked options registers an offense and the gem is commented does not register any offenses when investigating Ruby files does not register any offenses RuboCop::Cop::Style::MissingElse UnlessElse disabled given an unless-statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense given a case statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense given an if-statement with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense configured to warn only on empty case given an unless-statement with no else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense given a case statement with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense given an if-statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with no else-clause doesn't register an offense with a completely empty else-clause doesn't register an offense EmptyElse enabled and set to warn on nil given an unless-statement with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause with side-effects doesn't register an offense given a case statement with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense given an if-statement with a completely empty else-clause doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense configured to warn only on empty if given a case statement with no else-clause doesn't register an offense with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense given an unless-statement with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense given an if-statement with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause with side-effects doesn't register an offense UnlessElse enabled given an if-statement with a completely empty else-clause doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense given an unless-statement with an else-clause containing only the literal nil doesn't register an offense with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause doesn't register an offense given a case statement with no else-clause registers an offense with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with an else-clause containing only the literal nil doesn't register an offense EmptyElse enabled and set to warn on empty given a case statement with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause doesn't register an offense given an unless-statement with a completely empty else-clause doesn't register an offense with an else-clause with side-effects doesn't register an offense with no else-clause registers an offense with an else-clause containing only the literal nil doesn't register an offense given an if-statement with an else-clause containing only the literal nil doesn't register an offense with an else-clause with side-effects doesn't register an offense with a completely empty else-clause doesn't register an offense with no else-clause registers an offense RuboCop::Cop::Style::RedundantInterpolation accepts strings implicitly concatenated with a later string registers an offense for "#@@var" registers an offense for "#@var" accepts strings with characters after the interpolation registers an offense for "#{@@var}" registers an offense for "#$+" registers an offense for "#{$1}" accepts strings implicitly concatenated with an earlier string accepts strings with characters before the interpolation registers an offense for "#{$var}" registers an offense for "#$var" registers an offense for "%|#{1 + 1}|" registers an offense for "%Q(#{1 + 1})" accepts strings that are part of a %W() registers an offense for "#{$+}" registers an offense for "#{@var}" registers an offense for ["#{@var}"] registers an offense for "#{1 + 1}" registers an offense for "#{var}" registers an offense for "#{1 + 1; 2 + 2}" registers an offense for "#$1" RuboCop::Cop::Style::LineEndConcatenation accepts string concat at line end for special strings like __FILE__ registers multiple offenses when there are chained concatenations registers an offense for string concat with << at line end accepts string concat on the same line autocorrects only the lines that should be autocorrected registers an offense for string concat with << and \ at line ends registers an offense for string concat at line end autocorrects a + with \ to just \ registers an offense for dynamic string concat with << at line end registers an offense for dynamic string concat at line end registers multiple offenses when there are chained concatenationscombined with << calls autocorrects a + with trailing whitespace to \ accepts string concat at line end when % literals are involved accepts string concat at line end when followed by comment accepts string concat with a return value of method on an interpolated string accepts string concat with a return value of method on a string registers multiple offenses when there are chained << methods accepts string concat at line end when followed by a comment line registers offenses only for the appropriate lines in chained concats RuboCop::Cop::Lint::IneffectiveAccessModifier when `private_class_method` is used when `private_class_method` does not contain the method registers an offense when `private_class_method` contains all private method names doesn't register an offense when no access modifier is used doesn't register an offense when there is `begin` before a method definition does not register an offense when `protected` is applied to a class method registers an offense when a `class << self` block is used doesn't register an offense when `private` is applied to a class method registers an offense when there is an intervening instance method still registers an offense RuboCop::Cop::Style::NestedTernaryOperator registers an offense and corrects for a nested ternary operator expression registers an offense and corrects for a nested ternary operator expression with block accepts a non-nested ternary operator within an if RuboCop Project default configuration file has a period at EOL of description has a SupportedStyles for all EnforcedStyle and EnforcedStyle is valid does not have nay duplication sorts configuration keys alphabetically has configuration for all cops requires a nicely formatted `VersionAdded` metadata for all cops has a nicely formatted description for all cops requiring all of `lib` with verbose warnings enabled emits no warnings changelog has link definitions for all implicit links has newline at end of file has either entries, headers, or empty lines entry has a whitespace between the * and the body after version 0.14.0 has a link to the contributors at the end link to related issue has a valid URL has an issue number prefixed with # has a colon and a whitespace at the end contributor name has a unique contributor name body does not start with a lower case ends with a punctuation cop message end with a period or a question mark RuboCop::Cop::Layout::EmptyLinesAroundModuleBody when EnforcedStyle is empty_lines_special when namespace has multiple children requires empty lines for namespace module with empty body without empty line does NOT register offenses with empty line does NOT register offenses when first child is NOT a method does not require blank line at the beginning of module body but requires blank line before first def definition and requires blank line at the end of module body source with comment before method definition registers an offense for module beginning with a blank line source with blank lines registers an offense for module beginning with a blank line when module has a namespace requires no empty lines for namespace and does not require blank line at the beginning of module body but requires blank line at the end of module body source with constants registers and autocorrects the offenses source without blank lines registers and autocorrects the offenses source with blank lines registers and autocorrects the offenses source without blank lines registers an offense for module not ending with a blank line module with only constants registers and autocorrects the offenses module with constant and child module registers and autocorrects the offenses when first child is method requires blank line at the beginning and ending of module body when module has a namespace requires no empty lines for namespace but requires blank line at the beginning and ending of module body source without blank lines registers and autocorrects the offenses source with blank lines autocorrects the offenses source without blank lines registers an offense for module not beginning and ending with a blank line when EnforcedStyle is empty_lines registers an offense for module body not ending with a blank accepts modules with an empty body registers an offense for module body not starting or ending with a blank autocorrects beginning and end when EnforcedStyle is no_empty_lines registers an offense for module body ending with a blank autocorrects beginning and end registers an offense for module body starting with a blank when EnforcedStyle is empty_lines_except_namespace when only child is class requires no empty lines for namespace registers offense for namespace body ending with a blank registers offense for namespace body starting with a blank when only child is module registers offense for namespace body ending with a blank registers offenses for namespaced module body not ending with a blank registers offenses for namespaced module body not starting with a blank autocorrects beginning and end requires no empty lines for namespace registers offense for namespace body starting with a blank when has multiple child modules registers offenses for namespace body starting and ending without a blank requires empty lines for namespace RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords registers an offense for rescue section starting with a blank registers an offense for rescue section ending for method definition a blank registers an offense for above rescue keyword with a blank accepts empty method definition with complex method definition - registers many offenses accepts empty lines around begin body registers an offense for rescue section ending with a blank with complex begin-end - registers many offenses accepts no empty line accepts empty begin RuboCop::Cop::Style::TrailingBodyOnModule accepts regular module registers offense with multi-line module auto-corrects when there are multiple semicolons registers an offense when body trails after module definition auto-corrects with comment after body registers offense when module definition uses semicolon when module is not on first line of processed_source auto-corrects offense RuboCop::Cop::Style::HashTransformValues does not flag each_with_object when value transformation uses key does not flag each_with_object when its argument is not modified does not flag value transformation when receiver is array literal correctly autocorrects _.map{...}.to_h with block does not flag each_with_object when receiver is array literal flags _.map {...}.to_h when transform_values could be used flags Hash[_.map{...}] when transform_values could be used flags _.map {...}.to_h when transform_values could be used when line break before `to_h` does not flag value transformation in the absence of to_h does not flag each_with_object when no transformation occurs does not flag each_with_object when both key & value are transformed does not flag Hash[_.map{...}] when both key & value are transformed does not flag _.map{...}.to_h when both key & value are transformed with multiline block flags each_with_object when transform_values could be used with inline block flags each_with_object when transform_values could be used with safe navigation operator flags each_with_object when transform_values could be used RuboCop::Formatter::OffenseCountFormatter #file_finished when any offenses are detected increments the count for the cop in offense_counts when no offenses are detected does not add to offense_counts #finished when output tty is true has a progresbar when there are many offenses sorts by offense count first and then by cop name #report_summary when an offense is detected shows the cop and the offense count RuboCop::Cop::Style::MethodCallWithArgsParentheses when inspecting macro methods with IncludedMacros for a macro not on the included list allows for a macro in both IncludedMacros and IgnoredMethods allows in a class body finds offense in a module body finds offense when EnforcedStyle is require_parentheses (default) auto-corrects fully parenthesized args by removing space register an offense for yield without parens auto-corrects calls where arg is method call register an offense for methods starting with capital without parens register no offense for yield without args auto-corrects calls where the argument node is a number register an offense for method call without parens register an offense for non-receiver method call without parens register no offense for superclass call with parens auto-corrects partially parenthesized args by adding needed braces auto-corrects calls where the argument node is a constant accepts parens in method call with args accepts no parens for setter methods accepts no parens for unary operators register an offense for superclass call without parens accepts parens in method call with do-end blocks auto-corrects calls with multiple args by adding needed braces ignores method listed in IgnoredMethods auto-corrects call with multiple args by adding braces accepts no parens in method call without args register no offense for superclass call without args auto-corrects calls where multiple args are method calls auto-corrects parenthesized args for local methods by removing space accepts no parens for operators when inspecting macro methods in a class body does not register an offense in a module body does not register an offense when using safe navigation operator register an offense for method call without parens IgnoredPatterns ignored methods listed in IgnoredPatterns when EnforcedStyle is omit_parentheses accepts parens in range literals register an offense for hashes in keyword values register an offense for yield call with parens accepts parens in argument calls with braced blocks accepts parens in super calls with braced blocks accepts parens in blocks with braces accepts parens in calls with args with logical operators accepts parens in calls with hash as arg accepts parens in slash regexp literal as argument accepts parens in ternary condition calls accepts parens in single-line inheritance accepts parens in method args accepts parens in args splat accepts parens in default keyword argument value calls accepts parens in implicit #to_proc accepts parens in block passing calls accepts parens in chained method calls accepts parens in chaining with safe operators register an offense in multi-line inheritance register an offense in assignments accepts parens in nested method args register an offense for superclass call with parens accepts parens in super method calls as arguments accepts parens in camel case method without args accepts parens in args with ternary conditions accepts no parens in method call with args auto-corrects multi-line calls with trailing whitespace register an offense for camel-case methods with arguments auto-corrects complex multi-line calls register an offense for parens in method call without args register an offense for multi-line method calls accepts parens in calls with logical operators accepts parens in literals with unary operators as first argument accepts parens in super without args register an offense for %r regex literal as arguments accepts parens in default argument value calls auto-corrects single-line calls register an offense for parens in the last chain register an offense for parens in do-end blocks accepts no parens in method call without args accepts special lambda call syntax accepts parens in splat calls accepts parens in chaining with operators register an offense in complex conditionals allowing parenthesis in chaining accepts no parens in the last call if previous calls with parens register offense for single-line chaining without previous parens register offense for multi-line chaining without previous parens accepts parens in the last call if any previous calls with parentheses allowing parens in multi-line calls accepts parens for multi-line calls allowing parens in camel-case methods accepts parens for camel-case method names RuboCop::Cop::Lint::MissingSuper constructor does not register an offense for the class with stateless parent class does not register an offense when there is a `super` call registers an offense when no `super` call does not register an offense for the constructor-like method defined outside of a class does not register an offense for the class without parent class callbacks registers an offense when method callback is without `super` call does not register an offense when `method_missing?` contains `super` call registers an offense for instance level `method_missing?` with no `super` call does not register an offense when callback has a `super` call registers an offense when class callback within `self << class` and without `super` call registers an offense for class level `method_missing?` with no `super` call registers no offense when module callback without `super` call registers an offense when class callback without `super` call RuboCop::ConfigStore .for always uses config specified in command line when no config specified in command line searches for config path if not available in cache gets config path and config from cache if available when --force-default-config option is specified uses default config without searching for config path RuboCop::Cop::Lint::EnsureReturn registers an offense and corrects for return in ensure does not register an offense for return outside ensure registers an offense when returning multiple values in `ensure` does not check when ensure block has no body registers an offense and corrects for return with argument in ensure RuboCop::Cop::Lint::UselessAssignment when a variable is assigned with operator assignment in rescue and would be referenced with retry accepts when a variable is assigned in branch of modifier if that references the variable in its conditional clauseand referenced after the branching accepts when an anonymous keyword splat method argument is defined accepts when a variable is reassigned multiple times in ensure with rescue then referenced after the begin registers an offense when a variable is reassigned in single branch if and referenced in the branch registers an offense for the unreferenced assignment when a variable is assigned and unreferenced in top level registers an offense when a variable is shadowed by a block argument and unreferenced registers an offense when a variable is assigned in branch of modifier if that references the variable in its conditional clauseand unreferenced registers an offense when there's an unreferenced reassignment in a if branch while the variable is referenced in a case branch in the paired else branch registers an offense for the reassignment in the if branch when a variable is assigned while being passed to a method taking block and the variable is used accepts and the variable is not used registers an offense when a block method argument is not used accepts when an unreferenced variable is reassigned in a block accepts when a variable is reassigned at the end of loop body and would be referenced in loop condition accepts when a keyword splat method argument is not used accepts when a named capture is unreferenced in top level registers an offense when a variable is assigned and passed to a method followed by method taking block accepts when a variable is assigned in 2 identical if branches doesn't think 1 of the 2 assignments is useless when a variable is assigned and unreferenced in a singleton class registers an offense when a variable is reassigned while referencing itself in rhs and referenced accepts similar name suggestion when there are only less similar names does not suggest any name when there's a similar method invocation with explicit receiver does not suggest any name when there's a similar variable-like method invocation suggests the method name when there's a similar name but it's in inner scope does not suggest any name when there's a similar method invocation with arguments does not suggest any name when there's a similar variable suggests the variable name when a method argument is not used accepts when a variable is assigned in main body of begin with rescue but unreferenced registers an offense when a variable is assigned and unreferenced in a method registers an offense when a unreferenced variable is reassigned on the left side of && and referenced after the && registers an offense for the unreferenced assignment when a variable is assigned in loop body and referenced in post until condition accepts when a variable is assigned and unreferenced in a module registers an offense when a unreferenced variable is reassigned in same branch and referenced after the branching registers an offense for the unreferenced assignment when a block local variable is assigned and unreferenced registers offenses for the assignment when a variable is reassigned in a loop post while loop accepts post until loop accepts until loop accepts for loop accepts while loop accepts when a unreferenced variable is reassigned on the right side of && and referenced after the && accepts when a variable is assigned in single branch if and unreferenced registers an offense when a variable is assigned in each branch of if and referenced after the branching accepts when there's an unreferenced reassignment in a if branch while the variable is referenced in the paired elsif branch registers an offense for the reassignment in the if branch when a block argument is not used accepts when a method argument is reassigned and zero arity super is called accepts when an optional method argument is not used accepts when a variable is assigned in each branch of if and referenced in the else branch registers an offense for the assignment in the if branch when a variable is reassigned with logical operator assignment and referenced accepts when a variable is assigned first with ||= and referenced accepts when a rescued error variable is wrongly tried to be referenced in another rescue body registers an offense when a variable is assigned in loop body and unreferenced registers an offense when a variable is assigned and unreferenced in a singleton method defined with variable name registers an offense when an unreferenced variable is reassigned and re-referenced registers an offense for the unreferenced assignment when a splat method argument is not used accepts when a variable is assigned and unreferenced in a class registers an offense when a variable is assigned in main body of begin, rescue and else then referenced after the begin accepts when a variable that has same name as outer scope variable is not referenced in a method defined in loop registers an offense when a variable is assigned and referenced when defining a module does not register an offense when a variable is reassigned and unreferenced in a if branch while the variable is referenced in the paired else branch registers an offense for the reassignment in the if branch when a variable is assigned in loop body and referenced in post while condition accepts when a referenced variable is reassigned but not re-referenced registers an offense for the non-re-referenced assignment when an assignment in a if branch is referenced in another if branch accepts when a variable is assigned on each side of && and referenced after the && accepts when a method argument is reassigned but not passed to super registers an offense when a variable is assigned with multiple assignment and unreferenced registers an offense when a variable is assigned and assigned again in a modifier condition accepts with parentheses accepts without parentheses when a variable is reassigned at the end of loop body and would be referenced in next iteration accepts when a variable is assigned at the end of rescue and would be referenced with retry accepts when a setter is invoked with operator assignment in loop body accepts when a referenced variable is reassigned in a block accepts when a block local variable is declared but not assigned accepts when there's an unreferenced assignment in top level if branch while the variable is referenced in the paired else branch registers an offense for the assignment in the if branch when a variable is reassigned with binary operator assignment while assigning to itself in rhs then referenced registers an offense for the assignment in rhs when a variable is reassigned with multiple assignment while referencing itself in rhs and referenced accepts when there is only one AST node and it is unused variable registers an offense when a variable is assigned with ||= before the last expression of the scope registers an offense when a variable is assigned in begin and referenced outside accepts when a variable is reassigned in loop body but won't be referenced either next iteration or loop condition registers an offense (PENDING: Requires an advanced logic that checks whether the return value of an operator assignment is used or not.) when a variable is referenced in rhs of named capture expression accepts when a named capture is referenced accepts when a local variable is unreferenced and zero arity super is called registers an offense when a named capture is unreferenced in other than top level registers an offense when a optional keyword method argument is not used accepts when a variable is reassigned multiple times in main body of begin then referenced in ensure accepts when a variable is reassigned multiple times in rescue with ensure then referenced after the begin registers an offense when a variable is assigned with ||= at the last expression of the scope registers an offense when a keyword splat method argument is used accepts when a variable is reassigned with binary operator assignment and referenced accepts when a variable is assigned and unreferenced in a class subclassing another class stored in local variable registers an offense when a variable is assigned and unreferenced in a singleton method defined with self keyword registers an offense when a variable is assigned multiple times but unreferenced registers offenses for each assignment when a variable is reassigned multiple times in main body of begin then referenced after the begin accepts when a variable is assigned with operator assignment in top level registers an offense when a referenced variable is reassigned but not re-referenced in a method defined in loop registers an offense when a variable is assigned in main body of begin, rescue and else and reassigned in ensure then referenced after the begin registers offenses for each assignment before ensure when a variable is reassigned multiple times in rescue and referenced after the begin registers an offense when a variable is reassigned in single branch if and referenced after the branching accepts when a variable is not used and the name starts with _ accepts when a variable is reassigned multiple times in main body of begin then referenced in rescue accepts RuboCop::Cop::Style::IfUnlessModifier accepts if-else-end doesn't break if-end when used as RHS of local var assignment accepts if-end followed by a chained call using `&.` doesn't break if-end when used as RHS of constant assignment doesn't break if-end when used as RHS of binary arithmetic accepts if/elsif accepts code with EOL comment since user might want to keep it accepts if-end when used as LHS of binary arithmetic adds parens in autocorrect when if-end used with `||` operator accepts if-end followed by a chained call using `.` doesn't break if-end when used as RHS of class var assignment adds parens in autocorrect when if-end used with `&&` operator doesn't break if-end when used as RHS of instance var assignment if-end is argument to a non-parenthesized method call adds parentheses so as not to change meaning when if-end condition has some code after the end keyword when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form multiline unless that fits on one line registers an offense when if-end condition is a value in a hash when it is short enough to fit on a single line corrects it to the single-line form when it is not short enough to fit on a single line accepts it in the multiline form if-end with conditional as body accepts behaves like condition modifier cop for a multiline 'if' corrects it if result fits in one line accepts it if single line would not fit on one line accepts an empty body accepts it if body spans more than one line accepts it when condition has local variable assignment corrects it when assignment is in body accepts multiline condition in modifier form registers an offense when Layout/LineLength is disabled registers an offense even for a long modifier statement when if-end condition has a first line comment when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form unless-end with conditional as body accepts when Layout/LineLength is disabled registers an offense even for a long modifier statement with implicit match conditional when a multiline if doesn't fit on one line accepts when a multiline if fits on one line registers an offense with a named regexp capture on the LHS does not register an offense when if-end condition is an element of an array when not short enough to fit on a single line accepts it in the multiline form when short enough to fit on a single line corrects it to the single-line form when if-end condition is assigned to a variable with variable being on the same line when it is short enough to fit on a single line corrects it to the single-line form when it is not short enough to fit on a single line accepts it in the multiline form with variable being on the previous line when it is not short enough to fit on a single line accepts it in the multiline form when it is short enough to fit on a single line corrects it to the single-line form if-end is argument to a parenthesized method call adds parentheses because otherwise it would cause SyntaxError short multiline if near an else etc registers an offense modifier if that does not fit on one line when Layout/LineLength is disabled with enable/disable comments accepts when Layout/LineLength is enabled corrects it to normal form IgnoreCopDirectives and the long line is allowed because IgnoreCopDirectives is true accepts and the long line is too long because IgnoreCopDirectives is false registers an offense and the long line is allowed because AllowURI is true accepts and the long line is too long because AllowURI is false registers an offense when Layout/LineLength is disabled with an EOL comment accepts when Layout/LineLength is disabled in configuration accepts modifier if that does not fit on one line, but is not the only statement on the line accepts with tabs used for indentation with Layout/IndentationWidth: Width config behaves like with tabs indentation it fits on one line registers an offense it doesn't fit on one line doesn't register an offense with Layout/IndentationStyle: IndentationWidth config behaves like with tabs indentation it fits on one line registers an offense it doesn't fit on one line doesn't register an offense behaves like condition modifier cop for a multiline 'unless' accepts an empty body accepts it when condition has local variable assignment accepts it if body spans more than one line accepts it if single line would not fit on one line corrects it if result fits in one line corrects it when assignment is in body accepts multiline condition in modifier form registers an offense when Layout/LineLength is disabled registers an offense even for a long modifier statement multiline if that fits on one line with comment near end accepts multiline if that fits on one line registers an offense and has two statements separated by semicolon accepts multiline if that fits on one line with comment on first line registers an offense and preserves comment RuboCop::Cop::Style::ClassVars registers an offense for class variable declaration registers an offense for class variable set on class receiver registers an offense for class variable set in class does not register an offense for class variable usage RuboCop::Cop::Lint::TopLevelReturnWithArgument Code segment with block level returns other than the top-level return Expects offense from the return with arguments Expects no offense from the return without arguments Code segment containing semi-colon separated statements Expects no offense from the return with arguments and multi-line code Expects an offense from the return with arguments and multi-line code Code segment with only top-level return statement Expects multiple offenses from the return with arguments statements Expects offense from the return with arguments Expects no offense from the return without arguments Code segment with method-level return statements Expects offense when method-level & top-level return co-exist Code segment with inline if along with top-level return Expects no offense from the return without arguments Expects multiple offense from the return with arguments RuboCop::Cop::Layout::InitialIndentation registers an offense and corrects indented assignment disregarding comment accepts unindented comment + assignment accepts empty file registers an offense for indented method definition accepts unindented method definition for a file with byte order mark accepts unindented method call registers an offense and corrects indented method call after comment registers an offense and corrects indented method call RuboCop::Cop::Style::Proc registers an offense for ::Proc.new registers an offense for a Proc.new call accepts the Proc.new call without block accepts the ::Proc.new call without block RuboCop::Cop::Style::StringLiteralsInInterpolation when configured with a bad value fails configured with single quotes preferred registers an offense for double quotes within embedded expression accepts double quotes on static strings within a method accepts double quotes on a static string accepts double quotes on a broken static string can handle a built-in constant parsed as string registers an offense for double quotes within embedded expression in a heredoc string can handle character literals configured with double quotes preferred registers an offense for single quotes within embedded expression registers an offense for single quotes within embedded expression in a heredoc string RuboCop::Cop::Layout::EndAlignment accepts matching puts 1; while ... end accepts matching puts 1; unless ... end accepts matching puts 1; case ... end accepts matching puts 1; until ... end auto-corrects mismatched until test end auto-corrects mismatched puts 1; unless test end accepts matching until ... end registers an offense for mismatched puts 1; unless test end registers an offense for mismatched module Test end accepts matching module ... end auto-corrects mismatched puts 1; class Test end accepts matching class ... end registers an offense for mismatched case a when b end registers an offense for mismatched module Test end accepts matching class ... end registers an offense for mismatched puts 1; case a when b end can handle ternary if registers an offense for mismatched puts 1; class Test end registers an offense for mismatched puts 1; class Test end auto-corrects mismatched puts 1; class Test end auto-corrects mismatched module Test end accepts matching if ... end accepts matching puts 1; module ... end auto-corrects mismatched puts 1; if test end auto-corrects mismatched puts 1; until test end auto-corrects mismatched module Test end accepts matching case ... end registers an offense for mismatched puts 1; if test end registers an offense for mismatched puts 1; while test end auto-corrects mismatched puts 1; while test end registers an offense for mismatched unless test end accepts matching while ... end accepts matching puts 1; if ... end can handle modifier if registers an offense for mismatched until test end registers an offense for mismatched if test end registers an offense for mismatched puts 1; until test end accepts matching puts 1; class ... end auto-corrects mismatched unless test end auto-corrects mismatched while test end auto-corrects mismatched case a when b end auto-corrects mismatched puts 1; case a when b end auto-corrects mismatched if test end registers an offense for mismatched while test end accepts matching unless ... end regarding assignment when EnforcedStyleAlignWith is keyword accepts matching var[0] = case ... end accepts matching var = unless ... end auto-corrects mismatched var = until test end registers an offense for mismatched var << until test end auto-corrects mismatched var = while test end accepts matching var = if ... end accepts matching var = until ... end auto-corrects mismatched var = if test end accepts matching var = while ... end auto-corrects mismatched var << until test end registers an offense for mismatched var = unless test end accepts matching var = case ... end auto-corrects mismatched var = unless test end registers an offense for mismatched var = until test end registers an offense for mismatched var = if test end registers an offense for mismatched var = while test end when EnforcedStyleAlignWith is variable accepts matching @@var = if ... end auto-corrects mismatched var = case a when b end auto-corrects mismatched @@var = if test end auto-corrects mismatched var << if test end registers an offense for mismatched var = if test end accepts matching var &&= if ... end auto-corrects mismatched @var = if test end auto-corrects mismatched var = unless test end auto-corrects mismatched var << case a when b end registers an offense for mismatched var = unless test end accepts matching var = case ... end auto-corrects mismatched @var << if test end accepts matching @var = if ... end accepts matching h[k] = if ... end registers an offense for mismatched @@var = if test end registers an offense for mismatched h.k = if test end registers an offense for mismatched var << unless test end registers an offense for mismatched var[x] = while test end auto-corrects mismatched h.k = if test end accepts matching h.k = if ... end accepts matching var ||= if ... end accepts matching var << if ... end accepts matching var = unless ... end accepts matching var += if ... end registers an offense for mismatched var << case a when b end auto-corrects mismatched var += if test end registers an offense for mismatched a, b = if test end auto-corrects mismatched h[k] << if test end registers an offense for mismatched var = # comment while test end registers an offense for mismatched $var = if test end auto-corrects mismatched var &&= if test end accepts matching var = while ... end accepts matching var = until ... end auto-corrects mismatched a, b = if test end registers an offense for mismatched var &&= if test end auto-corrects mismatched $var << if test end registers an offense for mismatched var = case a when b end auto-corrects mismatched h[k] = if test end auto-corrects mismatched var = until test end registers an offense for mismatched CNST << if test end auto-corrects mismatched @@var << if test end auto-corrects mismatched var << unless test end accepts matching var = if ... end registers an offense for mismatched var = until test end.j registers an offense for mismatched var << if test end accepts matching CNST = if ... end registers an offense for mismatched var = until test end auto-corrects mismatched var = until test do_something end auto-corrects mismatched var = while test end registers an offense for mismatched var ||= if test end auto-corrects mismatched var[x] = while test end registers an offense for mismatched var = until test do_something end registers an offense for mismatched var = while test end registers an offense for mismatched var << until test end auto-corrects mismatched var = if test end auto-corrects mismatched CNST << if test end auto-corrects mismatched var = until test end.j registers an offense for mismatched @@var << if test end registers an offense for mismatched @var << if test end registers an offense for mismatched $var << if test end accepts matching var = if ... end registers an offense for mismatched @var = if test end auto-corrects mismatched CNST = if test end auto-corrects mismatched var << until test end auto-corrects mismatched var = if test end registers an offense for mismatched var += if test end auto-corrects mismatched var = # comment while test end registers an offense for mismatched CNST = if test end registers an offense for mismatched var = unless test end accepts matching var = until ... end accepts matching a, b = if ... end auto-corrects mismatched var = unless test end auto-corrects mismatched $var = if test end registers an offense for mismatched var = if test end accepts matching var = until ... end registers an offense for mismatched h[k] = if test end registers an offense for mismatched h[k] << if test end accepts matching $var = if ... end auto-corrects mismatched var ||= if test end correct + opposite registers an offense and corrects case as argument when EnforcedStyleAlignWith is variable registers an offense for mismatched test case a when b end auto-corrects mismatched test case a when b end accepts matching test case ... end when EnforcedStyleAlignWith is start_of_line registers an offense for mismatched test case a when b end accepts matching test case a when b ... end auto-corrects mismatched test case a when b end when EnforcedStyleAlignWith is keyword registers an offense for mismatched test case a when b end accepts matching test case ... end auto-corrects mismatched test case a when b end when end is preceded by something else than whitespace does not register an offense when EnforcedStyleAlignWith is variable accepts matching module ... end accepts matching unless ... end registers an offense for mismatched class Test end auto-corrects mismatched puts 1; case a when b end accepts matching while ... end auto-corrects mismatched case a when b end registers an offense for mismatched case a when b end auto-corrects mismatched until test end auto-corrects mismatched puts 1; if test end accepts matching puts 1; if ... end auto-corrects mismatched if test end registers an offense for mismatched unless test end registers an offense for mismatched puts 1; unless test end auto-corrects mismatched while test end registers an offense for mismatched while test end auto-corrects mismatched puts 1; module Test end registers an offense for mismatched puts 1; if test end accepts matching puts 1; while ... end auto-corrects mismatched puts 1; class Test end registers an offense for mismatched puts 1; until test end auto-corrects mismatched unless test end registers an offense for mismatched puts 1; module Test end auto-corrects mismatched puts 1; unless test end registers an offense for mismatched module Test end auto-corrects mismatched class Test end accepts matching puts 1; until ... end auto-corrects mismatched puts 1; while test end registers an offense for mismatched puts 1; while test end accepts matching case ... end accepts matching puts 1; module ... end accepts matching until ... end accepts matching puts 1; class ... end registers an offense for mismatched if test end auto-corrects mismatched puts 1; until test end accepts matching class ... end auto-corrects mismatched module Test end registers an offense for mismatched until test end accepts matching puts 1; unless ... end registers an offense for mismatched puts 1; class Test end registers an offense for mismatched puts 1; case a when b end accepts matching puts 1; case ... end accepts matching if ... end when EnforcedStyleAlignWith is start_of_line auto-corrects mismatched puts 1; case a when b end registers an offense for mismatched puts 1; if test end registers an offense for mismatched var << if test end registers an offense for mismatched var << unless test end auto-corrects mismatched until test end auto-corrects mismatched class Test end auto-corrects mismatched puts 1; class Test end accepts matching var = if ... end auto-corrects mismatched while test end accepts matching puts 1; module ... end accepts matching var = case ... end registers an offense for mismatched var = if test end auto-corrects mismatched puts 1; until test end auto-corrects mismatched var = while test end auto-corrects mismatched var << while test end auto-corrects mismatched puts 1; unless test end accepts matching var << while ... end registers an offense for mismatched puts 1; until test end accepts matching puts 1; unless ... end auto-corrects mismatched var << unless test end registers an offense for mismatched class Test end auto-corrects mismatched var = case a when b end registers an offense for mismatched var = unless test end auto-corrects mismatched puts 1; while test end registers an offense for mismatched puts 1; class Test end accepts matching puts 1; class ... end registers an offense for mismatched var << while test end registers an offense for mismatched module Test end registers an offense for mismatched unless test end registers an offense for mismatched puts(if test end) auto-corrects mismatched var = until test end auto-corrects mismatched var = unless test end registers an offense for mismatched puts 1; unless test end accepts matching var = until ... end auto-corrects mismatched puts 1; if test end registers an offense for mismatched until test end registers an offense for mismatched var = while test end accepts matching puts 1; while ... end auto-corrects mismatched puts 1; module Test end auto-corrects mismatched case a when b end accepts matching var = unless ... end registers an offense for mismatched var << until test end auto-corrects mismatched unless test end accepts matching puts 1; until ... end registers an offense for mismatched var = until test end registers an offense for mismatched var = if test end auto-corrects mismatched var << until test end accepts matching var = while ... end registers an offense for mismatched case a when b end registers an offense for mismatched puts 1; module Test end auto-corrects mismatched module Test end registers an offense for mismatched if test end registers an offense for mismatched while test end accepts matching var = if ... end auto-corrects mismatched var << case a when b end auto-corrects mismatched puts(if test end) registers an offense for mismatched var << case a when b end registers an offense for mismatched puts 1; while test end registers an offense for mismatched var = case a when b end auto-corrects mismatched var = if test end auto-corrects mismatched var << if test end auto-corrects mismatched var = if test end accepts matching puts 1; case ... end accepts matching puts 1; if ... end auto-corrects mismatched if test end registers an offense for mismatched puts 1; case a when b end RuboCop::Cop::Style::EmptyLiteral Empty Array does not register an offense for ::Array.new with block does not registers an offense Array.new with block registers an offense for ::Array.new does not register Array.new with block in other block registers an offense for Array.new() auto-corrects Array.new in block in block does not register an offense for Array.new(3) registers an offense for Array.new Empty String registers an offense for ::String.new does not register an offense for ::String.new("top") does not register an offense for String.new("top") registers an offense for String.new registers an offense for String.new() when frozen string literals is enabled does not register an offense for String.new when double-quoted string literals are preferred registers an offense for ::String.new registers an offense for String.new Empty Hash auto-corrects Hash.new to {} in various contexts auto-correct Hash.new to {} as the first parameter to a method does not register an offense for ::Hash.new(3) registers an offense for Hash.new() does not register an offense for Hash.new(3) auto-correct Hash.new to {} as the only parameter to a method auto-correct changes Hash.new to {} and wraps all arguments in parentheses when it is the first argument to super registers an offense for Hash.new does not register an offense for Hash.new { block } auto-corrects Hash.new in block auto-correct changes Hash.new to {} and wraps it in parentheses when it is the only argument to super does not register an offense for ::Hash.new { block } registers an offense for ::Hash.new RuboCop::Cop::Style::RedundantSortBy autocorrects array.sort_by { |y| y } autocorrects array.sort_by do |x| x end autocorrects array.sort_by { |x| x } RuboCop::MagicComment returns true for frozen_string_literal when comment is # -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns "ascii-8bit" for encoding when comment is # -*- encoding : ascii-8bit -*- returns "utf-8" for encoding when comment is # coding: utf-8 returns true for frozen_string_literal when comment is # -*- coding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is # encoding: ascii-8bit frozen_string_literal: true returns "ascii-8bit" for encoding when comment is # encoding: ascii-8bit frozen_string_literal: true returns nil for frozen_string_literal when comment is # frozen_string_literal: true encoding: ascii-8bit returns true for frozen_string_literal when comment is # frozen_string_literal:true returns "invalid" for frozen_string_literal when comment is # frozen_string_literal: invalid returns true for frozen_string_literal when comment is # frozen-string-literal: true returns nil for frozen_string_literal when comment is # encoding: utf-8 returns nil for encoding when comment is # frozen_string_literal: invalid returns nil for frozen_string_literal when comment is # vim: filetype=python, fileencoding=ascii-8bit returns nil for encoding when comment is # -*- frozen-string-literal: true -*- returns nil for encoding when comment is # frozen-string-literal: true returns nil for frozen_string_literal when comment is # ENCODING: utf-8 returns nil for frozen_string_literal when comment is # coding: utf-8 returns nil for frozen_string_literal when comment is CSV.generate(encoding: Encoding::UTF_8) do |csv| returns nil for frozen_string_literal when comment is # coding: utf-8 returns nil for encoding when comment is # frozen_string_literal: false returns false for frozen_string_literal when comment is # frozen_string_literal: false returns "ascii-8bit" for encoding when comment is # coding: utf-8 -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for encoding when comment is # FROZEN-STRING-LITERAL: true returns nil for encoding when comment is # frozen_string_literal:true returns "utf-8" for encoding when comment is # eNcOdInG: utf-8 returns nil for frozen_string_literal when comment is # vim:fileencoding=utf-8 returns nil for frozen_string_literal when comment is # coding: utf-8 vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # -*- encoding : ascii-8bit -*- returns true for frozen_string_literal when comment is # FROZEN-STRING-LITERAL: true returns nil for encoding when comment is # fRoZeN-sTrInG_lItErAl: true returns true for frozen_string_literal when comment is # fRoZeN-sTrInG_lItErAl: true returns nil for encoding when comment is CSV.generate(encoding: Encoding::UTF_8) do |csv| returns nil for frozen_string_literal when comment is # eNcOdInG: utf-8 returns nil for encoding when comment is # frozen_string_literal: true returns true for frozen_string_literal when comment is # frozen_string_literal: true returns nil for frozen_string_literal when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns "ascii-8bit" for encoding when comment is # -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for frozen_string_literal when comment is # incoding: utf-8 returns "utf-8" for encoding when comment is # coding: utf-8 returns true for frozen_string_literal when comment is # coding: utf-8 -*- encoding: ASCII-8BIT; frozen_string_literal: true -*- returns nil for encoding when comment is # vim:fileencoding=utf-8 returns "ascii-8bit" for encoding when comment is #vim: filetype=ruby, fileencoding=ascii-8bit returns nil for encoding when comment is # incoding: utf-8 returns "ascii-8bit" for encoding when comment is # -*- coding: ASCII-8BIT; frozen_string_literal: true -*- returns "stateless-iso-2022-jp-kddi" for encoding when comment is # encoding: stateless-iso-2022-jp-kddi returns "utf-8" for encoding when comment is # coding: utf-8 vim: filetype=ruby, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # returns "utf-8" for encoding when comment is # encoding: utf-8 returns true for frozen_string_literal when comment is # frozen_string_literal: true returns "utf-8" for encoding when comment is # ENCODING: utf-8 returns nil for encoding when comment is # frozen_string_literal: true returns "ascii-8bit" for encoding when comment is # vim: filetype=ruby, fileencoding=ascii-8bit returns "ascii-8bit" for encoding when comment is # frozen_string_literal: true encoding: ascii-8bit returns nil for encoding when comment is # vim: filetype=ruby,fileencoding=ascii-8bit returns nil for encoding when comment is # returns nil for frozen_string_literal when comment is # vim: filetype=ruby,fileencoding=ascii-8bit returns "ascii-8bit" for encoding when comment is # vim: filetype=python, fileencoding=ascii-8bit returns nil for frozen_string_literal when comment is # encoding: stateless-iso-2022-jp-kddi returns nil for frozen_string_literal when comment is #vim: filetype=ruby, fileencoding=ascii-8bit returns true for frozen_string_literal when comment is # -*- frozen-string-literal: true -*- returns "ascii-8bit" for encoding when comment is # vim: filetype=ruby, fileencoding=ascii-8bit RuboCop::Cop::Bundler::OrderedGems When a gem that starts with a capital letter is not sorted registers an offense When gems are asciibetically sorted irrespective of _ does not register an offense When gems are not alphabetically sorted registers an offense When there are duplicated gems in group registers an offense When a gem declaration takes several lines registers an offense When the gemfile is empty does not register any offenses When gem groups is separated by multiline comment with TreatCommentsAsGroupSeparators: false registers an offense with TreatCommentsAsGroupSeparators: true accepts When each individual group of line is sorted does not register any offenses When each individual group of line is not sorted registers some offenses When gems have an inline comment, and not sorted registers an offense when a gem is referenced from a variable resets the sorting to a new block ignores the line When a gem is sorted but not so when disregarding _- by default registers an offense when ConsiderPunctuation is true does not register an offense When gems are alphabetically sorted does not register any offenses When a gem that starts with a capital letter is sorted does not register an offense RuboCop::Cop::Layout::EmptyLinesAroundClassBody when EnforcedStyle is empty_lines_except_namespace when only child is module requires no empty lines for namespace registers offense for namespace body ending with a blank registers offense for namespace body starting with a blank when has multiple child classes requires empty lines for namespace registers offenses for namespace body starting and ending without a blank when only child is class registers offenses for namespaced class body not starting with a blank registers offense for namespace body starting with a blank registers offense for namespace body ending with a blank requires no empty lines for namespace autocorrects beginning and end registers offenses for namespaced class body not ending with a blank when EnforcedStyle is no_empty_lines autocorrects singleton class body containing only a blank registers an offense for class body starting with a blank registers an offense for singleton class body ending with a blank registers an offense for class body ending with a blank when EnforcedStyle is ending_only registers an offense for an empty line at the end of a class ignores empty lines at the beginning of a class when EnforcedStyle is beginning_only registers an offense for an empty line at the end of a class ignores empty lines at the beginning of a class when EnforcedStyle is empty_lines_special when first child is NOT a method does not require blank line at the beginning of class body but requires blank line before first def definition and requires blank line at the end of class body source with blank lines registers an offense for class beginning with a blank line when class has a namespace requires no empty lines for namespace and does not require blank line at the beginning of class body but requires blank line at the end of class body source without blank lines registers and autocorrects the offenses source with constants registers and autocorrects the offenses source with blank lines registers and autocorrects the offenses source with comment before method definition registers an offense for class beginning with a blank line source without blank lines registers an offense for class not ending with a blank line when namespace has multiple children requires empty lines for namespace when first child is method requires blank line at the beginning and ending of class body when class has a namespace requires no empty lines for namespace but requires blank line at the beginning and ending of class body source with blank lines autocorrects the offenses source without blank lines registers and autocorrects the offenses source without blank lines registers an offense for class not beginning and ending with a blank line class with empty body without empty line does NOT register offenses with empty line does NOT register offenses class with constant and child class registers and autocorrects the offenses class with only constants registers and autocorrects the offenses when EnforcedStyle is empty_lines does not register offenses when specifying a superclass that breaks the line does not register offenses accepts singleton classes with an empty body accepts classes with an empty body registers an offense for singleton class body not starting or ending with a blank registers an offense for class body not starting or ending with a blank RuboCop::Formatter::SimpleTextFormatter #report_file when the offense is not corrected prints message as-is when the offense is marked as todo prints [Todo] along with message the file is outside of the current working directory prints as absolute path the file is under the current working directory prints as relative path when the offense is automatically corrected prints [Corrected] along with message #report_summary when a offense detected handles pluralization correctly when no files inspected handles pluralization correctly when 2 offenses are corrected handles pluralization correctly when 2 offenses detected handles pluralization correctly when a file inspected and no offenses detected handles pluralization correctly when an offense is corrected prints about correction RuboCop::Cop::Layout::EmptyLinesAroundMethodBody accepts method body starting with a line with spaces registers an offense for class method body ending with a blank registers an offense for method body ending with a blank is not fooled by single line methods registers an offense for class method body starting with a blank registers an offense for method body starting with a blank RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces can handle interpolation in a braceless hash literal registers an offense for hashes with no spaces if so configured registers an offense for correct + opposite accepts hash literals with no braces accepts hashes with spaces by default when EnforcedStyle is no_space registers an offense for opposite + correct accepts multiline hash registers an offense for hashes with spaces accepts multiline hash with comment accepts hashes with no spaces when EnforcedStyle is compact registers offenses for hashes with no spaces accepts multiline hash with comment registers an offense for opposite + correct doesn't register an offense for non-nested hashes with spaces accepts multiline hash registers an offense for nested hashes with spaces on Hash[{ x: 1 } => [1]] does not register an offense on { key: "{" } does not register an offense with space inside empty braces not allowed registers an offense for empty braces with space inside accepts empty braces with no space inside with space inside empty braces allowed accepts empty braces with space inside registers an offense for empty braces with no space inside RuboCop::Cop::Style::ParallelAssignment corrects when the expression uses a modifier rescue statement registers an offense when assigning to same variables in same order registers an offense when assigning to namespaced constants registers an offense with indices corrects when the right variable is a symbol array registers an offense with attributes when assignments must be reordered to preserve meaning corrects when assignments must be reordered to avoid changing meaning allows expanding an assigned var corrects when the number of left hand variables matches the number of right hand variables registers an offense when the right side has constants corrects parallel assignment inside rescue statements within method definitions corrects parallel assignment in unless statements registers an offense when the right side has multiple hashes corrects when using nested indentation corrects parallel assignment in if statements corrects parallel assignment in rescue statements within begin ... rescue allows more left variables than right variables corrects when using single indentation corrects when the expression uses a modifier unless statement corrects when assigning from multiple methods with blocks corrects when the right variable is an array registers an offense when the right side has mulitple arrays registers an offense with indices and attributes when assignments must be reordered to preserve meaning corrects when the expression uses a modifier until statement registers an offense when assignments must be reordered to preserve meaning corrects when the right variable is a word array corrects parallel assignment in while statements registers an offense when right hand side has maps with blocks registers an offense when the right side has mixed expressions registers an offense with indices of different variables allows more right variables than left variables corrects when assigning to method returns corrects when the expression uses a modifier rescue statement inside of a method corrects when the expression uses a modifier if statement inside a method corrects parallel assignment in until statements corrects when using constants corrects when the expression uses a modifier if statement registers an offense when right hand side has namespaced constants corrects when the expression uses a modifier while statement registers an offense when left hand side ends with an implicit variable corrects when the expression uses a modifier rescue statement as the only thing inside of a method registers an offense when the right side has methods with/without blocks corrects when the expression is missing spaces behaves like allowed allows assignment of: array = [1, 2, 3]; a, = array; behaves like allowed allows assignment of: a, = *'foo' using custom indentation width works with nesting works with rescue works with standard correction works with guard clauses behaves like allowed allows assignment of: a, = a behaves like allowed allows assignment of: a = *'foo' behaves like allowed allows assignment of: a, = *foo behaves like allowed allows assignment of: ary[0], ary[1], ary[2] = ary[1], ary[2], ary[0] behaves like allowed allows assignment of: a, b, c = *node, 1, 2 behaves like allowed allows assignment of: foo = [1, 2, 3]; a, b, c = foo; behaves like allowed allows assignment of: obj.attr1, obj.attr2 = obj.attr2, obj.attr1 behaves like allowed allows assignment of: self.a, self.b = b, a behaves like allowed allows assignment of: a, = 1 behaves like allowed allows assignment of: a, b, c = b, c, a behaves like allowed allows assignment of: a, *b = [1, 2, 3] behaves like allowed allows assignment of: a, b = foo() behaves like allowed allows assignment of: CONSTANT, = 1, 2 behaves like allowed allows assignment of: a, b = (a + b), (a - b) behaves like allowed allows assignment of: a, b, c = 1, 2, *node behaves like allowed allows assignment of: a, b = Float::INFINITY behaves like allowed allows assignment of: *a, b = [1, 2, 3] behaves like allowed allows assignment of: begin_token, end_token = CONSTANT behaves like allowed allows assignment of: a, b = *foo behaves like allowed allows assignment of: a = 1; b = 2; behaves like allowed allows assignment of: a = 1 behaves like allowed allows assignment of: a, b = b, a behaves like allowed allows assignment of: a, b = foo.map { |e| e.id } behaves like allowed allows assignment of: a = a behaves like allowed allows assignment of: a[0], a[1] = a[1], a[0] behaves like allowed allows assignment of: obj.attr1, ary[0] = ary[0], obj.attr1 behaves like allowed allows assignment of: self.a, self.b = self.b, self.a behaves like allowed allows assignment of: a, = 1, 2, 3 RuboCop::CLI does not register any offenses for an empty file registers an offense for a syntax error registers an offense for Parser warnings checks a given file with faults and returns 1 can process a file with an invalid UTF-8 byte sequence finds a file with no .rb extension but has a shebang line when errors are raised while processing files due to bugs displays an error message to stderr obsolete cops when configuration for TrailingComma is given fails with an error message when interrupted returns 130 configuration of target Ruby versions when configured with an unsupported ruby fails with an error message when configured with an unknown version fails with an error message rubocop:disable comment can disable selected cops in a code section can disable all cops in a code section can disable selected cops on a single line can disable all cops on a single line when --auto-correct-all is given does not trigger RedundantCopDisableDirective due to lines moving around Specify `--init` option to `rubocop` command when .rubocop.yml already exists fails with an error message when .rubocop.yml does not exist generate a .rubocop.yml file without using namespace can disable selected cops on a single line but prints a warning when not necessary causes an offense to be reported and there are no other offenses exits with error code and RedundantCopDisableDirective is disabled through department does not report RedundantCopDisableDirective offenses and RedundantCopDisableDirective is individually excluded does not report RedundantCopDisableDirective offenses and RedundantCopDisableDirective is individually disabled does not report RedundantCopDisableDirective offenses configuration from file allows the default configuration file as the -c argument fails when a configuration file specifies an invalid Severity works when a configuration file passed by -c specifies Exclude with strings cannot disable Syntax offenses can exclude directories relative to .rubocop.yml prefers a config file in ancestor directory to another in home uses the DefaultFormatter if another formatter is not specified works when a configuration file passed by -c specifies Exclude with regexp can exclude a typical vendor directory ignores excluded files can disable parser-derived offenses with warning severity only reads configuration in explicitly included hidden directories prints an error message for an unrecognized EnforcedStyle can exclude a vendor directory with an erroneous config file does not consider Include parameters in subdirectories can use an alternative max line length from a config file displays style guide URLs if DisplayStyleGuide is true prints an error for an unrecognized cop name in .rubocop.yml displays cop names if DisplayCopNames is false can be configured with project config to disable a certain error can be configured with option to disable a certain error shows an error if the input file cannot be found works when a configuration file specifies Severity for Metrics/ParameterLists and Layout/LineLength finds included files can be configured to merge a parameter that is a hash works when a cop that others depend on is disabled can have different config files in different directories can be configured to override a parameter that is a hash in a special case matches included/excluded files correctly when . argument is given excludes the vendor directory by default can exclude a vendor directory indirectly prints a warning for an unrecognized configuration parameter does not read files in excluded list works when a configuration file specifies Severity for Metrics/ParameterLists and Layout fails when a configuration file has invalid YAML syntax when obsolete MultiSpaceAllowedForOperators param is used displays a warning when configured for indented_internal_methods style indentation registers offense for normal indentation in class accepts indented_internal_methods style indentation registers offense for normal indentation in module when a value in a hash is overridden with nil acts as if the key/value pair was removed without using namespace can be configured with option to disable a certain error when MultilineMethodCallIndentation is used with aligned style and IndentationWidth parameter fails with an error message when --force-default-config option is specified when no config file specified ignores config file when config file specified with -c ignores config file when configuration is taken from $HOME/.rubocop.yml handles relative excludes correctly when run from project root when a file inherits from a higher level inherits relative excludes correctly when MultilineOperationIndentation is used with aligned style and IndentationWidth parameter fails with an error message when checking a correct file returns 0 when super is used with a block still returns 0 cops can exclude files based on config ignores excluded files unknown cop in configuration file is given prints the error and exists with code 2 when lines end with CR+LF reports an offense configuration of `require` unknown library is specified exits with 2 when given a file/directory that is not under the current dir and the Rakefile path is relative checks a Rakefile but Style/FileName does not report and the directory is relative checks a Rakefile but Style/FileName does not report and the Rakefile path is absolute checks a Rakefile but Style/FileName does not report and the directory is absolute checks a Rakefile but Style/FileName does not report style guide only usage via the config AllCops/StyleGuideCopsOnly when it is true skips cops that have no link to a style guide when it is false runs cops for rules regardless of any link to the style guide AllCops/DisabledByDefault when it is false runs all cops that are enabled in default configuration when it is true runs only the cop configured in .rubocop.yml via the cli option --only-guide-cops runs cops for rules that link to a style guide skips cops that have no link to a style guide overrides configuration of AllCops/StyleGuideCopsOnly RuboCop::Cop::Lint::ShadowedArgument method argument shadowing when a single argument is shadowed registers an offense when binding is used registers an offense when IgnoreImplicitReferences config option is set to true accepts when reassigning to splat variable does not register an offense and shadowed within a conditional registers an offense without specifying where the reassignment took place and was used before shadowing accepts and the conditional is nested within a lambda registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the conditional is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the conditional occurs after the reassignment registers an offense and the argument was not shadowed outside the conditional accepts and shadowed within a block registers an offense without specifying where the reassignment took place and the block is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the block is nested within a block registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the block occurs after the reassignment registers an offense and the argument was not shadowed outside the block accepts and was used before shadowing accepts when zsuper is used registers an offense when IgnoreImplicitReferences config option is set to true accepts when argument was shadowed by zsuper does not register an offense when argument was shadowed by zsuper registers an offense when a splat argument is shadowed registers an offense when argument was used in shorthand assignment does not register an offense and the argument is not used accepts when multiple arguments are shadowed and one of them shadowed within a lambda while another is shadowed outside registers an offense block argument shadowing when a block local variable is assigned but no argument is shadowed accepts when multiple arguments are shadowed and one of them shadowed within a lambda while another is shadowed outside registers an offense when a single argument is shadowed registers an offense when binding is used registers an offense when IgnoreImplicitReferences config option is set to true accepts and shadowed within a conditional registers an offense without specifying where the reassignment took place and the conditional is nested within a lambda registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the conditional occurs after the reassignment registers an offense and was used before shadowing accepts and the argument was not shadowed outside the conditional accepts and the conditional is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts when zsuper is used accepts and shadowed within a block registers an offense without specifying where the reassignment took place and the block is nested within a conditional registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and was used before shadowing accepts and the block is nested within a block registers an offense without specifying where the reassignment took place and the argument was used before shadowing accepts and the block occurs after the reassignment registers an offense and the argument was not shadowed outside the block accepts and the argument is not used accepts RuboCop::Cop::Style::Semicolon accepts one line empty module definitions registers an offense for semicolon at the end no matter what registers an offense for one line method with two statements accepts one line empty method definitions accepts one line empty class definitions accepts one line method definitions registers an offense for several expressions registers an offense for a semicolon at the beginning of a line accepts semicolon after params if so configured accept semicolons inside strings accepts semicolon before end if so configured registers an offense for a single expression when AllowAsExpressionSeparator is true accepts several expressions accepts one line method with two statements with a multi-expression line without a semicolon does not register an offense RuboCop::Cop::Style::ParenthesesAroundCondition does not blow up for empty if condition does not blow up when the condition is a ternary op is not confused by parentheses in subexpression registers an offense for parentheses around condition is not confused by leading parentheses in subexpression allows parens if the condition node is a modifier while op allows parens if the condition node is a modifier unless op allows parens if the condition node is a modifier if op allows parens if the condition node is a modifier until op accepts parentheses if there is no space between the keyword and (. does not blow up for empty unless condition accepts parentheses around condition in a ternary allows parens if the condition node is a modifier rescue op safe assignment is not allowed does not accept variable assignment in condition surrounded with parentheses does not accept element assignment in condition surrounded with parentheses parentheses in multiline conditions are allowed accepts parentheses around multiline condition registers an offense for parentheses in single line condition safe assignment is allowed accepts variable assignment in condition surrounded with parentheses accepts setter in condition surrounded with parentheses accepts element assignment in condition surrounded with parentheses parentheses in multiline conditions are not allowed registers an offense for parentheses around multiline condition RuboCop::Cop::Lint::EmptyEnsure registers an offense and corrects empty ensure does not register an offense for non-empty ensure RuboCop::Cop::Style::OptionalBooleanParameter registers an offense when defining class method with optional boolean arg registers an offense when defining method with multiple optional boolean args does not register an offense when defining method with keyword boolean arg registers an offense when defining method with optional boolean arg does not register an offense when defining method with optonal non-boolean arg does not register an offense when defining method without args RuboCop::Cop::AlignmentCorrector #correct within string literals does not insert whitespace with large column deltas with plain heredoc (<<) behaves like heredoc indenter does not change indentation of here doc bodies and end markers with heredoc in backticks (<<``) behaves like heredoc indenter does not change indentation of here doc bodies and end markers simple indentation with a negative column delta outdents with a positive column delta indents with single-line here docs does not indent body and end marker RuboCop::Cop::Layout::TrailingEmptyLines when EnforcedStyle is final_newline accepts final blank lines if they come after __END__ registers an offense for no final newline after assignment registers an offense for multiple blank lines in an empty file registers an offense for multiple trailing blank lines accepts final blank lines if they come after __END__ in empty file auto-corrects unwanted blank lines in an empty file auto-corrects unwanted blank lines registers an offense for no final newline after block comment auto-corrects even if some lines have space accepts final newline accepts an empty file when EnforcedStyle is final_blank_line registers an offense for no final newline registers an offense for multiple trailing blank lines auto-corrects unwanted blank lines accepts final blank line auto-corrects unwanted blank lines in an empty file auto-corrects missing newline registers an offense for multiple blank lines in an empty file auto-corrects missing blank line registers an offense for final newline RuboCop::Cop::Lint::RedundantStringCoercion accepts interpolation without #to_s registers an offense and corrects `to_s` in an interpolation with several expressions registers an offense and corrects `to_s` in interpolation does not explode on empty interpolation registers an offense and corrects an implicit receiver accepts #to_s with arguments in an interpolation RuboCop::Cop::Style::RedundantBegin accepts a def with a begin block after a statement auto-corrects when there are trailing comments doesn't modify spacing when auto-correcting accepts a defs with required begin block reports an offense for single line def with redundant begin block accepts a def with required begin block reports an offense for def with redundant begin block reports an offense for defs with redundant begin block >= ruby 2.5 accepts a stabby lambda with a begin-end accepts a block with a begin block after a statement registers an offense for a do-end block with redundant begin-end accepts super with block accepts a {} block with a begin-end < Ruby 2.5 accepts a do-end block with a begin-end RuboCop::Cop::Lint::ShadowingOuterLocalVariable when a block local variable has same name as an outer scope variable registers an offense when an outer scope variable is referenced in a block does not register an offense when multiple block arguments have a same name starts with "_" does not register an offense when a splat block argument has same name as an outer scope variable registers an offense when a method argument has same name as an outer scope variable does not register an offense when a block argument has same name "_" as outer scope variable "_" does not register an offense when multiple block arguments have same name "_" does not register an offense when a block argument has same name as an outer scope variable registers an offense when a block argument has different name with outer scope variables does not register an offense when a block block argument has same name as an outer scope variable registers an offense when an outer scope variable is reassigned in a block does not register an offense when a block argument has a same name starts with "_" as an outer scope variable does not register an offense RuboCop::Cop::Layout::AccessModifierIndentation when EnforcedStyle is set to outdent accepts private def indented to method depth in a class registers an offense and corrects private indented to method depth in singleton class accepts private def indented to method depth in a module registers offense and corrects private indented to method depth in a class accepts private def indented to method depth in class defined with Class.new accepts private with argument indented to method depth in a module registers an offense and corrects module_function indented to method depth in a module accepts private def indented to method depth in module defined with Module.new registers an offense and corrects private indented to method depth in class defined with Class.new accepts private with argument indented to method depth in module defined with Module.new accepts private with argument indented to method depth in a class accepts private def indented to method depth in singleton class accepts module fn def indented to method depth in a module accepts private with argument indented to method depth in class defined with Class.new accepts private indented to the containing class indent level accepts module fn with argument indented to method depth in a module accepts protected indented to the containing class indent level accepts private with argument indented to method depth in singleton class registers an offense and corrects misaligned access modifiers in nested classes registers an offense and corrects private indented to method depth in module defined with Module.new registers an offense and corrects private indented to method depth in a module when EnforcedStyle is set to indent registers an offense and corrects misaligned access modifiers in nested classes registers an offense and corrects misaligned private accepts properly indented protected registers an offense and corrects correct + opposite alignment accepts indented access modifiers with arguments in nested classes registers an offense and corrects opposite + correct alignment accepts an empty class accepts properly indented private in module defined with Module.new accepts methods with a body registers an offense and corrects misaligned protected accepts properly indented private registers an offense and corrects access modifiers in arbitrary blocks (PENDING: Failing in Debian - needs investigation) registers an offense and corrects misaligned private in class defined with Class.new registers an offense and corrects misaligned private in module defined with Module.new registers an offense and corrects misaligned private in module registers an offense and corrects misaligned module_function in module registers an offense and corrects misaligned private in a singleton class when 4 spaces per indent level are used accepts properly indented private when indentation width is overridden for this cop only accepts properly indented private RuboCop::Cop::Lint::ImplicitStringConcatenation when inside an array notes that the strings could be separated by a comma instead on adjacent string literals on the same line registers an offense when in a method call's argument list notes that the strings could be separated by a comma instead when the string literals contain newlines registers an offense does not register an offense for a single string on a string with interpolations does register an offense on a single string literal does not register an offense on adjacent string literals on different lines does not register an offense RuboCop::Cop::Style::Alias when EnforcedStyle is prefer_alias_method does not register an offense for alias in an instance_eval block registers an offense for alias with bareword args registers an offense for alias with symbol args does not register an offense for alias_method does not register an offense for alias with gvars when EnforcedStyle is prefer_alias registers an offense for alias_method in a module block registers an offense for alias_method in a class block registers an offense for alias with symbol args does not register an offense for alias with bareword args does not register an offense for alias_method with non-literal method call argument does not register an offense for alias_method in self.method def does not register an offense for alias_method with non-literal constant argument does not register an offense for alias in an instance_eval block registers an offense for alias_method at the top level does not register an offense for alias_method in a block does not register an offense for alias_method in a method def does not register an offense for alias_method with explicit receiver RuboCop::Cop::Layout::FirstArrayElementIndentation when array is argument to setter accepts correctly indented first element registers an offense and corrects incorrectly indented first element when array is operand registers an offense and corrects incorrectly indented first element accepts correctly indented first element registers an offense and corrects incorrectly indented ] when indentation width is overridden for this cop registers an offense and corrects incorrectly indented 1st element accepts correctly indented first element when EnforcedStyle is align_brackets accepts correctly indented first element accepts an empty array accepts a first element on the same line as the left bracket accepts single line array accepts several elements per line accepts multi-assignments with no brackets accepts multi-assignments with brackets registers an offense and corrects incorrectly indented ] when 'consistent' style is used registers an offense and corrects incorrect indentation registers an offense and corrects incorrectly indented 1st element when 'special_inside_parentheses' style is used registers an offense and corrects incorrect indentation when indentation width is overridden for this cop registers an offense and corrects indentation that does not match IndentationWidth accepts correctly indented first element when array is method argument and arguments are surrounded by parentheses and EnforcedStyle is consistent registers an offense and corrects incorrect indentation accepts normal indentation for first argument accepts normal indentation for second argument and EnforcedStyle is special_inside_parentheses accepts normal indentation for array within array accepts special indentation for first argument registers an offense and corrects 'consistent' indentation registers an offense and corrects 'align_brackets' indentation accepts special indentation for second argument when using safe navigation operator registers an offense and corrects 'consistent' indentation and argument are not surrounded by parentheses accepts single line array with brackets accepts a correctly indented multi-line array with brackets accepts bracketless array registers an offense and corrects incorrectly indented multi-line array with brackets when array is right hand side in assignment accepts correctly indented first element registers an offense and corrects incorrectly indented first element accepts multi-assignments with brackets accepts a first element on the same line as the left bracket accepts single line array accepts multi-assignments with no brackets accepts several elements per line accepts an empty array RuboCop::Cop::Commissioner #investigate traverses the AST and invoke cops specific callbacks stores all errors raised by the cops when given a source with parsing errors only calls on_other_file when a cop reports offenses returns all offenses found by the cops when passed :raise_error option re-raises the exception received while processing when given a force passes the input params to all cops/forces that implement their own #investigate method RuboCop::Cop::Style::FloatDivision EnforcedStyle is left_coerce registers offense for both coerce registers offense for right coerce with calculations registers offense for right coerce does not register offense for left coerce EnforcedStyle is fdiv registers offense for both coerce registers offense for left coerce with calculations registers offense for left coerce does not register offense on usage of fdiv registers offense for right coerce EnforcedStyle is right_coerce registers offense for left coerce with calculations registers offense for both coerce does not register offense for right coerce registers offense for left coerce EnforcedStyle is single_coerce registers offense for left coerce with calculations does not register offense for left coerce only registers offense for both coerce does not register offense for right coerce only RuboCop::Formatter::AutoGenConfigFormatter #report_file_as_mark when different severity offenses are detected prints highest level mark when a refactor convention offense is detected prints "C" when no offenses are detected prints "." when a refactor severity offense is detected prints "R" #finished calls #report_summary when any offenses are detected does not report offenses outputs report summary when no offenses are detected does not report offenses RuboCop::Cop::Layout::SpaceAfterMethodName registers offense and corrects class def with space before parenthesis accepts a def with arguments but no parentheses accepts a defs without arguments registers an offense and corrects def with space before the parenthesis accepts an assignment def with arguments but no parentheses accepts class method def with arguments but no parentheses registers offense and corrects assignment def with space before parenthesis accepts a def without arguments RuboCop::Cop::Style::RescueStandardError implicit accepts rescue modifier when rescuing in a begin block accepts rescuing a single error class other than StandardError, assigned to a variable accepts rescuing StandardError with other errors accepts rescuing a single error class other than StandardError accepts rescuing ::StandardError with other errors accpets rescuing no error class accepts rescuing no error class, assigned to a variable accepts rescuing StandardError with other errors, assigned to a variable when rescuing StandardError by itself registers an offense when the error is assigned to a variable registers an offense with ::StandardError registers an offense with ::StandardError registers an offense when rescuing in a method definition accepts rescuing StandardError with other errors accepts rescuing no error class, assigned to a variable accepts rescuing no error class accepts rescuing StandardError with other errors, assigned to a variable accepts rescuing a single error other than StandardError, assigned to a variable accepts rescuing a single error other than StandardError when rescuing StandardError by itself registers an offense when the error is assigned to a variable registers an offense explicit accepts rescue modifier when rescuing in a begin block accepts rescuing a single error other than StandardError accepts rescuing StandardError with other errors accepts rescuing a single error other than StandardErrorassigned to a variable accepts rescuing StandardError by itself accepts rescuing StandardError by itself, assigned to a variable accepts rescuing StandardError with other errors, assigned to a variable when calling rescue without an error class registers an offense when the error is assigned to a variable registers an offense when rescuing in a method definition accepts rescueing a single error other than StandardError, assigned to a variable accepts rescueing a single error other than StandardError accepts rescuing StandardError with other errors, assigned to a variable accepts rescuing StandardError by itself accepts rescuing StandardError with other errors accepts rescuing StandardError by itself, assigned to a variable when rescue is called without an error class registers an offense when the error is assigned to a variable registers an offense RuboCop::Cop::Style::RedundantFetchBlock with SafeForConstants: false does not register an offense when using `#fetch` with constant in the block with SafeForConstants: true does not register an offense when using `#fetch` with argument fallback registers an offense and corrects when using `#fetch` with Rational in the block registers an offense and corrects when using `#fetch` with String in the block and strings are frozen registers an offense and corrects when using `#fetch` with Symbol in the block registers an offense and corrects when using `#fetch` with Float in the block does not register an offense when using `#fetch` with `Rails.cache` registers an offense and corrects when using `#fetch` with Complex in the block registers an offense and corrects when using `#fetch` with Integer in the block registers an offense and corrects when using `#fetch` with constant in the block registers an offense and corrects when using `#fetch` with empty block does not register an offense when using `#fetch` with an argument in the block does not register an offense when using `#fetch` with interpolated Symbol in the block does not register an offense when using `#fetch` with String in the block and strings are not frozen RuboCop::Cop::Layout::SpaceBeforeComment accepts an EOL comment with a preceding space registers an offense and corrects missing space before an EOL comment accepts a doc comment accepts a comment that begins a line RuboCop::Cop::Lint::LiteralAsCondition accepts literal 1 in non-toplevel and/or registers an offense for literal 2.0 in && registers an offense for literal 2.0 in until registers an offense for literal {} in if accepts `true` literal in `while` registers an offense for literal :sym in case accepts array literal in case, if it has non-literal elements registers an offense for literal [1] in && registers an offense for literal 1 in case registers an offense for literal [1] in complex ! accepts literal :sym in non-toplevel and/or accepts `false` literal in post-loop `until` registers an offense for literal {} in while registers an offense for literal :sym in && registers an offense for literal :"#{a}" in complex ! registers an offense for literal 1 in while accepts literal :sym if it's not an and/or operand registers an offense for literal [1] in complex cond registers an offense for `!1` accepts literal 2.0 in non-toplevel and/or registers an offense for literal 2.0 in case registers an offense for literal [1] in post-loop while registers an offense for literal 2.0 in complex cond registers an offense for literal :"#{a}" in && registers an offense for literal :sym in complex ! registers an offense for literal {} in a when of a case without anything after case keyword registers an offense for literal 1 in a when of a case without anything after case keyword registers an offense for literal :sym in ! registers an offense for literal {} in complex ! registers an offense for `not 1` accepts `false` literal in `until` registers an offense for literal {} in until registers an offense for `not :"#{a}"` registers an offense for case with a primitive array condition registers an offense for `not 2.0` registers an offense for literal 2.0 in ! registers an offense for literal :sym in complex cond registers an offense for literal [1] in ! registers an offense for literal 2.0 in a when of a case without anything after case keyword accepts literal :"#{a}" in non-toplevel and/or registers an offense for literal {} in ! accepts array literal in case, if it has nested non-literal element registers an offense for literal [1] in until registers an offense for literal :sym in a when of a case without anything after case keyword registers an offense for literal :"#{a}" in complex cond accepts literal 2.0 if it's not an and/or operand registers an offense for literal :sym in until registers an offense for literal :"#{a}" in until registers an offense for literal {} in post-loop until accepts literal {} in non-toplevel and/or registers an offense for literal :"#{a}" in a when of a case without anything after case keyword registers an offense for literal 1 in ! registers an offense for literal :"#{a}" in case registers an offense for literal {} in post-loop while accepts dstr literal in case accepts literal 2.0 in a when of a case with something after case keyword registers an offense for literal [1] in while registers an offense for literal :sym in post-loop until registers an offense for literal {} in && registers an offense for `!{}` registers an offense for literal {} in case registers an offense for literal 1 in post-loop until registers an offense for literal [1] in a when of a case without anything after case keyword registers an offense for literal :"#{a}" in post-loop while registers an offense for `!:sym` registers an offense for literal :sym in post-loop while accepts literal [1] in a when of a case with something after case keyword registers an offense for literal 2.0 in post-loop while registers an offense for literal :"#{a}" in post-loop until registers an offense for literal {} in complex cond registers an offense for literal :sym in while accepts literal :sym in a when of a case with something after case keyword registers an offense for `not {}` registers an offense for literal 1 in complex cond accepts `true` literal in post-loop `while` registers an offense for literal :"#{a}" in while registers an offense for `!:"#{a}"` registers an offense for literal 2.0 in while registers an offense for literal 2.0 in if registers an offense for literal :sym in if registers an offense for literal :"#{a}" in ! accepts literal 1 in a when of a case with something after case keyword registers an offense for literal [1] in if registers an offense for `not [1]` accepts literal {} if it's not an and/or operand registers an offense for literal [1] in case registers an offense for literal 1 in && registers an offense for literal [1] in post-loop until accepts literal [1] in non-toplevel and/or registers an offense for literal 2.0 in complex ! registers an offense for literal 2.0 in post-loop until registers an offense for literal 1 in complex ! accepts literal :"#{a}" in a when of a case with something after case keyword registers an offense for literal 1 in if registers an offense for literal 1 in until registers an offense for literal 1 in post-loop while registers an offense for `![1]` accepts literal 1 if it's not an and/or operand accepts literal :"#{a}" if it's not an and/or operand registers an offense for `not :sym` accepts literal {} in a when of a case with something after case keyword registers an offense for `!2.0` registers an offense for literal :"#{a}" in if accepts literal [1] if it's not an and/or operand RuboCop::Cop::Style::RedundantSort does not register an offense when sort_by is not given a block does not register an offense when first is used before sort registers an offense when last is called on sort_by no block registers an offense when last is called on sort with comparator does not register an offense for sort!.first does not register an offense for sort_by!(&:something).last registers an offense when first is called on sort_by registers an offense when [0] is called on sort_by registers an offense when slice(0) is called on sort_by registers an offense when [](0) is called on sort registers an offense when last is called on sort_by registers an offense when first is called on sort_by no block registers an offense when at(0) is called on sort_by registers an offense when at(-1) is called with sort registers an offense when [](-1) is called on sort_by registers an offense when slice(-1) is called on sort_by registers an offense when last is called with sort does not register an offense when sort_by is used without first registers an offense when first is called with sort registers an offense when [-1] is called on sort does not register an offense when first has an argument does not register an offense when first is used without sort_by registers an offense when [0] is called on sort registers an offense when slice(0) is called on sort registers an offense when [-1] is called on sort_by when not taking first or last element does not register an offense when at(-2) is called on sort_by does not register an offense when [1] is called on sort >= Ruby 2.7 when using numbered parameter registers an offense and corrects when first is called on sort_by registers an offense and corrects when last is called on sort with comparator registers an offense and corrects when at(0) is called on sort_by RuboCop::Cop::Lint::OrderedMagicComments registers an offense and corrects when using `frozen_string_literal` magic comment is next of shebang does not register an offense when using `frozen_string_literal` magic comment only does not register an offense when using `encoding: Encoding::SJIS` Hash notation after`frozen_string_literal` magic comment does not register an offense when using `encoding` magic comment only does not register an offense when using `encoding` magic comment is first line does not register an offense when using `encoding` magic comment is next of shebang registers an offense and corrects when `coding` magic comment does not precede all other magic comments registers an offense and corrects when an `encoding` magic comment does not precede all other magic comments registers an offense and corrects when `-*- encoding : ascii-8bit -*-` magic comment does not precede all other magic comments RuboCop::Cop::Style::MutableConstant Strict: false allows method call assignments when assigning an array without brackets does not add brackets to %w() arrays adds brackets when auto-correcting behaves like immutable objects allows 1.5 to be ||= to a constant allows 1.5 to be assigned to a constant behaves like immutable objects allows :sym to be assigned to a constant allows :sym to be ||= to a constant behaves like immutable objects allows FOO + BAR to be ||= to a constant allows FOO + BAR to be assigned to a constant splat expansion expansion of a range registers an offense and corrects to use to_a.freeze with parentheses registers an offense and corrects to use to_a.freeze when assigning a range (irange) without parenthesis does not add parenthesis to range enclosed in parentheses adds parenthesis when auto-correcting behaves like mutable objects when assigning with ||= registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze behaves like mutable objects when assigning with = registers an offense for 'str' assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for 'str' assigned to a constant and corrects by adding .freeze behaves like mutable objects when assigning with ||= registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze behaves like immutable objects allows ::ENV['foo'] to be assigned to a constant allows ::ENV['foo'] to be ||= to a constant when assigning a range (erange) without parenthesis does not add parenthesis to range enclosed in parentheses adds parenthesis when auto-correcting when the constant is a frozen string literal when the frozen string literal comment is true behaves like immutable objects allows "#{a}" to be assigned to a constant allows "#{a}" to be ||= to a constant when the frozen string literal comment is false behaves like mutable objects when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when the frozen string literal comment is missing behaves like mutable objects when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze behaves like immutable objects allows 1 to be assigned to a constant allows 1 to be ||= to a constant behaves like mutable objects when assigning with = registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze behaves like immutable objects allows FOO - BAR to be ||= to a constant allows FOO - BAR to be assigned to a constant behaves like immutable objects allows 'foo' + 'bar' to be assigned to a constant allows 'foo' + 'bar' to be ||= to a constant behaves like mutable objects when assigning with = registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze behaves like immutable objects allows ENV['foo'] to be ||= to a constant allows ENV['foo'] to be assigned to a constant Strict: true allows calls to freeze freezes a heredoc when the frozen string literal comment is true behaves like immutable objects allows "#{a}" to be ||= to a constant allows "#{a}" to be assigned to a constant behaves like immutable objects allows ::OTHER_CONST to be ||= to a constant allows ::OTHER_CONST to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for "top#{1 + 2}" assigned to a constant and corrects by adding .freeze behaves like mutable objects when assigning with ||= registers an offense for 'str' assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for 'str' assigned to a constant and corrects by adding .freeze when assigning with multiple operator calls registers an offense and corrects with parens and freeze behaves like immutable objects allows ENV['foo'] to be assigned to a constant allows ENV['foo'] to be ||= to a constant when the frozen string literal comment is missing behaves like mutable objects when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze behaves like immutable objects allows OTHER_CONST to be assigned to a constant allows OTHER_CONST to be ||= to a constant behaves like immutable objects allows 1 to be assigned to a constant allows 1 to be ||= to a constant operators that produce unfrozen objects registers an offense when operating on multiple strings registers an offense when operating on a constant and a string behaves like immutable objects allows ::Struct.new to be assigned to a constant allows ::Struct.new to be ||= to a constant behaves like immutable objects allows Struct.new(:node) do def assignment? true end end to be ||= to a constant allows Struct.new(:node) do def assignment? true end end to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for { a: 1, b: 2 } assigned to a constant and corrects by adding .freeze behaves like immutable objects allows :sym to be ||= to a constant allows :sym to be assigned to a constant when the frozen string literal comment is false behaves like mutable objects when assigning with ||= registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for "#{a}" assigned to a constant and corrects by adding .freeze methods and operators that produce frozen objects accepts operating on a constant and an interger accepts operating on multiple floats accepts operating on multiple integers accepts comparison operators accepts assigning to an environment variable with a fallback accepts operating on a constant and a float accepts checking fixed size behaves like immutable objects allows ::ENV['foo'] to be assigned to a constant allows ::ENV['foo'] to be ||= to a constant behaves like immutable objects allows 1.5 to be assigned to a constant allows 1.5 to be ||= to a constant behaves like immutable objects allows Namespace::OTHER_CONST to be ||= to a constant allows Namespace::OTHER_CONST to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for [1, 2, 3] assigned to a constant and corrects by adding .freeze behaves like immutable objects allows Struct.new to be ||= to a constant allows Struct.new to be assigned to a constant behaves like mutable objects when assigning with = registers an offense for Something.new assigned to a constant and corrects by adding .freeze when assigning with ||= registers an offense for Something.new assigned to a constant and corrects by adding .freeze when assigning with an operator behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze behaves like operator methods registers an offense and corrects with parens and freeze when assigning an array without brackets does not add brackets to %w() arrays adds brackets when auto-correcting behaves like immutable objects allows ::Namespace::OTHER_CONST to be ||= to a constant allows ::Namespace::OTHER_CONST to be assigned to a constant behaves like mutable objects when assigning with ||= registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze when assigning with = registers an offense for %w(a b c) assigned to a constant and corrects by adding .freeze splat expansion expansion of a range registers an offense and corrects to use to_a.freeze with parentheses registers an offense and corrects to use to_a.freeze behaves like immutable objects allows Struct.new(:a, :b) to be assigned to a constant allows Struct.new(:a, :b) to be ||= to a constant RuboCop::Cop::Style::RedundantRegexpEscape with a single-line `//` regexp with an escaped ')' outside a character class does not register an offense with an escaped 'i' outside a character class does not register an offense with an escaped 'F' outside a character class does not register an offense with escaped slashes does not register an offense with an escaped 'X' outside a character class does not register an offense with an escaped 'l' inside a character class does not register an offense with a backreference does not register an offense with an escaped 'cc' inside a character class does not register an offense with an escaped 'Y' outside a character class does not register an offense with a nested character class then allowed escape does not register an offense with an escaped 'F' inside a character class does not register an offense with a free-spaced mode regex with a commented [ and ] does not register an offense with a commented redundant escape does not register an offense with redundant escape preceded by an escaped comment registers offenses and corrects with a commented redundant escape on a single line does not register an offense with an escaped 's' inside a character class does not register an offense with an escaped ' ' inside a character class does not register an offense with an escaped 'r' inside a character class does not register an offense with an escaped 'X' inside a character class does not register an offense with an escaped 'D' outside a character class does not register an offense with an escaped 'G' outside a character class does not register an offense with an escaped 'C-c' inside a character class does not register an offense with an escaped 'cc' outside a character class does not register an offense with an escaped 'N' outside a character class does not register an offense with an escaped 'u{0041}' inside a character class does not register an offense with an escaped 'n101' outside a character class does not register an offense with an escaped 'T' outside a character class does not register an offense with an escaped '}' inside a character class registers an offense and corrects with an escaped 'K' outside a character class does not register an offense with an escaped 'I' outside a character class does not register an offense with an escaped 'L' outside a character class does not register an offense with an escaped 'V' outside a character class does not register an offense with an escaped 'V' inside a character class does not register an offense with an escaped '?' inside a character class registers an offense and corrects with an escaped 'r' outside a character class does not register an offense with an escaped 'S' inside a character class does not register an offense with an escaped ']' inside a character class does not register an offense with an escaped 'q' inside a character class does not register an offense with an escaped 'U' inside a character class does not register an offense with an escaped '#' inside a character class does not register an offense with an escaped 'e' outside a character class does not register an offense with an escaped 'M-a' outside a character class does not register an offense with an escaped 'S' outside a character class does not register an offense with an escaped '*' inside a character class registers an offense and corrects with an escaped 'u0041' inside a character class does not register an offense with an escaped 'f' outside a character class does not register an offense with an escaped 'p{alpha}' outside a character class does not register an offense with an escaped 'W' inside a character class does not register an offense with an escaped 'f' inside a character class does not register an offense with an escaped 'Y' inside a character class does not register an offense with an escaped 'D' inside a character class does not register an offense with an escaped '-' outside a character class registers an offense and corrects with an escaped '*' outside a character class does not register an offense with an escaped 'z' outside a character class does not register an offense with an escaped 'm' outside a character class does not register an offense with an escaped 'L' inside a character class does not register an offense with an interpolation followed by redundant escapes registers offenses and corrects with an escaped 'P{alpha}' inside a character class does not register an offense with an escaped 'b' outside a character class does not register an offense with an escaped 'W' outside a character class does not register an offense with an escaped 'y' outside a character class does not register an offense with an escaped 'o' inside a character class does not register an offense with an escaped 'k' inside a character class does not register an offense with an escaped 'E' inside a character class does not register an offense with an escaped '}' outside a character class does not register an offense with an escaped 'E' outside a character class does not register an offense with an escaped 'n101' inside a character class does not register an offense with an escaped 'N' inside a character class does not register an offense with an escaped '?' outside a character class does not register an offense with an escaped 'd' outside a character class does not register an offense with an escaped 'h' outside a character class does not register an offense with an escaped 'k' outside a character class does not register an offense with an uppercase metacharacter inside a character class does not register an offense with an escaped 'g' inside a character class does not register an offense with an escaped 'u0041' outside a character class does not register an offense with an escaped '(' outside a character class does not register an offense with an escaped 'P{alpha}' outside a character class does not register an offense with an escaped 'w' inside a character class does not register an offense with an escaped 'x41' inside a character class does not register an offense with an escaped 'j' outside a character class does not register an offense with an escaped 'y' inside a character class does not register an offense with an escaped '\' outside a character class does not register an offense with an escaped ')' inside a character class registers an offense and corrects with an escaped 'B' outside a character class does not register an offense with an escaped '#' outside a character class does not register an offense with regexp options and a redundant escape registers offenses and corrects with an escaped 'l' outside a character class does not register an offense with an escaped '\' inside a character class does not register an offense with an escaped 'g' outside a character class does not register an offense with an escaped '|' inside a character class registers an offense and corrects with an escaped '+' outside a character class does not register an offense with an escaped interpolation inside a character class does not register an offense with an escaped 'w' outside a character class does not register an offense with an escaped '[' inside a character class does not register an offense with an escaped '[' outside a character class does not register an offense with an escaped 't' outside a character class does not register an offense with an escaped 'O' outside a character class does not register an offense with an interpolated unnecessary-escape regexp registers an offense and corrects with an escaped 'A' outside a character class does not register an offense with an escaped 'B' inside a character class does not register an offense with an escaped 'M-a' inside a character class does not register an offense with an escaped '-' inside a character class does not register an offense with an escaped 'b' inside a character class does not register an offense with an escaped 'u{0041}' outside a character class does not register an offense with an escaped 'o' outside a character class does not register an offense with an escaped 'd' inside a character class does not register an offense with an escaped 'v' inside a character class does not register an offense with an escaped 'H' inside a character class does not register an offense with an escaped '.' outside a character class does not register an offense with an uppercase metacharacter outside a character class does not register an offense with an escaped 'U' outside a character class does not register an offense with an escaped 'R' outside a character class does not register an offense with an escaped 'R' inside a character class does not register an offense with an escaped 'j' inside a character class does not register an offense with an escaped 'I' inside a character class does not register an offense with an escaped 'C-c' outside a character class does not register an offense with an escaped '{' outside a character class does not register an offense with an escaped '$' outside a character class does not register an offense with an escaped 'q' outside a character class does not register an offense with an escaped 'z' inside a character class does not register an offense with an escaped '(' inside a character class registers an offense and corrects with an escaped 'x41' outside a character class does not register an offense with an escaped 'Z' outside a character class does not register an offense with an escaped 'O' inside a character class does not register an offense with an escaped 'a' outside a character class does not register an offense with multiple escaped metachars inside a character class registers offenses and corrects with an escaped 'e' inside a character class does not register an offense with an escaped 'A' inside a character class does not register an offense with an escaped 'i' inside a character class does not register an offense with an escaped 'G' inside a character class does not register an offense with an escaped 'm' inside a character class does not register an offense with an escaped ']' outside a character class does not register an offense with an escape inside an interpolated string does not register an offense with an escaped ' ' outside a character class does not register an offense with an escaped 'Q' inside a character class does not register an offense with an escaped '{' inside a character class registers an offense and corrects with an escaped '^' inside a character class does not register an offense with a POSIX character class then disallowed escape inside a character class registers an offense and corrects with an escaped 'a' inside a character class does not register an offense with an escaped . inside a character class beginning with : registers an offense and corrects with a POSIX character class then allowed escape inside a character class does not register an offense with an escaped 'T' inside a character class does not register an offense with a character class and following escaped char does not register an offense with an escaped 'J' inside a character class does not register an offense with an escaped 'p{alpha}' inside a character class does not register an offense with an escaped 'v' outside a character class does not register an offense with an escaped interpolation outside a character class does not register an offense with an escaped 'h' inside a character class does not register an offense with a nested character class containing redundant escape registers an offense and corrects with an escaped 't' inside a character class does not register an offense with an escaped 'K' inside a character class does not register an offense with an escaped 'J' outside a character class does not register an offense with an escaped character class and following escaped char does not register an offense with an escaped 'Z' inside a character class does not register an offense with an escaped '|' outside a character class does not register an offense with an escaped 'Q' outside a character class does not register an offense with an escaped 's' outside a character class does not register an offense with an escaped '$' inside a character class registers an offense and corrects without escapes does not register an offense with an escaped '+' inside a character class registers an offense and corrects with an escaped '^' outside a character class does not register an offense with an escaped '.' inside a character class registers an offense and corrects with an escaped 'H' outside a character class does not register an offense with a single-line %r// regexp with escaped slashes does not register an offense without escapes does not register an offense with a single-line %r!! regexp with escaped delimiters outside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense with escaped delimiters inside a character-class does not register an offense without escapes does not register an offense with a single-line %r@@ regexp with escaped delimiters outside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense without escapes does not register an offense with escaped delimiters inside a character-class does not register an offense with a multi-line %r{} regexp with redundantly-escaped slashes registers an offense and corrects with a redundant escape after a line with comment registers an offense and corrects without escapes does not register an offense with a single-line %r^^ regexp without escapes does not register an offense with escaped delimiters and regexp options does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters outside a character-class does not register an offense with a single-line %r~~ regexp with escaped delimiters outside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense without escapes does not register an offense with escaped delimiters inside a character-class does not register an offense with a single-line %r__ regexp without escapes does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense with escaped delimiters outside a character-class does not register an offense with a single-line %r() regexp with escaped delimiters inside a character-class does not register an offense with escaped delimiters outside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense without escapes does not register an offense with a single-line %r{} regexp without escapes does not register an offense with an escaped { or } outside a character class does not register an offense with an escaped { or } inside a character class does not register an offense with redundantly-escaped slashes registers an offense and corrects with a single-line %r<> regexp with escaped delimiters outside a character-class does not register an offense with escaped delimiters inside a character-class does not register an offense with escaped delimiters and regexp options does not register an offense without escapes does not register an offense with a multi-line %r// regexp with escaped slashes does not register an offense without escapes does not register an offense RuboCop::Cop::Layout::ExtraSpacing when ForceEqualSignAlignment is true does not register alignment errors on outdented lines register offenses and correct consecutive attribute assignments which are not aligned register offenses and correct consecutive operator assignments which are not aligned does not register an offense if assignments are separated by blanks does not register offenses for multiple complex nested assignments does not register an offense when optarg equals is not aligned with assignment equals sign aligns the first assignment with the following assignment registers an offense and corrects consecutive aref assignments which are not aligned register offenses and correct complex nested assignments does not register an offense if assignments are aligned registers an offense and corrects consecutive assignments that are not aligned when AllowBeforeTrailingComments is true allows it doesn't interfere with AllowForAlignment being true such as aligning long assignment expressions that include line breaks allows it such as aligning = on lines where there are trailing comments allows it such as lining up assignments allows it such as aligning comments on non-adjacent lines allows it such as aligning tokens with empty line between allows it such as lining up different kinds of assignments allows it such as lining up assignments with empty lines and comments in between allows it such as aligning with the same character allows it being false such as aligning tokens with empty line between registers offense(s) such as lining up different kinds of assignments registers offense(s) such as aligning long assignment expressions that include line breaks registers offense(s) such as aligning = on lines where there are trailing comments registers offense(s) such as aligning comments on non-adjacent lines registers offense(s) such as lining up assignments registers offense(s) such as aligning with the same character registers offense(s) such as lining up assignments with empty lines and comments in between registers offense(s) false does not trigger on only one space before comment regsiters offense when AllowForAlignment is true ignores trailing whitespace registers an offense and corrects extra spacing before a unary plus in an argument list registers an offense and corrects double extra spacing in variable assignment accepts space between key and value in a hash with hash rockets registers an offense and corrects extra space before a float ignores whitespace at the beginning of the line registers an offense and corrects extra spacing in class inheritance ignores whitespace inside a string accepts aligned values of an implicit hash literal registers an offense and corrects alignment with token not preceded by space when spaces are present in a single-line hash literal registers an offense and corrects hashes with symbol keys registers an offense and corrects hashes with hash rockets with extra spacing for alignment purposes such as lining up assignments allows it such as aligning comments on non-adjacent lines allows it such as aligning tokens with empty line between allows it such as lining up different kinds of assignments allows it such as lining up assignments with empty lines and comments in between allows it such as aligning = on lines where there are trailing comments allows it such as aligning long assignment expressions that include line breaks allows it such as aligning with the same character allows it when AllowForAlignment is false ignores trailing whitespace registers an offense and corrects extra space before a float registers an offense and corrects double extra spacing in variable assignment accepts aligned values of an implicit hash literal accepts space between key and value in a hash with hash rockets registers an offense and corrects extra spacing in class inheritance registers an offense and corrects alignment with token not preceded by space ignores whitespace inside a string registers an offense and corrects extra spacing before a unary plus in an argument list ignores whitespace at the beginning of the line when spaces are present in a single-line hash literal registers an offense and corrects hashes with symbol keys registers an offense and corrects hashes with hash rockets with extra spacing for alignment purposes such as aligning comments on non-adjacent lines registers offense(s) such as lining up assignments with empty lines and comments in between registers offense(s) such as aligning = on lines where there are trailing comments registers offense(s) such as lining up different kinds of assignments registers offense(s) such as lining up assignments registers offense(s) such as aligning long assignment expressions that include line breaks registers offense(s) such as aligning tokens with empty line between registers offense(s) such as aligning with the same character registers offense(s) RuboCop::Cop::Layout::SpaceBeforeFirstArg for method calls without parentheses accepts + operator accepts setter call auto-corrects missing space registers an offense and corrects method call with two spaces before the first arg accepts multiple space containing line break registers an offense for method call with no spaces before the first arg accepts a method call with one space before the first arg when AllowForAlignment is false registers an offense and corrects method calls with aligned first arguments when using safe navigation operator registers an offense and corrects method call with two spaces before the first arg when a vertical argument positions are aligned auto-corrects missing space registers an offense when AllowForAlignment is true accepts method calls with aligned first arguments for method calls with parentheses accepts a method call with space after the left parenthesis accepts a method call without space RuboCop::Formatter::QuietFormatter #report_summary when a offense detected handles pluralization correctly when an offense is corrected prints about correction when a file inspected and no offenses detected handles pluralization correctly when 2 offenses are corrected handles pluralization correctly when 2 offenses detected handles pluralization correctly when no files inspected handles pluralization correctly #report_file when the offense is not corrected prints message as-is when the offense is automatically corrected prints [Corrected] along with message the file is under the current working directory prints as relative path the file is outside of the current working directory prints as absolute path RuboCop::Cop::Style::BlockComments registers an offense for block comments auto-corrects a block comment into a regular comment (without trailingnewline) accepts regular comments auto-corrects a block comment into a regular comment auto-corrects an empty block comment by removing it RuboCop::Cop::Lint::CircularArgumentReference circular argument references in ordinal arguments when the seemingly-circular default value is a method call does not register an offense when the method does not contain a circular argument reference does not register an offense when the method contains a circular argument reference registers an offense circular argument references in keyword arguments when the keyword argument is not circular, but calls a method of its own class with a self specification does not register an offense when the keyword argument is not circular, and calls a method does not register an offense when there are multiple offensive keyword arguments registers an offense when the keyword argument is not circular does not register an offense when the keyword argument is not circular, but calls a method of some other object with the same name does not register an offense when there is one circular argument reference registers an offense RuboCop::Cop::Style::MultilineTernaryOperator registers offense and corrects when the if branch and the else branch are on a separate line from the condition accepts a single line ternary operator expression registers an offense and corrects when the false branch is on a separate line registers an offense and corrects when everything is on a separate line RuboCop::Cop::Layout::FirstHashElementIndentation when the HashAlignment style is separator for : registers an offense and corrects incorrectly indented first pair with : registers an offense and corrects incorrectly indented } accepts correctly indented first pair when the HashAlignment style is separator for => registers an offense and corrects incorrectly indented first pair with => accepts correctly indented first pair registers an offense and corrects incorrectly indented } when hash is method argument and arguments are surrounded by parentheses and EnforcedStyle is consistent registers an offense and corrects incorrect indentation accepts normal indentation for second argument accepts normal indentation for first argument and EnforcedStyle is special_inside_parentheses accepts special indentation for first argument registers an offense and corrects 'consistent' indentation accepts special indentation for second argument registers an offense and corrects 'align_braces' indentation accepts normal indentation for hash within hash when using safe navigation operator registers an offense and corrects 'consistent' indentation and argument are not surrounded by parentheses accepts a correctly indented multi-line hash with braces registers an offense for incorrectly indented multi-line hash with braces accepts single line hash with braces accepts braceless hash when hash is argument to setter registers an offense and corrects incorrectly indented first pair accepts correctly indented first pair when hash is right hand side in assignment accepts single line hash registers an offense and corrects incorrectly indented first pair accepts a first pair on the same line as the left brace accepts several pairs per line accepts an empty hash accepts correctly indented first pair when indentation width is overridden for this cop registers an offense and corrects incorrectly indented first pair accepts correctly indented first pair when EnforcedStyle is align_braces accepts several pairs per line accepts a first pair on the same line as the left brace accepts single line hash accepts correctly indented first pair registers an offense and corrects incorrectly indented } accepts an empty hash when 'consistent' style is used registers an offense and correcs incorrect indentation when 'special_inside_parentheses' style is used registers an offense and corrects incorrect indentation when hash is operand registers an offense and corrects incorrectly indented first pair accepts correctly indented first pair registers an offense and corrects incorrectly indented } RuboCop::Cop::VariableForce::Assignment #meta_assignment_node when it is &&= operator assignment returns and_asgn node when it is multiple assignment returns masgn node when it is ||= operator assignment returns or_asgn node when it is += operator assignment returns op_asgn node .new when any other type node is passed raises error when an argument declaration node is passed raises error when an assignment node is passed does not raise error #operator when it is multiple assignment returns = when it is += operator assignment returns += when it is normal assignment returns = when it is ||= operator assignment returns ||= when it is &&= operator assignment returns &&= #name returns the variable name RuboCop::Cop::Style::MixinUsage does not register an offense when using inside nested module prepend does not register an offense when using inside class registers an offense when using outside class include registers an offense when using only `include` statement does not register an offense when using `include` in method definition inside module registers an offense when using outside class (used above) does not register an offense when using inside class doesn't register an offense when `include` call is a method argument registers an offense when using `include` in method definition outside class or module registers an offense when using outside class (used below) does not register an offense when using inside block does not register an offense when using outside class does not register an offense when using `include` in method definition inside class does not register an offense when using inside block and `if` condition is after `include` Multiple definition classes in one does not register an offense when using inside class Nested module registers an offense when using outside class extend does not register an offense when using inside class registers an offense when using outside class RuboCop::Cop::Layout::FirstMethodArgumentLineBreak ignores arguments listed on a single line registers an offense and corrects hash arg spanning multiple lines registers an offense and corrects hash arg without a line break before the first pair ignores methods without arguments ignores kwargs listed on a single line when the arguments are used in `super` ignores arguments without parens args listed on the first line registers an offense and corrects using safe navigation operator registers an offense and corrects registers an offense and corrects using `super` RuboCop::Cop::Layout::SpaceBeforeBlockBraces with space before empty braces allowed registers an offense and corrects empty braces accepts empty braces with outer space when EnforcedStyle is no_space registers an offense and corrects correct + opposite style registers an offense and corrects braces surrounded by spaces accepts left brace without outer space with `EnforcedStyle` of `Style/BlockDelimiters` accepts left brace without outer space with space before empty braces not allowed registers an offense and corrects empty braces accepts empty braces without outer space when EnforcedStyle is space accepts braces surrounded by spaces registers an offense and corrects opposite + correct style registers an offense and corrects left brace without outer space registers an offense and corrects multiline block where the left brace has no outer space with invalid value for EnforcedStyleForEmptyBraces fails with an error RuboCop::Cop::Style::RedundantCapitalW registers no offense for normal arrays of strings registers no offense for %w without interpolation registers an offense for misused %W does not register an offense for array of non-words registers an offense for misused %W with different bracket does not register an offense for array containing non-string registers no offense for %w with interpolation-like syntax registers no offense for normal arrays of strings with interpolation registers no offense for %W with special characters registers no offense for arrays with character constants registers no offense for %W with interpolation does not register an offense for array with one element does not register an offense for array with empty strings RuboCop::Cop::Badge can be converted to a string with the Department/CopName format exposes department name compares by value exposes cop name #qualified? says `Department/CopName` is qualified says `CopName` is not qualified .parse parses unqualified badge references parses Department/CopName syntax .for parses cop class name RuboCop::Cop::Generator #write_spec refuses to overwrite existing files generates a helpful starting spec file with the class filled in #write_source generates a helpful source file with the name filled in refuses to overwrite existing files #snake_case converts "RSpec" to snake_case converts "FooBar" to snake_case converts "Lint" to snake_case .new does not accept an unqualified cop #todo provides a checklist for implementing the cop compliance with rubocop generates a spec file that has no offense (PENDING: Temporarily skipped with xit) generates a cop file that has no offense (PENDING: Temporarily skipped with xit) #inject_config with version provided uses the provided version when it is the first in alphabetical order inserts the cop when it is the last in alphabetical order inserts the cop when it is the middle in alphabetical order inserts the cop RuboCop::Cop::Style::SingleLineMethods auto-corrects def with argument and no parentheses registers an offense for a single-line method auto-corrects defs with parentheses after method name auto-corrects def with argument in parentheses auto-corrects def with semicolon after method name does not crash on an method with a capitalized name auto-corrects def with semicolon before end accepts a multi-line method when AllowIfMethodIsEmpty is enabled accepts a single-line empty method when AllowIfMethodIsEmpty is disabled registers an offense for an empty method RuboCop::Cop::Style::SingleArgumentDig when without a receiver does not register an offense dig over a variable as caller with multiple arguments does not register an offense with single argument registers an offense and corrects unsuitable use of dig when using dig with splat operator does not register an offense dig over literal with multiple arguments does not register an offense with single argument registers an offense and corrects unsuitable use of dig when using dig with splat operator does not register an offense RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters accepts execute-string literals accepts other percent literals for x type and ["(", ")"] delimiters accepts literals without additional spaces registers an offense for literals with escaped and other spaces accepts literals with escaped spaces accepts spaces between entries registers an offense for unnecessary spaces registers an offense for spaces before final delimiter accepts multi-line literals registers an offense for spaces after first delimiter accepts newlines and additional following alignment spaces accepts multi-line literals within a method for w type and ["!", "!"] delimiters accepts literals with escaped spaces registers an offense for literals with escaped and other spaces accepts spaces between entries registers an offense for spaces after first delimiter accepts newlines and additional following alignment spaces accepts literals without additional spaces accepts multi-line literals within a method registers an offense for unnecessary spaces accepts multi-line literals registers an offense for spaces before final delimiter for i type and ["{", "}"] delimiters accepts newlines and additional following alignment spaces accepts literals without additional spaces accepts literals with escaped spaces registers an offense for spaces after first delimiter accepts multi-line literals accepts spaces between entries registers an offense for literals with escaped and other spaces accepts multi-line literals within a method registers an offense for unnecessary spaces registers an offense for spaces before final delimiter for W type and ["[", "]"] delimiters accepts multi-line literals registers an offense for spaces after first delimiter registers an offense for unnecessary spaces accepts literals without additional spaces registers an offense for literals with escaped and other spaces registers an offense for spaces before final delimiter accepts literals with escaped spaces accepts spaces between entries accepts newlines and additional following alignment spaces accepts multi-line literals within a method for i type and ["[", "]"] delimiters registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter accepts literals with escaped spaces registers an offense for literals with escaped and other spaces accepts newlines and additional following alignment spaces accepts literals without additional spaces registers an offense for unnecessary spaces accepts spaces between entries accepts multi-line literals accepts multi-line literals within a method for W type and ["!", "!"] delimiters registers an offense for literals with escaped and other spaces accepts multi-line literals accepts literals with escaped spaces registers an offense for unnecessary spaces registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter accepts multi-line literals within a method accepts literals without additional spaces accepts spaces between entries accepts newlines and additional following alignment spaces for w type and ["{", "}"] delimiters registers an offense for unnecessary spaces accepts spaces between entries registers an offense for literals with escaped and other spaces accepts literals without additional spaces registers an offense for spaces before final delimiter registers an offense for spaces after first delimiter accepts newlines and additional following alignment spaces accepts literals with escaped spaces accepts multi-line literals within a method accepts multi-line literals for i type and ["!", "!"] delimiters accepts newlines and additional following alignment spaces accepts literals with escaped spaces accepts multi-line literals within a method accepts literals without additional spaces registers an offense for unnecessary spaces registers an offense for spaces after first delimiter accepts multi-line literals registers an offense for literals with escaped and other spaces accepts spaces between entries registers an offense for spaces before final delimiter for w type and ["(", ")"] delimiters accepts newlines and additional following alignment spaces accepts literals without additional spaces accepts literals with escaped spaces registers an offense for unnecessary spaces registers an offense for spaces after first delimiter registers an offense for spaces before final delimiter accepts multi-line literals within a method accepts multi-line literals accepts spaces between entries registers an offense for literals with escaped and other spaces for I type and ["!", "!"] delimiters registers an offense for spaces after first delimiter accepts spaces between entries registers an offense for spaces before final delimiter registers an offense for unnecessary spaces accepts multi-line literals within a method accepts multi-line literals accepts newlines and additional following alignment spaces accepts literals with escaped spaces registers an offense for literals with escaped and other spaces accepts literals without additional spaces for x type and ["[", "]"] delimiters registers an offense for spaces after first delimiter accepts multi-line literals registers an offense for literals with escaped and other spaces accepts literals without additional spaces accepts spaces between entries registers an offense for unnecessary spaces accepts newlines and additional following alignment spaces accepts multi-line literals within a method registers an offense for spaces before final delimiter accepts literals with escaped spaces for I type and ["{", "}"] delimiters registers an offense for literals with escaped and other spaces registers an offense for spaces after first delimiter accepts literals with escaped spaces accepts multi-line literals within a method accepts multi-line literals accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter registers an offense for unnecessary spaces accepts spaces between entries accepts literals without additional spaces for I type and ["[", "]"] delimiters accepts newlines and additional following alignment spaces registers an offense for spaces before final delimiter accepts multi-line literals within a method registers an offense for unnecessary spaces accepts literals without additional spaces registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts literals with escaped spaces accepts multi-line literals accepts spaces between entries for w type and ["[", "]"] delimiters registers an offense for literals with escaped and other spaces registers an offense for spaces after first delimiter registers an offense for spaces before final delimiter registers an offense for unnecessary spaces accepts spaces between entries accepts newlines and additional following alignment spaces accepts multi-line literals accepts literals without additional spaces accepts multi-line literals within a method accepts literals with escaped spaces for I type and ["(", ")"] delimiters registers an offense for spaces before final delimiter accepts spaces between entries accepts literals without additional spaces accepts multi-line literals within a method accepts multi-line literals registers an offense for literals with escaped and other spaces registers an offense for unnecessary spaces registers an offense for spaces after first delimiter accepts literals with escaped spaces accepts newlines and additional following alignment spaces for x type and ["{", "}"] delimiters accepts multi-line literals accepts literals without additional spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces registers an offense for spaces after first delimiter registers an offense for unnecessary spaces registers an offense for spaces before final delimiter accepts spaces between entries registers an offense for literals with escaped and other spaces accepts literals with escaped spaces for W type and ["{", "}"] delimiters accepts literals without additional spaces registers an offense for spaces before final delimiter accepts multi-line literals registers an offense for literals with escaped and other spaces accepts multi-line literals within a method accepts newlines and additional following alignment spaces registers an offense for spaces after first delimiter registers an offense for unnecessary spaces accepts spaces between entries accepts literals with escaped spaces for x type and ["!", "!"] delimiters accepts spaces between entries registers an offense for unnecessary spaces accepts literals with escaped spaces accepts literals without additional spaces registers an offense for spaces before final delimiter accepts multi-line literals registers an offense for literals with escaped and other spaces accepts multi-line literals within a method registers an offense for spaces after first delimiter accepts newlines and additional following alignment spaces for i type and ["(", ")"] delimiters registers an offense for spaces after first delimiter registers an offense for literals with escaped and other spaces accepts multi-line literals within a method registers an offense for unnecessary spaces accepts literals without additional spaces registers an offense for spaces before final delimiter accepts multi-line literals accepts spaces between entries accepts newlines and additional following alignment spaces accepts literals with escaped spaces for W type and ["(", ")"] delimiters accepts multi-line literals within a method accepts literals with escaped spaces registers an offense for spaces after first delimiter registers an offense for unnecessary spaces accepts spaces between entries registers an offense for literals with escaped and other spaces registers an offense for spaces before final delimiter accepts literals without additional spaces accepts newlines and additional following alignment spaces accepts multi-line literals RuboCop::Cop::Style::IfWithSemicolon accepts without `else` branch can handle modifier conditionals registers an offense and corrects for one line if/;/end RuboCop::Cop::Metrics::ParameterLists accepts a lambda with more than 4 parameters accepts a method def with 4 parameters registers an offense for a method def with 5 parameters accepts a proc with more than 4 parameters When CountKeywordArgs is false does not count keyword arguments does not count keyword arguments without default values When CountKeywordArgs is true counts keyword arguments as well RuboCop::Cop::Style::ExplicitBlockArgument correctly corrects when method already has an explicit block argument registers an offense and corrects when block yields several first its arguments registers an offense and corrects when method contains multiple `yield`s does not register an offense when `yield` arguments is not a prefix of block arguments does not register an offense when `yield` is the sole block body registers an offense and corrects when `yield` inside block has no arguments does not register an offense when `yield` is not inside block correctly corrects when the method call has a trailing comma in its argument list registers an offense and corrects when block just yields its arguments RuboCop::Cop::Lint::ShadowedException multiple rescues accepts rescuing exceptions in order of level accepts many (>= 7) rescue groups registers an offense for two exceptions when there are multiple levels of exceptions in the same rescue registers an offense rescuing Exception before an unknown exceptions accepts rescuing custom exceptions in multiple rescue groups accepts rescuing a known exception before an unknown exceptions registers an offense rescuing out of order exceptions when there is an ensure accepts rescuing a known exception after an unknown exceptions accepts rescuing a known exception between unknown exceptions registers an offense when a higher level exception is rescued before a lower level exception when there are multiple exceptions rescued in a group ignores expressions of non-const registers an offense when a higher level exception is rescued before a lower level exception accepts rescuing exceptions in order of level with multiple exceptions in a group with custom exceptions accepts rescuing exceptions in order of level with multiple exceptions in a group splat arguments accepts splat arguments passed to multiple rescues registers an offense for splat arguments rescued after rescuing Exception registers an offense for splat arguments rescued after rescuing a known exception last rescue does not specify exception class highlights range ending at rescue keyword exceptions from different ancestry chains accepts rescuing exceptions in another order accepts rescuing exceptions in one order single rescue accepts rescuing a single exception accepts rescue containing multiple same error code exceptions accepts an empty rescue accepts rescuing a single exception that is assigned to a variable accepts rescuing a multiple exceptions that are not ancestors that have an else rescue a exception without causing constant name deprecation warning accepts rescuing a single custom exception accepts rescuing a custom exception and a standard exception registers an offense rescuing exceptions that are ancestors of each other registers an offense for the same exception multiple times accepts splat arguments passed to rescue accepts rescuing multiple custom exceptions accepts rescuing a single exception that has an ensure accepts rescuing a single exception that has an else registers an offense rescuing Exception with any other error or exception when there are multiple levels of exceptions in the same rescue registers an offense for more than two exceptions registers an offense for two exceptions modifier rescue accepts rescue in its modifier form RuboCop::Cop::Style::Not parenthesizes when `not` is applied to a ternary op parenthesizes when `not` is applied to and does not register an offense for ! auto-corrects "not" with ! parenthesizes when `not` is applied to or registers an offense for not auto-corrects "not" followed by parens with ! parenthesizes when `not` would change the meaning of a binary exp uses the reverse operator when `not` is applied to a comparison RuboCop::Cop::MessageAnnotator #annotate when the output format is JSON returns the message unannotated with options on returns an annotated message with default options returns the message #urls returns an empty array if the reference url is blank returns multiple reference urls returns style guide and reference url when they are specified returns an empty array without StyleGuide URL returns reference url when it is specified returns style guide url when it is specified with style guide url when a base URL is specified does not specify a URL if a cop does not have one can use a path-based setting can accept relative paths if base has a full path combines correctly with a target-based setting allows absolute URLs in the cop config when a department other than AllCops is specified returns style guide url when it is specified when StyleGuide is not set in the config does not add style guide url when StyleGuide is set in the config adds style guide url RuboCop::Cop::Style::NegatedUnless does not blow up for empty unless condition does not blow up for empty if condition does not blow up on a negated ternary operator does not blow up for ternary ops with “both” style registers an offense for unless with exclamation point condition accepts an unless where only part of the condition is negated registers an offense for unless with "not" condition autocorrects by replacing parenthesized unless not with if accepts an unless where the condition is doubly negated accepts an unless/else with negative condition with “prefix” style registers an offense for prefix does not register an offense for postfix with “postfix” style does not register an offense for prefix registers an offense for postfix RuboCop::Cop::Lint::AmbiguousOperator with `+` unary operator in the first argument without parentheses without whitespaces on the right of the operator registers an offense and corrects without whitespaces on the right of the operator when a method with no arguments is used in advance registers an offense and corrects with a whitespace on the right of the operator does not register an offense with parentheses around the operator does not register an offense with a keyword splat operator in the first argument with parentheses around the keyword splat operator does not register an offense without parentheses without whitespaces on the right of the operator registers an offense and corrects with a whitespace on the right of the operator does not register an offense with a splat operator in the first argument without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator registers an offense and corrects with parentheses around the splatted argument does not register an offense with `-` unary operator in the first argument with parentheses around the operator does not register an offense without parentheses without whitespaces on the right of the operator registers an offense and corrects with a whitespace on the right of the operator does not register an offense with a block ampersand in the first argument with parentheses around the block argument does not register an offense without parentheses with a whitespace on the right of the operator does not register an offense without whitespaces on the right of the operator registers an offense and corrects RuboCop::PathUtil #absolute? returns a falsey value for a path beginning with a directory name returns a truthy value for a path beginning with slash #relative_path builds paths relative to PWD by default as a stop-gap supports custom base paths #match_path? does not match file in a subdirectory does not match dir/** for file in hidden dir matches regexps matches dir/** for hidden file matches glob expressions does not match invalid UTF-8 paths matches strings to the full path RuboCop::Cop::Lint::RedundantWithObject registers an offense and corrects when using ary.each_with_object do-end block without parentheses registers an offense and corrects when using `ary.each.with_object([]) { |v| v }` an object is used as a block argument registers an offense and corrects when using `ary.each_with_object { |v| v }` registers an offense and corrects when using ary.each_with_object([]) do-end block when missing argument to `each_with_object` does not register an offense when block has 2 arguments does not register an offense when block has 1 argument RuboCop::Cop::Style::NilComparison configured with comparison preferred registers an offense for nil? configured with predicate preferred registers an offense for === nil registers an offense for == nil RuboCop::Cop::Lint::NonLocalExitFromIterator allows return in define_method allows return with value allows return in define_singleton_method when the return is within a nested method definition allows return in an instance method definition allows return in a class method definition when lambda is inside of block followed by method chain allows when block is not followed by method chain allows when block in middle of nest is followed by method chain registers offenses when block is followed by method chain and has multiple arguments registers an offense and has no argument allows and has single argument registers an offense when block is lambda allows RuboCop::Cop::Lint::NestedMethodDefinition registers an offense for a nested singleton method definition does not register offense for nested definition inside module_eval does not register offense for nested definition inside Module.new does not register offense for nested definition inside class_exec does not register offense for nested definition inside Class.new does not register offense for nested definition inside ::Module.new registers an offense for a nested class method definition registers an offense for a nested method definition does not register offense for nested definition inside instance_exec does not register offense for nested definition inside ::Struct.new registers an offense for a nested method definition inside lambda does not register offense for nested definition inside class shovel does not register offense for nested definition inside Struct.new does not register offense for nested definition inside module_exec does not register offense for nested definition inside ::Class.new does not register an offense for a lambda definition inside method does not register offense for definition of method on local var does not register offense for nested definition inside instance_eval does not register offense for nested definition inside class_eval RuboCop::Cop::Lint::Syntax .offenses_from_processed_source with a diagnostic error returns an offense with --display-cop-names option returns an offense with cop name with --auto-correct-all --disable-uncorrectable options returns an offense with a parser error returns an offense with --display-cop-names option returns an offense with cop name RuboCop::Cop::Layout::SpaceBeforeSemicolon registers an offense and corrects space before semicolon registers an offense and corrects more than one space before a semicolon does not register an offense for no space before semicolons inside block braces when EnforcedStyle for SpaceInsideBlockBraces is space accepts a space between an opening brace and a semicolon behaves like common behavior accepts no space between an opening brace and a semicolon when EnforcedStyle for SpaceInsideBlockBraces is no_space registers an offense and corrects a space between an opening brace and a semicolon behaves like common behavior accepts no space between an opening brace and a semicolon RuboCop::Cop::Layout::AssignmentIndentation registers an offense for incorrectly indented rhs whenmultiple assignment with line breaks on each line allows a properly indented rhs with fullwidth characters registers an offense for incorrectly indented rhs when multiple assignment registers an offense for multi-lhs allows assignments that do not start on a newline allows a properly indented rhs registers an offense for incorrectly indented rhs ignores comparison operators when indentation width is overridden for this cop only allows a properly indented rhs auto-corrects indentation RuboCop::Cop::Layout::SpaceAroundKeyword behaves like missing after auto-corrects registers an offense for missing space after keyword in `begin ensure"" end` behaves like missing before registers an offense for missing space before keyword in `case a; when b; ""else end` auto-corrects behaves like accept after accepts `(` after keyword in `next(1)` behaves like missing before registers an offense for missing space before keyword in `begin ""ensure end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `begin "a"end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `begin+1 end` behaves like missing before auto-corrects registers an offense for missing space before keyword in `if a; ""else end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `next""` behaves like accept after accepts `(` after keyword in `return(1)` behaves like missing before auto-corrects registers an offense for missing space before keyword in `if a; "b"end` behaves like missing before auto-corrects registers an offense for missing space before keyword in `while 1 do "x"end` behaves like accept after accepts `(` after keyword in `not(1)` behaves like missing before registers an offense for missing space before keyword in `1until ""` auto-corrects behaves like accept after accepts `.` after keyword in `begin end.inspect` behaves like missing after auto-corrects registers an offense for missing space after keyword in `begin"" end` behaves like accept after accepts `(` after keyword in `break(1)` behaves like missing after auto-corrects registers an offense for missing space after keyword in `1 or(2)` behaves like missing after registers an offense for missing space after keyword in `END{}` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `case a when""; end` behaves like accept around accepts `[]` around keyword in `[begin end]` behaves like accept before accepts `==` before keyword in `a==begin end` behaves like missing after registers an offense for missing space after keyword in `if a; elsif""; end` auto-corrects behaves like missing after registers an offense for missing space after keyword in `defined?1` auto-corrects behaves like accept after accepts `(` after keyword in `super(1)` behaves like missing before registers an offense for missing space before keyword in `""rescue a` auto-corrects behaves like missing before registers an offense for missing space before keyword in `case ""when a; end` auto-corrects behaves like missing before registers an offense for missing space before keyword in `for x in [] do "x"end` auto-corrects behaves like missing after registers an offense for missing space after keyword in `super""` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `until 1 do"x" end` behaves like accept before accepts `!` before keyword in `!super.method` behaves like accept before accepts `-` before keyword in `a-begin end` behaves like missing before registers an offense for missing space before keyword in `begin rescue; ""else end` auto-corrects behaves like missing before registers an offense for missing space before keyword in `until 1do end` auto-corrects behaves like accept around accepts `,` around keyword in `a 1,next,1` behaves like accept before accepts `/` before keyword in `a/begin end` behaves like missing after registers an offense for missing space after keyword in `1 and(2)` auto-corrects behaves like missing before registers an offense for missing space before keyword in `1and 2` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `if a; elsif""; end` behaves like missing before registers an offense for missing space before keyword in `while 1do end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `while 1 do"x" end` behaves like accept after accepts `\` after keyword in `test do\ end` behaves like accept after accepts `\n` after keyword in `test do end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `if a then"" end` behaves like accept before accepts `!` before keyword in `!yield` behaves like accept before accepts `**` before keyword in `a**begin end` behaves like accept before accepts `=*` before keyword in `a=*begin end` behaves like accept before accepts `||` before keyword in `a||begin end` behaves like accept before accepts `*` before keyword in `a*begin end` behaves like accept around accepts `()` around keyword in `(next)` behaves like missing after registers an offense for missing space after keyword in `if a; else"" end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `unless""; end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `return""` behaves like missing before registers an offense for missing space before keyword in `until 1 do "x"end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `if a; ""elsif b; end` behaves like missing before registers an offense for missing space before keyword in `a "b"do end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `if ""then a end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `yield""` behaves like missing after auto-corrects registers an offense for missing space after keyword in `a rescue""` behaves like accept after accepts `.` after keyword in `yield.method` behaves like missing after registers an offense for missing space after keyword in `break""` auto-corrects behaves like missing after registers an offense for missing space after keyword in `case"" when 1; end` auto-corrects behaves like missing after auto-corrects registers an offense for missing space after keyword in `BEGIN{}` behaves like missing before auto-corrects registers an offense for missing space before keyword in `1while ""` behaves like accept before accepts `&&` before keyword in `a&&begin end` behaves like accept around accepts `{}` around keyword in `loop {next}` behaves like accept before accepts `>` before keyword in `a>begin end` behaves like missing before auto-corrects registers an offense for missing space before keyword in `a do "a"end` behaves like missing after registers an offense for missing space after keyword in `a do|x| end` auto-corrects behaves like accept before accepts `|` before keyword in `loop { |x|break }` behaves like accept after accepts `::` after keyword in `super::ModuleName` behaves like accept after accepts `[` after keyword in `yield[1]` behaves like missing after registers an offense for missing space after keyword in `super{}` auto-corrects behaves like accept after accepts `{` after keyword in `loop{}` behaves like accept after accepts `#` after keyword in `next#comment` behaves like accept after accepts `[` after keyword in `super[1]` behaves like missing after registers an offense for missing space after keyword in `not""` auto-corrects behaves like accept after accepts `+` after keyword in `+begin end` behaves like accept before accepts `+` before keyword in `a+begin end` behaves like accept around accepts `[]` around keyword in `a[begin end]` behaves like missing before auto-corrects registers an offense for missing space before keyword in `if a; ""elsif b; end` behaves like accept before accepts `=` before keyword in `a=begin end` behaves like accept after accepts `(` after keyword in `defined?(1)` behaves like missing after registers an offense for missing space after keyword in `case a; when b; else"" end` auto-corrects behaves like accept after accepts `(` after keyword in `yield(1)` behaves like missing after auto-corrects registers an offense for missing space after keyword in `if""; end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `1 while""` behaves like accept around accepts `{}` around keyword in `{a: begin end}` behaves like accept around accepts `;` around keyword in `test do;end` behaves like missing after registers an offense for missing space after keyword in `for x in [] do"x" end` auto-corrects behaves like missing before auto-corrects registers an offense for missing space before keyword in `1or 2` behaves like accept around accepts `{}` around keyword in `"#{begin end}"` behaves like missing before registers an offense for missing space before keyword in `for x in []do end` auto-corrects behaves like accept after accepts `rescue` after keyword in `begin; rescue(Error); end` behaves like missing after auto-corrects registers an offense for missing space after keyword in `1 until""` &. behaves like accept after accepts `&.` after keyword in `super&.foo` behaves like accept after accepts `&.` after keyword in `yield&.foo` behaves like missing after registers an offense for missing space after keyword in `begin rescue; else"" end` auto-corrects behaves like accept before accepts `<` before keyword in `a= Ruby 2.7 with case match accepts case match without else accepts correctly aligned case/when/else registers an offense for misaligned else accepts correctly aligned empty else with def/rescue/else/ensure/end registers an offense for misaligned else accepts a correctly aligned else with def/rescue/else/end registers an offense for misaligned else accepts a correctly aligned else with begin/rescue/else/ensure/end accepts a correctly aligned else registers an offense for misaligned else >= Ruby 2.5 ensure/rescue/else in Block Argument accepts a correctly aligned else registers an offense for misaligned else with if statement registers an offense for misaligned elsif registers an offense for misaligned else accepts an if/else branches with rescue clauses accepts indentation after else when if is on new line after assignment accepts a correctly aligned if/elsif/else/end accepts a one line if statement for a file with byte order mark accepts a correctly aligned if/elsif/else/end with assignment when alignment style is variable and end is aligned with keyword registers an offense for an if with element assignment registers an offense for an if registers offenses for an if with setter and end is aligned with variable accepts an if/else accepts an if-elsif-else with end aligned with setter accepts an if/else with chaining after the end accepts an if/else with chaining with a block after the end accepts an if-else with end aligned with setter accepts an if with end aligned with element assignment when alignment style is keyword by choice and end is aligned with keyword accepts an until in assignment accepts an if/else in assignment accepts an if/else in assignment on next line accepts a while in assignment accepts an if in assignment and end is aligned with variable registers an offense for an if RuboCop::Cop::Style::WhileUntilModifier behaves like condition modifier cop for a multiline 'until' corrects it when assignment is in body accepts it if body spans more than one line accepts it when condition has local variable assignment accepts an empty body corrects it if result fits in one line accepts it if single line would not fit on one line accepts multiline condition in modifier form registers an offense when Layout/LineLength is disabled registers an offense even for a long modifier statement behaves like condition modifier cop for a multiline 'while' corrects it if result fits in one line accepts it if body spans more than one line accepts an empty body corrects it when assignment is in body accepts it when condition has local variable assignment accepts it if single line would not fit on one line when Layout/LineLength is disabled registers an offense even for a long modifier statement accepts multiline condition in modifier form registers an offense RuboCop::Cop::Style::FrozenStringLiteralComment never allows not having a frozen string literal comment under an encoding comment accepts not having not having a frozen string literal comment under a shebang registers an offense for a disabled frozen string literal comment below shebang above an encoding comments registers an offense for a frozen string literal comment below shebang above an encoding comments registers an offense for a frozen string literal comment below an encoding comment registers an offense for a frozen string literal comment on the top line accepts an empty source accepts not having a frozen string literal comment on the top line accepts a source with no tokens allows not having a frozen string literal comment under a shebang and an encoding comment accepts a frozen string literal comment under ruby code registers an offense for a disabled frozen string literal below an encoding comment registers an offense for a frozen string literal comment below shebang and encoding comments registers an offense for a frozen string literal comment below a shebang comment registers an offense for a disabled frozen string literal below a shebang comment registers an offense for having a frozen string literal comment after other comments registers an offense for a disabled frozen string literal comment below shebang and encoding comments registers an offense for a disabled frozen string literal comment on the top line always_true accepts a frozen string literal comment below shebang above an encoding comments accepts a frozen string literal comment below shebang, an encoding comment, and extra space accepts a frozen string literal on the top line registers an offense for having a frozen string literal comment under ruby code registers an offense for a disabled frozen string literal comment below shebang and encoding comments registers an offense for an extra first empty line registers an offense for not having a frozen string literal comment under an encoding comment registers an offense for a disabled frozen string literal below an encoding comment registers an offense for a disabled frozen string literal comment after other comments registers an offense for a disabled frozen string literal on the top line registers an offense for arbitrary tokens accepts a frozen string literal comment after other comments registers an offense for arbitrary tokens below shebang and encoding comments registers an offense for arbitrary tokens below an encoding comment registers an offense for arbitrary tokens below a shebang comment registers an offense for not having a frozen string literal comment under a shebang, an encoding comment, and extra space registers an offense for a disabled frozen string literal below a shebang comment registers an offense for a disabled frozen string literal comment below shebang, an encoding comment, and extra space accepts a source with no tokens accepts a frozen string literal below an encoding comment accepts a frozen string literal comment under shebang with no other code registers an offense for arbitrary tokens below shebang above an encoding comments accepts an emacs style combined magic comment accepts a frozen string literal below a shebang comment registers an offense for not having a frozen string literal comment on the top line registers an offense for a disabled frozen string literal accepts a frozen string literal comment below an encoding comment and extra space registers an offense for not having a frozen string literal comment under an encoding comment and extra space registers an offense for arbitrary tokens under shebang with no other code registers an offense for arbitrary tokens above an empty line registers an offense for not having a frozen string literal comment under a shebang and an encoding comment registers an offense for a disabled frozen string literal comment below an encoding comment and extra space registers an offense for not having a frozen string literal comment under shebang with no other code registers an offense for arbitrary tokens below an encoding comment and extra space registers an offense for a disabled frozen string literal comment below shebang above an encoding comments accepts a frozen string literal comment below shebang and encoding comments registers an offense for arbitrary tokens below shebang, an encoding comment, and extra space registers an offense for a disabled frozen string literal above an empty line accepts an empty source registers an offense for a disabled frozen string literal comment under shebang with no other code always accepts a frozen string literal comment below shebang above an encoding comments accepts a frozen string literal below an encoding comment registers an offense for not having a frozen string literal comment under an encoding comment separated by a newline registers an offense for not having a frozen string literal comment when there is only a shebang accepts a frozen string literal below a shebang comment accepts a disabled frozen string literal below a shebang comment accepts a disabled frozen string literal below an encoding comment registers an offense for not having a frozen string literal comment under a shebang and an encoding comment registers an offense for not having a frozen string literal comment under a shebang registers an offense for having a frozen string literal comment under ruby code accepts a frozen string literal comment below shebang and encoding comments accepts a disabled frozen string literal comment below shebang and encoding comments registers an offense for not having a frozen string literal comment on the top line accepts a source with no tokens accepts an empty source accepts an emacs style combined magic comment accepts a disabled frozen string literal on the top line registers an offense for an extra first empty line accepts a frozen string literal on the top line registers an offense for not having a frozen string literal comment under an encoding comment registers an offense with an empty line between magic comments and the code accepts a frozen string literal comment after other comments accepts a disabled frozen string literal comment below shebang above an encoding comments accepts a frozen string literal comment below newline-separated magic comments registers an offense for arbitrary tokens RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor accepts code when attribute method is method chained registers an offense and corrects for code that immediately follows accessor with comment accepts code that separates a attribute accessor from the code with a newline accepts code when used in class definition does not registers an offense and corrects when using `if` ... `else` branches registers an offense and corrects for code that immediately follows accessor accepts code that separates attribute accessors from the code with a newline when `AllowedMethods: private` does not register an offense for code that immediately ignored methods after accessor when `AllowedMethods: []` registers an offense for code that immediately ignored methods after accessor when `AllowAliasSyntax: true` does not register an offense for code that immediately `alias` syntax after accessor when `AllowAliasSyntax: false` registers an offense for code that immediately `alias` syntax after accessor RuboCop::Cop::Style::DefWithParentheses accepts def with arg and parens accepts empty parentheses in one liners reports an offense for class def with empty parens reports an offense for def with empty parens RuboCop::Cop::Lint::SuppressedException with AllowComments set to true registers an offense for empty rescue on single line with a comment after it does not register an offense for empty rescue with comment when empty rescue for `def` registers an offense for empty rescue without comment does not register an offense for empty rescue with comment Ruby 2.5 or higher when empty rescue for `do` block registers an offense for empty rescue without comment does not register an offense for empty rescue with comment when empty rescue for `defs` does not register an offense for empty rescue with comment registers an offense for empty rescue without comment with AllowComments set to false does not register an offense for rescue with body registers an offense for empty rescue block when empty rescue for `def` registers an offense for empty rescue without comment registers an offense for empty rescue with comment Ruby 2.5 or higher when empty rescue for `do` block registers an offense for empty rescue with comment registers an offense for empty rescue without comment when empty rescue for defs registers an offense for empty rescue without comment registers an offense for empty rescue with comment RuboCop::Cop::Style::RedundantException reports an offense for a raise with RuntimeError.new reports an offense for a fail with RuntimeError.new reports an offense for a fail with RuntimeError.new reports an offense for a raise with ::RuntimeError reports an offense for a fail with ::RuntimeError.new reports an offense for a fail with ::RuntimeError reports an offense for a fail with ::RuntimeError and () reports an offense for a raise with RuntimeError accepts a raise with RuntimeError if it does not have 2 args reports an offense for a fail with ::RuntimeError.new accepts a fail with ::RuntimeError if it does not have 2 args reports an offense for a fail with RuntimeError accepts rescue w/ non redundant error accepts rescue w/ non redundant error accepts rescue w/ non redundant error reports an offense for a raise with RuntimeError.new reports an offense for a fail with RuntimeError and () reports an offense for a raise with ::RuntimeError.new accepts a fail with RuntimeError if it does not have 2 args reports an offense for a raise with ::RuntimeError.new accepts rescue w/ non redundant error reports an offense for a raise with ::RuntimeError and () reports an offense for a raise with RuntimeError and () accepts a raise with ::RuntimeError if it does not have 2 args RuboCop::Formatter::HTMLFormatter outputs the result in HTML outputs the cached result in HTML RuboCop::Cop::Lint::UriRegexp does not register an offense when using `regexp` with variable receiver registers an offense and corrects using `URI.regexp` with argument registers an offense and corrects using `::URI.regexp` without argument does not register an offense when using `regexp` without receiver registers an offense and corrects using `::URI.regexp` with argument registers an offense and corrects using `URI.regexp` without argument array argument registers an offense and corrects using `URI.regexp` with %i arrays registers an offense and corrects using `URI.regexp` with literal arrays registers an offense and corrects using `URI.regexp` with %w arrays RuboCop::Cop::Lint::UselessAccessModifier behaves like non-repeated visibility modifiers registers an offense and corrects even when `public` is not repeated doesn't register an offense when `private` is not repeated doesn't register an offense when `protected` is not repeated when using ActiveSupport's `concerning` method still points out redundant uses within the block is aware that this creates a new scope behaves like nested in a begin..end block still flags repeated `private` doesn't flag an access modifier from surrounding scope behaves like conditionally defined method doesn't register an offense for if doesn't register an offense for unless when an access modifier has no methods registers an offense and corrects behaves like method named by access modifier name registers an offense for `protected` behaves like nested in a begin..end block still flags repeated `public` behaves like nested modules doesn't register an offense for nested modules unused modifiers registers an offense when outside a nested module registers an offense with a nested module registers an offense when inside a nested module behaves like at the end of the body registers an offense for trailing `protected` behaves like method named by access modifier name registers an offense for `protected` when an access modifier has no effect registers an offense and corrects when using the class_methods method from ActiveSupport::Concern is aware that this creates a new scope behaves like def in new block doesn't register an offense if a method is defined in ::Class.new registers an offense if no method is defined in ::Class.new behaves like method named by access modifier name registers an offense for `private` behaves like method defined with define_method doesn't register an offense if a block is passed doesn't register an offense if a -> is passed doesn't register an offense if a lambda is passed doesn't register an offense if a proc is passed behaves like method defined on a singleton class inside a class registers an offense if no method is defined registers an offense even if a non-singleton-class method is defined doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier doesn't register an offense if the modifier is the same as outside the meta-class outside a class doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier registers an offense if no method is defined behaves like nested in a begin..end block still flags repeated `protected` doesn't flag an access modifier from surrounding scope behaves like conditionally defined method doesn't register an offense for unless doesn't register an offense for if behaves like repeated visibility modifiers registers an offense when `public` is repeated when private_class_method is used without arguments registers an offense and corrects behaves like at the end of the body registers an offense for trailing `private` behaves like at the end of the body registers an offense for trailing `public` behaves like at the top of the body doesn't register an offense for `protected` registers an offense and corrects for `public` doesn't register an offense for `private` when private_class_method is used with arguments does not register an offense behaves like def in new block registers an offense if no method is defined in ::Struct.new doesn't register an offense if a method is defined in ::Struct.new behaves like repeated visibility modifiers registers an offense when `private` is repeated when using a known method-creating method is aware that this creates a new method still points out redundant uses within the module when an access modifier is followed by attr_* does not register an offense behaves like repeated visibility modifiers registers an offense when `protected` is repeated behaves like nested in a begin..end block still flags repeated `public` behaves like method defined with define_method doesn't register an offense if a -> is passed doesn't register an offense if a proc is passed doesn't register an offense if a lambda is passed doesn't register an offense if a block is passed behaves like method named by access modifier name registers an offense for `public` behaves like nested modules doesn't register an offense for nested classs unused modifiers registers an offense with a nested class registers an offense when outside a nested class registers an offense when inside a nested class behaves like methods defined in an iteration doesn't register an offense for each doesn't register an offense for map behaves like def in new block registers an offense if no method is defined in Class.new doesn't register an offense if a method is defined in Class.new when using ActiveSupport behavior when Rails is not eabled reports offenses and corrects behaves like def in new block doesn't register an offense if a method is defined in ::Module.new registers an offense if no method is defined in ::Module.new behaves like method defined using class_eval registers an offense if no method is defined doesn't register an offense if a method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the block and no method is defined behaves like nested in a begin..end block still flags repeated `private` doesn't flag an access modifier from surrounding scope behaves like methods defined in an iteration doesn't register an offense for each doesn't register an offense for map when an access modifier is followed by a class method defined on constant registers an offense and corrects when there are consecutive access modifiers registers an offense and corrects behaves like method defined with define_method doesn't register an offense if a -> is passed doesn't register an offense if a proc is passed doesn't register an offense if a lambda is passed doesn't register an offense if a block is passed behaves like unused visibility modifiers registers an offense and corrects when visibility is immediately changed without any intervening defs behaves like method named by access modifier name registers an offense for `public` behaves like nested modules doesn't register an offense for nested modules unused modifiers registers an offense when inside a nested module registers an offense with a nested module registers an offense when outside a nested module behaves like def in new block doesn't register an offense if a method is defined in ::Class.new registers an offense if no method is defined in ::Class.new behaves like at the end of the body registers an offense for trailing `private` behaves like method defined using instance_eval doesn't register an offense if a method is defined registers an offense if no method is defined inside a class registers an offense when a modifier is ouside the block and a method is defined only inside the block registers two offenses when a modifier is inside and outside the and no method is defined behaves like conditionally defined method doesn't register an offense for unless doesn't register an offense for if when passing method as symbol does not register an offense behaves like method defined using class_eval registers an offense if no method is defined doesn't register an offense if a method is defined inside a class registers two offenses when a modifier is inside and outside the block and no method is defined registers an offense when a modifier is ouside the block and a method is defined only inside the block behaves like def in new block registers an offense if no method is defined in Module.new doesn't register an offense if a method is defined in Module.new behaves like at the end of the body registers an offense for trailing `protected` when only a constant or local variable is defined after the modifier registers an offense and corrects registers an offense and corrects behaves like at the top of the body registers an offense and corrects for `public` doesn't register an offense for `private` doesn't register an offense for `protected` behaves like nested modules doesn't register an offense for nested classs unused modifiers registers an offense when inside a nested class registers an offense with a nested class registers an offense when outside a nested class behaves like def in new block doesn't register an offense if a method is defined in ::Module.new registers an offense if no method is defined in ::Module.new behaves like def in new block doesn't register an offense if a method is defined in Struct.new registers an offense if no method is defined in Struct.new behaves like def in new block doesn't register an offense if a method is defined in Class.new registers an offense if no method is defined in Class.new behaves like at the end of the body registers an offense for trailing `public` when class is empty save modifier registers an offense and corrects behaves like methods defined in an iteration doesn't register an offense for map doesn't register an offense for each behaves like repeated visibility modifiers registers an offense when `private` is repeated behaves like method defined on a singleton class inside a class doesn't register an offense if the modifier is the same as outside the meta-class registers an offense if no method is defined doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier registers an offense even if a non-singleton-class method is defined outside a class registers an offense if no method is defined after the modifier registers an offense if no method is defined doesn't register an offense if a method is defined behaves like def in new block registers an offense if no method is defined in Module.new doesn't register an offense if a method is defined in Module.new behaves like non-repeated visibility modifiers registers an offense and corrects even when `public` is not repeated doesn't register an offense when `protected` is not repeated doesn't register an offense when `private` is not repeated behaves like def in new block doesn't register an offense if a method is defined in ::Struct.new registers an offense if no method is defined in ::Struct.new behaves like method defined on a singleton class outside a class registers an offense if no method is defined registers an offense if no method is defined after the modifier doesn't register an offense if a method is defined inside a class doesn't register an offense if a method is defined registers an offense if no method is defined after the modifier doesn't register an offense if the modifier is the same as outside the meta-class registers an offense if no method is defined registers an offense even if a non-singleton-class method is defined behaves like unused visibility modifiers registers an offense and corrects when visibility is immediately changed without any intervening defs behaves like method named by access modifier name registers an offense for `private` behaves like methods defined in an iteration doesn't register an offense for each doesn't register an offense for map when using inline modifiers does not register an offense behaves like repeated visibility modifiers registers an offense when `public` is repeated when multiple class definitions in file but only one has offense registers an offense and corrects behaves like nested in a begin..end block still flags repeated `protected` doesn't flag an access modifier from surrounding scope behaves like conditionally defined method doesn't register an offense for if doesn't register an offense for unless behaves like method defined using instance_eval doesn't register an offense if a method is defined registers an offense if no method is defined inside a class registers two offenses when a modifier is inside and outside the and no method is defined registers an offense when a modifier is ouside the block and a method is defined only inside the block behaves like method defined with define_method doesn't register an offense if a lambda is passed doesn't register an offense if a proc is passed doesn't register an offense if a block is passed doesn't register an offense if a -> is passed behaves like def in new block registers an offense if no method is defined in Struct.new doesn't register an offense if a method is defined in Struct.new behaves like repeated visibility modifiers registers an offense when `protected` is repeated behaves like method defined on a singleton class inside a class registers an offense if no method is defined after the modifier registers an offense even if a non-singleton-class method is defined doesn't register an offense if the modifier is the same as outside the meta-class doesn't register an offense if a method is defined registers an offense if no method is defined outside a class registers an offense if no method is defined after the modifier registers an offense if no method is defined doesn't register an offense if a method is defined when a def is an argument to a method call does not register an offense RuboCop::Cop::Naming::ClassAndModuleCamelCase allows module_parent method registers an offense for underscore in class and module name accepts CamelCase names is not fooled by qualified names custom allowed names does not register offense for multiple allowed names RuboCop::Cop::Style::ReturnNil when enforced style is `return_nil` registers an offense for return does not register an offense for returning others when enforced style is `return` registers an offense for return nil does not register an offense for return nil from iterators does not register an offense for returning others RuboCop::Cop::Style::RandomWithOffset registers an offense when using rand(int).next registers an offense when using Kernel.rand registers an offense when using ::Random.rand registers an offense when using offset - rand(irange) registers an offense when using rand(irange) + offset registers an offense when using rand(erange) - offset registers an offense when using offset - rand(erange) registers an offense when using Random.rand registers an offense when using rand(erange).succ registers an offense when using rand(int) + offset registers an offense when using rand(irange).succ registers an offense when using Random.rand(int).succ registers an offense when using offset + Random.rand(int) registers an offense when using rand(int).pred registers an offense when using rand(int).succ does not register an offense when using range with triple dots registers an offense when using rand(int) - offset registers an offense when using ::Kernel.rand registers an offense when using offset - ::Random.rand(int) registers an offense when using rand(irange) - offset registers an offense when using rand(erange) + offset does not register an offense when using range with double dots registers an offense when using ::Random.rand(int).pred registers an offense when using offset + rand(int) registers an offense when using offset - rand(int) RuboCop::Cop::Layout::IndentationConsistency with class with normal style configured registers an offense and corrects bad indentation in a class body accepts an empty class body accepts indented public, protected, and private registers an offense and corrects bad indentation in def but not for outdented public, protected, and private with indented_internal_methods style configured accepts different indentation in different visibility sections with top-level code accepts an empty expression string interpolation with module registers an offense and corrects bad indentation in a module body registers an offense and corrects bad indentation of private methods accepts an empty module body even when there are no public methods registers an offense and corrects bad indentation of private methods with if statement registers an offense and corrects bad indentation in an else body accepts if/elsif/else/end with fullwidth characters accepts if/then/else/end laid out as another table accepts an if in assignment with end aligned with variable accepts if/elsif/else/end laid out as a table registers an offense and corrects bad indentation in an elsif body accepts a one line if statement accepts an if/else branches with rescue clauses accepts an if in assignment with end aligned with if accepts a correctly aligned if/elsif/else/end accepts an if/else in assignment on next line with end aligned with if accepts an if/else in assignment with end aligned with variable accepts an if/else in assignment with end aligned with if accepts an empty if accepts an if/else in assignment with end aligned with variable and chaining after the end accepts an if/else in assignment with end aligned with variable and chaining with a block after the end registers an offense and corrects bad indentation in an if body with def/defs registers an offense and corrects bad indentation in a defs body registers an offense and corrects bad indentation in a def body accepts an empty def body accepts an empty defs body with case accepts indented when/else plus indented body accepts correctly indented case/when/else accepts case/when/else with then beginning a line registers an offense and corrects bad indentation in a case/when body accepts case/when/else laid out as a table registers an offense and corrects bad indentation in a case/else body with block registers an offense and correct bad indentation in a do/end body accepts a correctly indented block body accepts an empty block body does not auto-correct an offense within another offense registers an offense and corrects bad indentation in a {} body with unless accepts an empty unless registers an offense and corrects bad indentation in an unless body with for registers an offense and corrects bad indentation in a for body accepts an empty for with while/until registers an offense and corrects bad indentation in a while body registers an offense and corrects bad indentation in an until body registers an offense and corrects bad indentation in begin/end/while accepts an empty while RuboCop::Cop::Style::FormatStringToken ignores time format when it is stored in a variable ignores time format and unrelated `format` method using ignores time format (when used as argument to strftime) supports flags and modifiers ignores xstr ignores http links works inside hashes ignores percent escapes ignores regexp handles dstrs ignores `%r` regexp handles __FILE__ ignores time format (when used as argument to strptime) ignores placeholder arguments behaves like enforced styles for format string tokens when enforced style is template configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" when enforced style is annotated configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" registers offenses for template style supports dynamic string with interpolation when enforced style is template gives a helpful error message behaves like enforced styles for format string tokens when enforced style is annotated registers offenses for template style configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" when enforced style is template configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is template sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation when enforced style is annotated sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for template style supports dynamic string with interpolation behaves like enforced styles for format string tokens when enforced style is annotated registers offenses for template style sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for template style configures the enforced style to template after inspecting "%{a}" when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is annotated configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for template style when enforced style is template registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is annotated supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for template style configures the enforced style to template after inspecting "%{a}" when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style when enforced style is annotated configures the enforced style to template after inspecting "%{a}" registers offenses for template style sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation when enforced style is unannotated gives a helpful error message behaves like enforced styles for format string tokens when enforced style is annotated configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for template style sets the enforced style to annotated after inspecting "%s" when enforced style is template supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" behaves like enforced styles for format string tokens when enforced style is template sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation when enforced style is annotated configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for template style behaves like enforced styles for format string tokens when enforced style is annotated supports dynamic string with interpolation registers offenses for template style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style behaves like enforced styles for format string tokens when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for annotated style sets the enforced style to annotated after inspecting "%s" when enforced style is annotated registers offenses for template style supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is annotated configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for template style when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" behaves like enforced styles for format string tokens when enforced style is template supports dynamic string with interpolation registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" when enforced style is annotated supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for template style behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for template style when enforced style is template configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" when enforced style is annotated gives a helpful error message behaves like enforced styles for format string tokens when enforced style is annotated sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation registers offenses for template style configures the enforced style to template after inspecting "%{a}" when enforced style is template supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" registers offenses for annotated style behaves like enforced styles for format string tokens when enforced style is template registers offenses for annotated style configures the enforced style to template after inspecting "%{a}" sets the enforced style to annotated after inspecting "%s" supports dynamic string with interpolation when enforced style is annotated sets the enforced style to annotated after inspecting "%s" configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation registers offenses for template style behaves like enforced styles for format string tokens when enforced style is annotated supports dynamic string with interpolation configures the enforced style to template after inspecting "%{a}" registers offenses for template style sets the enforced style to annotated after inspecting "%s" when enforced style is template configures the enforced style to template after inspecting "%{a}" supports dynamic string with interpolation sets the enforced style to annotated after inspecting "%s" registers offenses for annotated style RuboCop::Cop::Style::HashEachMethods when node matches a keys#each or values#each when receiver is a hash literal registers offense, auto-corrects {}#keys.each with {}#each_key does not register an offense for {}#each_value does not register an offense for {}#each_key registers offense, auto-corrects {}#values.each with {}#each_value when receiver is a send does not register an offense for Hash#each_value registers offense, auto-corrects foo#values.each to foo#each_value registers offense, auto-corrects foo#keys.each to foo#each_key does not register an offense for foo#each_key when receiver is implicit does not register an offense for each_value does not register an offense for each_key does not register an offense for `values.each` does not register an offense for `keys.each` RuboCop::Cop::Layout::ArgumentAlignment aligned with first argument doesn't get confused by a symbol argument registers an offense and correct multi-line parametersindented too far can handle a call embedded in a string registers an offense and corrects arguments with double indent can handle do-end can handle a correctly aligned string literal as first argument can handle heredoc strings accepts the first parameter being on a new row can handle a string literal as other argument accepts correctly aligned arguments with fullwidth characters registers an offense and corrects multi-line outdented parameters doesn't crash and burn when there are nested issues doesn't get confused by symbols with embedded expressions doesn't get confused by a line break inside a parameter registers an offense and corrects arguments with single indent does not crash in autocorrect on dynamic string in parameter value doesn't get confused by extra comma at the end accepts multiline []= method call doesn't get confused by regexen with embedded expressions can handle other method calls without parentheses can handle a method call within a method call can handle method calls without parentheses can handle a ternary condition with a block reference accepts braceless hashes registers an offense and corrects multiline missed indendation accepts calls that only span one line registers an offense and corrects splat operator can handle parentheses used with no arguments can handle a call with a block inside another call accepts correctly aligned arguments can handle a multiline hash as second parameter when using safe navigation operator registers an offense and corrects arguments with single indent assigned methods accepts the first parameter being on a new row accepts the first parameter being on method row aligned with fixed indentation autocorrects when first line is indented autocorrects by indenting when not indented autocorrects by outdenting when indented too far assigned methods with IndentationWidth:Width set to 4 autocorrects even when first argument is in wrong position accepts the first parameter being on method row accepts the first parameter being on a new row with ArgumentAlignment:IndentationWidth set to 4 accepts the first parameter being on a new row accepts the first parameter being on method row multi-line method calls registers offenses and corrects double indentation from relevant method autocorrects relative to position of relevant method call does not err on method call without a method name can handle existing indentation from multi-line method calls RuboCop::Cop::Lint::AmbiguousBlockAssociation without parentheses as a hash key registers an offense with assignment registers an offense without receiver registers an offense rspec expect {}.to change {} registers an offense with receiver registers an offense when using safe navigation operator registers an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense behaves like accepts does not register an offense RuboCop::Formatter::Colorizable #blue invokes #colorize(string, blue #cyan invokes #colorize(string, cyan #green invokes #colorize(string, green #red invokes #colorize(string, red #yellow invokes #colorize(string, yellow #white invokes #colorize(string, white #colorize when the global Rainbow.enabled is true and the formatter's output is a tty colorizes the passed string and output is not a tty, but --color option was provided colorizes the passed string and the formatter's output is not a tty does nothing when the global Rainbow.enabled is false and the formatter's output is not a tty does nothing and the formatter's output is a tty does nothing #magenta invokes #colorize(string, magenta #black invokes #colorize(string, black RuboCop::Cop::Style::ArrayCoercion does not register an offense when converting variable into other named array variable with check registers an offense and corrects when splatting variable into array does not register an offense when splat is not in array registers an offense and corrects when converting variable into array with check does not register an offense when splatting multiple variables into array RuboCop::Cop::Metrics::ModuleLength does not count blank lines accepts a module with less than 5 lines accepts empty modules accepts a module with 5 lines rejects a module with more than 5 lines reports the correct beginning and end lines when CountComments is enabled also counts commented lines when a module has inner classes does not count lines of inner classes rejects a module with 6 lines that belong to the module directly when a module has inner modules rejects a module with 6 lines that belong to the module directly does not count lines of inner modules when inspecting a class defined with Module.new registers an offense when inspecting a class defined with ::Module.new registers an offense when `CountAsOne` is not empty folds array into one line RuboCop::Options options precedence RUBOCOP_OPTS environment variable has lower precedence then command line options has higher precedence then options from .rubocop file .rubocop file has lower precedence then command line options has lower precedence then options from RUBOCOP_OPTS env variable .rubocop directory is ignored and command line options are used option incompatible cli options rejects using -v with --show-cops rejects using -V with --show-cops rejects using -v with -V mentions all incompatible options when more than two are used --fail-level accepts the "fake" severities A/autocorrect accepts full severity names accepts severity initial letters --cache fails if no argument is given accepts true as argument fails if unrecognized argument is given accepts false as argument -h/--help shows help text exits cleanly lists all builtin formatters -s/--stdin succeeds with exactly one path fails if more than one path is given fails if no paths are given --safe-auto-correct is a deprecated alias --exclude-limit fails if given last without argument fails if given without --auto-gen-config fails if given alone without argument fails if given first without argument --auto-gen-only-exclude fails if given without --auto-gen-config --disable-uncorrectable accepts together with --auto-correct accepts together with --auto-correct-all fails if given alone without --auto-correct/-a --require requires the passed path --auto-gen-config accepts other options --parallel combined with --cache false fails with an error message combined with --auto-correct fails with an error message combined with --fail-fast fails with an error message combined with --auto-gen-config fails with an error message --display-only-failed works if given with --format junit fails if given without --format junit RuboCop::Cop::Lint::MixedRegexpCaptureTypes registers an offense when both of named and numbered captures are used does not register offense to a regexp with named capture and non-capturing group does not register offense when using a Regexp cannot be processed by regexp_parser gem does not register offense to a regexp with numbered capture only does not register offense to a regexp with named capture only when containing a non-regexp literal does not register an offence when containing a ivar does not register an offence when containing a lvar does not register an offence when containing a constant does not register an offence when containing a cvar does not register an offence when containing a gvar does not register an offence when containing a method RuboCop::Cop::Layout::SpaceInsideParens when EnforcedStyle is space accepts parentheses with comment and line break accepts parentheses with line break accepts parentheses with spaces registers an offense for no spaces inside parens registers an offense in block parameter list with no spaces when EnforcedStyle is no_space accepts parentheses with line break accepts parentheses in block parameter list accepts parentheses with comment and line break registers an offense for spaces inside parens accepts parentheses with no spaces RuboCop::Cop::Style::LambdaCall when style is set to call registers an offense for correct + opposite registers an offense for x.() when style is set to braces registers an offense for x.call() auto-corrects x.call to x.() accepts a call without receiver auto-corrects x.call asdf, x123 to x.(asdf, x123) registers an offense for opposite + correct RuboCop::Cop::Style::RedundantReturn auto-corrects by removing redundant returns reports an offense for def with only a return reports an offense for def ending with return accepts return in a non-final position does not blow up on empty if body reports an offense for defs with only a return does not blow up on empty method body reports an offense for defs ending with return when multi-value returns are not allowed auto-corrects by making an implicit hash explicit reports an offense for def with only a return reports an offense for defs with only a return reports an offense for defs ending with return auto-corrects removes return when using an explicit hash reports an offense for def ending with return when multi-value returns are allowed accepts def ending with return accepts defs with only a return accepts defs ending with return accepts def with only a return when case nodes are empty accepts empty when nodes when return is inside a when-branch registers an offense and auto-corrects when return is inside begin-end body registers an offense and auto-corrects when return is inside an if-branch registers an offense and auto-corrects when rescue and return blocks present does register an offense and auto-corrects when inside function or rescue block when return has no arguments behaves like common behavior registers an offense for return() and autocorrects replacing return() with nil behaves like common behavior registers an offense for return and autocorrects replacing return with nil RuboCop::RakeTask running tasks uses the default formatter from .rubocop.yml if no formatter option is given allows nested arrays inside formatters, options, and requires runs with default options exits when result is not 0 and fail_on_error is true will not error when result is not 0 and fail_on_error is false runs with specified options if a block is given auto_correct runs with --auto-correct-all runs with with the options that were passed to its parent task defining tasks creates a named task and a named auto_correct task creates a rubocop task and a rubocop auto_correct task RuboCop::Cop::Style::TernaryParentheses configured for parentheses on complex and there are parens accepts condition including a range with a simple condition registers an offense for yield in condition registers an offense with preceding boolean keyword expression registers an offense for accessor in condition registers an offense for query method in condition registers an offense for save navigation with method call condition registers an offense for defined check registers an offense when calling method with a parameter registers an offense when calling method on a receiver with accessor in method call parameters registers an offense for array include? with multiple parameters with parens registers an offense for array include? without parens registers an offense for array include? with multiple parameters without parens without accessor in method call parameters registers an offense for array include? without parens registers an offense for array include? with parens with an assignment condition accepts safe assignment accepts equality check accepts accepts safe multiple assignment accepts safe assignment as part of multiple assignment behaves like safe assignment disabled registers an offense for parens around outer assignment registers an offense for parens around inner assignment registers an offense for parens around assignment with a complex condition accepts boolean expression using keywords registers an offense when calling method on a receiver accepts boolean expression when configured to enforce parentheses inclusion with a complex condition registers an offense when calling method on a receiver registers an offense for boolean expression containing parens registers an offense for equality check registers an offense for arithmetic condition registers an offense for boolean expression registers an offense for boolean expression using keyword registers an offense for negated condition with an assignment condition accepts safe assignment in condition registers an offense for double assignment registers an offense for double assignment with equality check in condition registers an offense for triple assignment with a simple condition registers an offense for accessor in condition registers an offense for query method in condition registers an offense for yield in condition configured for parentheses on complex and there are no parens with an assignment condition accepts safe assignment registers an offense for equality check with complex condition registers an offense for boolean expression registers an offense for compound boolean expression registers an offense for boolean expression with inner parens registers an offense for comparison with multiplication registers an offense for addition expression registers an offense comparison with exponentiation registers an offense for comparison registers an offense for comparison with method call on receiver registers an offense for subtraction expression registers an offense for arithmetic and equality check when configured to enforce parentheses omission accepts condition including a range with a complex condition registers an offense for boolean expression accepts parens around inner boolean expression registers an offense for boolean expression using keyword registers an offense for negated condition registers an offense for query method on object registers an offense for arithmetic expression registers an offense for equality check with an assignment condition accepts safe assignment registers an offense for equality check accepts double safe assignment accepts safe assignment as part of multiple assignment behaves like safe assignment disabled registers an offense for parens around inner assignment registers an offense for parens around assignment registers an offense for parens around outer assignment with a simple condition accepts multi-line boolean expression starting on following line registers an offense for query method in condition registers an offense for multi-line boolean expression registers an offense for yield in condition registers an offense for accessor in condition with an unparenthesized method call condition registers an offense for defined check registers an offense when calling method with a parameter when calling method on a receiver registers an offense when calling method on a literal receiver registers an offense when calling method with multiple arguments registers an offense when calling method on a constant receiver registers an offense with no space between the parentheses and question mark registers an offense when `RedundantParenthesis` would cause an infinite loop when `EnforcedStyle: require_parentheses` accepts when `EnforcedStyle: require_parentheses_when_complex` accepts RuboCop::Cop::Style::StabbyLambdaParentheses require_no_parentheses registers an offense for a stabby lambda with parentheses behaves like common does not check a method call named lambda does not check the old lambda syntax does not check a stabby lambda without arguments require_parentheses registers an offense for a stabby lambda without parentheses does not register an offense for a stabby lambda with parentheses behaves like common does not check the old lambda syntax does not check a method call named lambda does not check a stabby lambda without arguments RuboCop::Cop::Style::TrivialAccessors accepts non-trivial reader accepts reader nested within an instance_eval calll registers an offense on one-liner writer registers an offense on class reader registers an offense on DSL-style trivial writer accepts splats accepts expressions within writer registers an offense on reader with `private` accepts writer with different ivar name accepts non-trivial writer accepts expressions within reader registers an offense on instance reader registers an offense on writer without braces accepts writer in a module accepts writer nested within a module accepts reader using top level registers an offense on instance writer registers an offense on reader with braces accepts writer nested within an instance_eval call flags a reader inside a class, inside an instance_eval call accepts reader nested within a module accepts an initialize method looking like a writer accepts writer using top level accepts blocks registers an offense on class writer registers an offense on one-liner reader accepts reader with different ivar name disallow predicates does not accept predicate-like reader allow predicates accepts predicate-like reader with DSL allowed accepts DSL-style writer exact name match disabled registers an offense when names mismatch in writer registers an offense when names mismatch in reader with allowed methods accepts allowed writer accepts allowed reader with AllowPredicates: false accepts allowed predicate ignore class methods accepts class writer accepts class reader RuboCop::Cop::Layout::SpaceInsideRangeLiteral registers an offense in multiline range literal with space in it accepts complex range literal with space in it accepts no space inside .. literal registers an offense for space inside ... literal accepts no space inside ... literal registers an offense for space inside .. literal accepts multiline range literal with no space in it RuboCop::RemoteConfig .file does not download the file if cache lifetime has not been reached downloads the file if cache lifetime has been reached downloads the file if the file does not exist when the remote URL responds with redirect follows the redirect and downloads the file when the network is inaccessible reuses the existing cached file when the remote URL responds with not modified reuses the existing cached file when the remote URL responds with 500 raises error RuboCop::Cop::Layout::CommentIndentation auto-corrects registers offenses and corrects before __END__ but not after near various kinds of brackets is unaffected by closing bracket that does not begin a line accepts correctly indented comments around program structure keywords accepts correctly indented comments with a blank line following the comment accepts a correctly indented comment on outer level accepts a comment that follows code registers an offense for each incorrectly indented comment registers an offense and corrects a documentation comment registers an offense and corrects an incorrectly indented (1) comment accepts a correctly indented comment registers an offense and corrects an incorrectly indented (2) comment RuboCop::Cop::Lint::DuplicateCaseCondition registers an offense for repeated case conditionals accepts non-redundant case expressions registers an offense for subsequent repeated case conditionals accepts trivial case expressions accepts non-redundant case expressions with an else expression registers multiple offenses for multiple repeated case conditionals registers an offense for repeated logical operator when expressions accepts similar but not equivalent && expressions registers multiple offenses for repeated multi-value condtionals RuboCop::Cop::Style::StringConcatenation does not register an offense when using `+` with all non string arguments registers an offense and corrects for string concatenation as part of other expression registers an offense and corrects for string concatenation correctly handles strings with special characters RuboCop::Cop::Layout::TrailingWhitespace auto-corrects unwanted space registers an offense for a line ending with tab registers an offense for trailing whitespace in a heredoc string registers an offense for a line ending with space registers an offense for a blank line with space is not fooled by heredoc containing __END__ within a doc comment registers offenses before __END__ but not after is not fooled by heredoc containing __END__ is not fooled by __END__ within a documentation comment accepts a line without trailing whitespace when `AllowInHeredoc` is set to true registers an offense for trailing whitespace at the heredoc begin accepts trailing whitespace in a heredoc string RuboCop::Cop::Layout::SpaceAfterComma array index commas without space behaves like trailing comma accepts the last comma behaves like ends with an item does auto-correction registers an offense block argument commas without space behaves like trailing comma accepts the last comma behaves like ends with an item does auto-correction registers an offense method call arg commas without space behaves like ends with an item registers an offense does auto-correction inside hash braces when EnforcedStyle for SpaceInsideBlockBraces is no_space accepts no space between a comma and a closing brace behaves like common behavior accepts a space between a comma and a closing brace when EnforcedStyle for SpaceInsideBlockBraces is space registers an offense for no space between a comma and a closing brace behaves like common behavior accepts a space between a comma and a closing brace RuboCop::Cop::Naming::VariableNumber when configured for snake_case registers an offense for normal case numbering in method parameter registers an offense for normal case numbering in method camel case parameter behaves like offense_array registers an offense for ["a1", "a_2"] in snake_case behaves like accepts accepts a_1_b in snake_case behaves like accepts accepts local_12 in snake_case behaves like accepts accepts _ in snake_case behaves like accepts accepts aB_1 in snake_case behaves like offense registers an offense for local1 in snake_case behaves like accepts accepts local_1 in snake_case behaves like accepts accepts @foo in snake_case behaves like offense registers an offense for aB1 in snake_case behaves like offense registers an offense for @@local1 in snake_case behaves like accepts accepts local_123 in snake_case behaves like accepts accepts _foo in snake_case behaves like offense registers an offense for _unused1 in snake_case behaves like accepts accepts local_ in snake_case behaves like offense registers an offense for @local1 in snake_case behaves like offense registers an offense for camelCase1 in snake_case behaves like offense registers an offense for @camelCase1 in snake_case behaves like accepts accepts a_1_b_1 in snake_case behaves like accepts accepts @__foo__ in snake_case when configured for normal registers an offense for snake case numbering in method camel case parameter registers an offense for snake case numbering in method parameter behaves like accepts accepts user_1_id in normalcase behaves like offense registers an offense for _myLocal_1 in normalcase behaves like accepts accepts foo10_bar in normalcase behaves like accepts accepts @foo in normalcase behaves like accepts accepts target_u2f_device in normalcase behaves like accepts accepts localFOO1 in normalcase behaves like offense registers an offense for local_FOO_1 in normalcase behaves like accepts accepts _ in normalcase behaves like accepts accepts snake_case in normalcase behaves like accepts accepts local1 in normalcase behaves like accepts accepts user1_id in normalcase behaves like offense registers an offense for local_1 in normalcase behaves like offense_array registers an offense for ["a_1", "a2"] in normalcase behaves like offense registers an offense for @@local_1 in normalcase behaves like offense registers an offense for sha_256 in normalcase behaves like offense registers an offense for @myAttribute_1 in normalcase behaves like accepts accepts _foo in normalcase behaves like offense registers an offense for localFOO_1 in normalcase behaves like offense registers an offense for myAttribute_1 in normalcase behaves like accepts accepts sha256 in normalcase behaves like accepts accepts @__foo__ in normalcase behaves like offense registers an offense for @local_1 in normalcase behaves like accepts accepts local_ in normalcase when configured for non integer registers an offense for snake case numbering in method parameter registers an offense for normal case numbering in method parameter registers an offense for snake case numbering in method camel case parameter registers an offense for normal case numbering in method camel case parameter behaves like accepts accepts localone in non_integer behaves like accepts accepts @@foo in non_integer behaves like accepts accepts local_one in non_integer behaves like offense registers an offense for @local1 in non_integer behaves like offense registers an offense for _myLocal1 in non_integer behaves like accepts accepts local_ in non_integer behaves like offense registers an offense for @myAttribute_1 in non_integer behaves like accepts accepts _ in non_integer behaves like offense registers an offense for local_1 in non_integer behaves like offense registers an offense for myAttribute1 in non_integer behaves like offense_array registers an offense for ["a_1", "aone"] in non_integer behaves like offense registers an offense for local1 in non_integer behaves like accepts accepts @__foo__ in non_integer behaves like accepts accepts fooBar in non_integer behaves like offense registers an offense for _myLocal_1 in non_integer behaves like accepts accepts _foo in non_integer behaves like offense registers an offense for @local_1 in non_integer behaves like offense registers an offense for @myAttribute1 in non_integer behaves like accepts accepts @foo in non_integer behaves like offense registers an offense for myAttribute_1 in non_integer RuboCop::Cop::Metrics::CyclomaticComplexity when Max is 1 counts only a single method registers an offense for a rescue block registers an offense for &&= registers an offense for || registers an offense for a while block registers an offense for a case/when block registers an offense for an until block registers an offense for and registers an offense for a ternary operator accepts complex code outside of methods registers an offense for a for block registers an offense for && registers an offense for ||= registers an offense for an if modifier registers an offense for &. registers an offense for or accepts an empty method does not count blocks in general counts enumerating methods with block-pass as +1 registers an offense for a `define_method` counts repeated &. on same untouched local variable as 1 accepts a method with no decision points accepts an empty `define_method` registers an offense for an unless modifier registers an offense for an elsif block deals with nested if blocks containing && and || counts enumerating methods with blocks as +1 when method is in list of ignored methods does not register an offense when defining an instance method does not register an offense when using `define_method` does not register an offense when defining a class method when Max is 2 counts stupid nested if and else blocks RuboCop::Cop::Style::Documentation accepts non-empty class with documentation accepts empty class without documentation registers an offense for compact-style nested class registers an offense for non-empty class with encoding comment accepts non-empty class with comment that ends with an annotation registers an offense if the comment line contains code accepts namespace class which defines constants registers an offense for non-empty class accepts non-empty class with annotation comment followed by other comment accepts non-empty module with documentation accepts namespace class without documentation registers an offense for compact-style nested module registers an offense for non-empty class with annotation comment does not raise an error for an implicit match conditional registers offense for non-empty class with frozen string comment registers an offense for empty module without documentation registers an offense for non-empty class with directive comment accepts namespace module which defines constants registers an offense for non-namespace does not consider comment followed by empty line to be class documentation accepts namespace module without documentation sparse and trailing comments ignores sparse comments inside module node ignores sparse comments inside class node ignores comments after module node end ignores comments after class node end without documentation with non-empty class with constants visibility declaration content does not register an offense with non-empty module with constants visibility declaration content does not register an offense with # :nodoc: accepts non-namespace class without documentation accepts compact-style nested module without documentation accepts non-namespace module without documentation registers an offense for nested module without documentation accepts compact-style nested class without documentation registers an offense for nested class without documentation on a subclass registers an offense for nested subclass without documentation accepts non-namespace subclass without documentation with `all` modifier accepts nested subclass without documentation with `all` modifier accepts nested module without documentation with `all` modifier accepts nested class without documentation RuboCop::Cop::Style::FormatString when enforced style is sprintf works if the first operand contains embedded expressions does not register an offense for ambiguous cases registers an offense for format registers an offense for variable argument and assignment but does not auto-correct registers an offense for format with 2 arguments registers an offense for String#% with a hash argument registers an offense for something followed by an array registers an offense for a string followed by something does not register an offense for numbers registers an offense for variable argument but does not auto-correct when enforced style is percent registers an offense for sprintf with a hash argument registers an offense for sprintf with 3 arguments accepts String#% registers an offense for sprintf accepts sprintf without arguments accepts format with 1 argument accepts format without arguments registers an offense for format registers an offense for format with 3 arguments registers an offense for format with a hash argument accepts sprintf with 1 argument when enforced style is format registers an offense for sprintf with 2 arguments registers an offense for sprintf registers an offense for something followed by an array works if the first operand contains embedded expressions does not register an offense for numbers registers an offense for something followed by a hash registers an offense for variable argument but does not auto-correct does not auto-correct String#% with variable argument and assignment does not register an offense for ambiguous cases registers an offense for a string followed by something RuboCop::Cop::Style::InfiniteLoop registers an offense for a while loop with [1] as condition registers an offense for a while loop with {} as condition registers an offense for a until loop with false as condition registers an offense for a while loop with 1 as condition registers an offense for modifier until false if loop {} would not change semantics registers an offense for until false if loop {} would work because of previous assignment in a while loop registers an offense for while true if loop {} would work because it is an instance variable being assigned registers an offense for a until loop with nil as condition accepts while true if loop {} would change semantics registers an offense for while true or until false if loop {} would work because of an earlier assignment registers an offense for a while loop with 2.0 as condition accepts modifier while true if loop {} would change semantics accepts Kernel#loop registers an offense for until false if loop {} would work because the assigned variable is not used afterwards behaves like auto-corrector auto-corrects single line modifier while with and auto-corrects the usage of while without do auto-corrects single line modifier while auto-corrects begin-end-while with one statement auto-corrects the usage of while with do auto-corrects begin-end-while with two statements with non-default indentation width auto-corrects multi-line modifier while and indents correctly behaves like auto-corrector auto-corrects begin-end-until with one statement auto-corrects the usage of until without do auto-corrects single line modifier until with and auto-corrects the usage of until with do auto-corrects single line modifier until auto-corrects begin-end-until with two statements with non-default indentation width auto-corrects multi-line modifier until and indents correctly RuboCop::Cop::Style::PercentLiteralDelimiters `%Q` interpolated string does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation does not register an offense for preferred delimiters `%I` interpolated symbol array does not register an offense for preferred delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters `%W` interpolated string array does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters registers an offense for other delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation `%w` string array does not register an offense for preferred delimiters with not a pairing delimiter does not register an offense for preferred delimiters registers an offense for other delimiters does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters with only a closing delimiter does not register an offense for preferred delimiters with a pairing delimiters `%r` interpolated regular expression does not register an offense for preferred delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters registers an offense for a regular expression with option does not register an offense for other delimiters when containing preferred delimiter characters `%s` symbol registers an offense for other delimiters does not register an offense for preferred delimiters `%x` interpolated system call does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters `default` override allows all preferred delimiters to be set with one key allows individual preferred delimiters to override `default` `%` interpolated string does not register an offense for other delimiters when containing preferred delimiter characters does not register an offense for preferred delimiters registers an offense for other delimiters when containing preferred delimiter characters in interpolation registers an offense for other delimiters registers an offense when the source contains invalid characters registers an offense for a string with no content `%q` string does not register an offense for other delimiters when containing preferred delimiter characters registers an offense for other delimiters does not register an offense for preferred delimiters auto-correct preserves irregular indentation when correcting a multiline array fixes a string array in a scope preserves indentation when correcting a multiline array preserves line breaks when fixing a multiline array behaves like escape characters corrects %w with \n in it corrects %w with \t in it behaves like escape characters corrects %x with \t in it corrects %x with \n in it behaves like escape characters corrects %i with \n in it corrects %i with \t in it behaves like escape characters corrects %W with \t in it corrects %W with \n in it behaves like escape characters corrects %q with \n in it corrects %q with \t in it behaves like escape characters corrects %s with \t in it corrects %s with \n in it behaves like escape characters corrects % with \t in it corrects % with \n in it behaves like escape characters corrects %Q with \n in it corrects %Q with \t in it behaves like escape characters corrects %r with \t in it corrects %r with \n in it `%i` symbol array registers an offense for other delimiters does not register an offense for non-preferred delimiters enclosing escaped delimiters does not register an offense for preferred delimiters invalid cop config raises an error when invalid configuration is specified RuboCop::Cop::Lint::RedundantCopEnableDirective registers offense and corrects unnecessary enable registers multiple offenses and corrects the same comment registers correct offense when combined with necessary enable registers an offense and corrects when the first cop is unnecessarily enabled registers offense and corrects redundant enabling of same cop all switch registers offense and corrects unnecessary enable all when at least one cop was disabled does not register offense when middle cop is unnecessarily enabled registers an offense and corrects registers an offense and corrects when there is extra white space when last cop is unnecessarily enabled registers an offense and corrects when there is no space between the cops and the comma registers an offense and corrects RuboCop::Cop::Bundler::InsecureProtocolSource registers an offense when using `source :rubygems` registers an offense when using `source :gemcutter` registers an offense when using `source :rubyforge` RuboCop::Cop::Lint::HeredocMethodCallPosition correct cases accepts simple correct case accepts chained correct case ignores if no call incorrect cases with trailing comma in method call detects chained case without args detects simple incorrect case detects simple incorrect case with paren detects chained case with multiple line args detects chained case no parens detects chained case with parens detects RuboCop::Cop::Layout::IndentationWidth with Width set to 4 with ignored patterns set accepts unindented lines for those keywords #autocorrect corrects bad indentation for a file with byte order mark accepts correctly indented method definition with if statement registers an offense for bad indentation of an if body with Width set to 2 with begin/rescue/else/ensure/end registers an offense for bad indentation of bodies with case registers an offense for bad indentation in a case/when body accepts case/when/else laid out as a table accepts aligned values in when clause registers an offense for bad indentation in a case/else body accepts indented when/else plus indented body accepts case/when/else with then beginning a line accepts correctly indented case/when/else with unless accepts an empty unless registers an offense for bad indentation of an unless body with module when consistency style is indented_internal_methods registers an offense for bad indentation of a module body accepts normal non-indented internal methods ofmodule functions when consistency style is normal accepts an empty module body registers an offense for bad indentation of a module body with while/until registers an offense for bad indentation of an until body registers an offense for bad indentation of a while body accepts an empty while registers an offense for bad indentation of begin/end/while with for registers an offense for bad indentation of a for body accepts an empty for with block accepts badly indented code if block end is not on separate line accepts an empty block body registers an offense for bad indentation of a do/end body registers an offense for bad indentation of a {} body accepts a correctly indented block body when using safe navigation operator registers an offense for bad indentation of a {} body registers an offense for an if with setter when consistency style is indented_internal_methods registers an offense for bad indentation in a do/end body with def/rescue/end registers an offense for bad indentation of bodies registers an offense for bad indent of defs bodies with a modifier with def/defs when end is aligned with start of line registers an offense for bad indentation of a defs body accepts an empty defs body registers an offense for bad indentation of a def body with an assignment accepts an empty def body when multiple modifiers and def are on the same line accepts a correctly aligned body registers an offense for bad indentation of a def body registers an offense for bad indentation of a defs body when multiple modifiers are used in a block anda method call is made at end of the block accepts a correctly aligned body registers an offense for bad indentation of a def body registers an offense for bad indentation of a def when modifier and def are on the same line registers an offense for bad indentation of a defs body registers an offense for bad indentation of a def body accepts a correctly aligned body when end is aligned with def accepts an empty def body accepts an empty defs body registers an offense for bad indentation of a def body registers an offense for bad indentation of a defs body with an assignment when modifier and def are on the same line registers an offense for bad indentation of a def body accepts a correctly aligned body registers an offense for bad indentation of a defs body with if statement registers an offense for bad indentation of an else body when if body contains no code registers offense for bad indentation of modifier if in else accepts indentation after if on new line after assignment registers an offense for bad indentation of an else body when if and elsif body contains no code accepts `ensure` after an empty body accepts a one line if statement accepts if/then/else/end laid out as another table registers an offense for bad indentation of an else body accepts if/elsif/else/end laid out as a table accepts a correctly aligned if/elsif/else/end accepts `rescue` after an empty body accepts an empty if registers offense for bad indentation of ternary inside else does not raise any error with empty braces accepts an if/else branches with rescue clauses registers an offense for bad indentation of an elsif body accepts a correctly aligned if/elsif/else/end as a method argument registers an offense for bad indentation of an if body #autocorrect does not correct in scopes that contain block comments does not indent heredoc strings indents parenthesized expressions corrects bad indentation handles lines with only whitespace leaves block unchanged if block end is not on its own line leaves rescue ; end unchanged with assignment when alignment style is keyword and end is aligned with variable registers an offense for an if autocorrects bad indentation registers an offense for a while and end is aligned with keyword accepts an if in assignment accepts a while in assignment accepts an if/else in assignment accepts an if/else in assignment on next line accepts an until in assignment when alignment style is variable and end is aligned with keyword registers an offense for an if registers an offense for an if with setter registers an offense for an if with element assignment registers an offense for a while registers an offense for an until accepts an if/else in assignment on next line and end is aligned randomly registers an offense for a while registers an offense for an if registers an offense for an until and end is aligned with variable accepts an if/else with chaining after the end accepts an if with end aligned with setter accepts an if with end aligned with element assignment accepts an if with end aligned with variable accepts an if/else accepts an if/else with chaining with a block after the end when alignment style is start_of_line and end is aligned with variable accepts an if/else with chaining with a block after the end accepts an if with end aligned with element assignment accepts an if/else accepts an if/else with chaining after the end accepts an if with end aligned with setter accepts an if with end aligned with variable and end is aligned randomly registers an offense for an if registers an offense for an until registers an offense for a while and end is aligned with keyword registers an offense for an if with setter registers an offense for an if registers an offense for an if with element assignment registers an offense for an until registers an offense for a while accepts an if/else in assignment on next line with class accepts an empty class body registers an offense for bad indentation of a class body when consistency style is normal accepts indented public, protected, and private registers offenses for indented_internal_methods indentation when consistency style is indented_internal_methods registers an offense for normal non-indented internal methods indentation when defined in a singleton class registers an offense for normal non-indented internal methods indentation with access modifier registers an offense for bad indentation of sections registers an offense and corrects for bad modifier indentation before good method definition when consistency style is outdent accepts access modifier is outdent RuboCop::Cop::Lint::UriEscapeUnescape registers an offense when using `URI.unescape(enc_uri)` registers an offense when using `::URI.decode(enc_uri)` registers an offense when using `::URI.encode('http://example.com)` registers an offense when using `URI.escape('@?@!', '!?')` registers an offense when using `URI.decode(enc_uri)` registers an offense when using `::URI.escape('http://example.com')` registers an offense when using `::URI.unescape(enc_uri)` registers an offense when using `URI.encode('http://example.com')` registers an offense when using `URI.escape('http://example.com')` RuboCop::Cop::Layout::MultilineAssignmentLayout same_line style registers an offense when the rhs is a different line registers an offense for masgn with multi-line lhs registers an offense when the rhs is a different line in setters ignores arrays registers an offense when the rhs is a different line in []= allows multi-line assignments on the same line configured supported types allows supported types to be configured when supported types is block allows multi-line assignments when using shovel operator allows when multi-line assignments using block definition is on the same line registers an offense when multi-line assignments using block definition on separate lines allows multi-line block defines on separate lines new_line style ignores arrays registers an offense when the rhs is on the same line in []= allows multi-line assignments on separate lines registers an offense for masgn with multi-line lhs registers an offense when the rhs is on the same line registers an offense when the rhs is on the same line in setters when supported types is block allows multi-line assignments when using block definition on separate lines registers an offense when multi-line assignments using block definition is on the same line allows multi-line block defines on separate lines allows multi-line assignments when using shovel operator configured supported types allows supported types to be configured RuboCop::Cop::Layout::SpaceAfterNot accepts space after not keyword registers an offense and corrects multiple spaces after ! registers an offense and corrects space after ! with the negated receiver wrapped in parentheses accepts no space after ! registers an offense and corrects a single space after ! RuboCop::Cop::Lint::FlipFlop registers an offense for inclusive flip-flops registers an offense for exclusive flip-flops RuboCop::Runner #run when interrupted with SIGINT returns false #run if there are no offenses in inspected files returns true if -s/--stdin is used with an offense sends the offense to a formatter returns false if a cop crashes does not call ResultCache#save if there is an offense in an inspected file sends the offense to a formatter returns false #run with cops autocorrecting each-other if there is an offense in an inspected file aborts because of an infinite loop RuboCop::Cop::Style::RedundantRegexpCharacterClass with a character class with first element an escaped ] does not register an offense with a character class containing an escaped [ registers an offense and corrects with a character class containing a space meta-character registers an offense and corrects with a character class containing a single negated unicode character property registers an offense and corrects with escaped square brackets surrounding a single character does not register an offense with a character class containing an escaped-b does not register an offense with a character class containing a single unicode character property registers an offense and corrects with a character class containing escaped character requiring escape outside registers an offense and corrects with consecutive escaped square brackets inside a character class does not register an offense with an interpolated unnecessary-character-class regexp registers an offense and corrects with a character class containing a space with an unnecessary-character-class after a comment registers an offense and corrects when using free-spaced mode with a single space character class does not register an offense with /iux does not register an offense with only /x does not register an offense with /ix with a commented single-element character class does not register an offense when not using free-spaced mode registers an offense and corrects with a character class containing a single unicode code-point registers an offense and corrects with a character class containing a negated-space meta-character registers an offense and corrects with a character class containing an interpolation does not register an offense with a character class containing two characters does not register an offense with a character class containing a single character registers an offense and corrects with a character class containing an escaped ] registers an offense and corrects with consecutive escaped square brackets does not register an offense with multiple character classes containing single characters registers an offense and corrects with an array index inside an interpolation does not register an offense with a character class containing an escaped-# registers an offense and corrects with a negated character class with a single element does not register an offense with a character class containing a character requiring escape outside does not register an offense RuboCop::Cop::Lint::ConstantResolution registers no offense when qualifying a const registers an offense not qualifying a namespace const registers no offense qualifying a namespace const registers an offense not qualifying a const with Ignore set registers no offense when an unqualified namespace const registers no offense when qualifying a const registers no offense with an unqualified const registers no offense qualifying a namespace const registers an offense not qualifying another const registers an with a namespace const with Only set registers no with a namespace const registers an offense with an unqualified const registers an offense when an unqualified namespace const registers no offense when qualifying a const registers no offense qualifying a namespace const registers no offense not qualifying another const RuboCop::Cop::Lint::EmptyWhen when `AllowComments: false` registers an offense for empty when body with a comment when a `when` body is missing registers an offense for missing when ... then body followed by else registers an offense for missing when body with a comment registers an offense when case line has no expression registers an offense for missing when body with a comment followed by else registers an offense for missing when body followed by else registers an offense for a missing when body registers an offense for missing when ... then body when a `when` body is present accepts with no case line expression accepts case with when bodies accepts case with when ... then statements and else clause accepts case with when ... then statements accepts case with when bodies and else clause when `AllowComments: true` accepts an empty when body with a comment RuboCop::Cop::Force #run_hook invokes a hook in all cops .force_name returns the class name without namespace RuboCop::Cop::Team when incompatible cops are correcting together auto corrects without SyntaxError .new accepts cops directly classes calls mobilize when passed classes #inspect_file returns offenses when done twice allows cops to get ready when autocorrection is enabled does autocorrection still returns offenses when a correction raises an error records Team#errors when Parser reports non-fatal warning for the file returns Parser warning offenses returns offenses from cops when a cop has no interest in the file returns all offenses except the ones of the cop when Cop#on_* raises an error records Team#errors #cops returns cop instances when only some cop classes are passed to .new returns only instances of the classes when some classes are disabled with config does not return instances of the classes #autocorrect? when the option argument of .new is omitted is expected to be falsey when { auto_correct: true } is passed to .new is expected to be truthy #debug? when { debug: true } is passed to .new is expected to be truthy when the option argument of .new is omitted is expected to be falsey #external_dependency_checksum does not error with no cops when a cop joins returns string when cop with different checksum joins has a different checksum for the whole team when multiple cops join returns string #forces returns force instances when multiple cops joined a same force returns only one force instance when no cops joined force returns nothing when a cop joined a force returns the force RuboCop::Cop::Layout::EmptyLinesAroundArguments when extra lines registers and autocorrects offense for empty line between args registers and autocorrects offense on correct lines for multi-offense example registers and autocorrects offense when args start on definition line registers and autocorrects offenses when multiple empty lines are detected registers and autocorrects offense for empty line after arg registers and autocorrects offense for empty line before arg registers and autocorrects offense on correct line for single offense example registers and autocorrects offense when empty line between normal arg & block arg registers autocorrects empty line whetn args start on definition line when using safe navigation operator registers and autocorrects offense for empty line before arg when no extra lines accepts multiple listed mixed args accpets one line methods accepts method with no arguments that trails off block accepts block argument with empty line accepts method with argument that trails off heredoc accepts method with argument that trails off block accepts listed args starting on definition line with one argument ignores empty lines inside of method arguments with multiple arguments ignores empty lines inside of method arguments RuboCop::Cop::Style::RedundantSelf accepts a self receiver on an lvalue of an assignment accepts a self receiver used to distinguish from constant does not report an offense when receiver and multiple assigned lvalue have the same name does not report an offense when receiver and lvalue have the same name accepts a self receiver on an lvalue of an or-assignment reports an offense a self receiver of .call accepts a self receiver on an lvalue of a plus-assignment accepts a self receiver on an lvalue of an and-assignment accepts a self receiver on an lvalue of a parallel assignment accepts a self receiver with the square bracket operator does not report an offense when self receiver in a method argument and multiple assigned lvalue have the same name does not report an offense when self receiver in a method argument and lvalue have the same name accepts a self receiver for methods named like ruby keywords accepts a self receiver of .() accepts a self receiver with the double less-than operator accepts a self receiver of methods also defined on `Kernel` reports an offense a self receiver on an rvalue accepts a self receiver used to distinguish from argument of block class methods accepts a self receiver used to distinguish from argument accepts a self receiver used to distinguish from blockarg accepts a self receiver used to distinguish from local variable accepts a self receiver used to distinguish from optional argument instance methods accepts a self receiver used to distinguish from blockarg accepts a self receiver used to distinguish from optional argument accepts a self receiver used to distinguish from an argument accepts a self receiver used to distinguish from an argument when an inner method is defined accepts a self receiver used to distinguish from local variable accepts a self receiver used to distinguish from argument RuboCop::Cop::Style::TrailingCommaInArguments with a single argument spanning multiple lines when EnforcedStyleForMultiline is consistent_comma accepts a single argument with no trailing comma with single line list of values when EnforcedStyleForMultiline is comma accepts chained single-line method calls registers an offense for trailing comma in a method call with hash parameters at the end accepts method call without parameters accepts method call without trailing comma with single element hash parameters at the end accepts method call without trailing comma when a line break before a method call accepts method call without trailing comma accepts heredoc without trailing comma registers an offense for trailing comma in a method call registers an offense for trailing comma preceded by whitespace in a method call when using safe navigation operator registers an offense for trailing comma in a method call with hash parameters at the end registers an offense for trailing comma in a method call when EnforcedStyleForMultiline is no_comma registers an offense for trailing comma in a method call accepts chained single-line method calls registers an offense for trailing comma preceded by whitespace in a method call accepts heredoc without trailing comma registers an offense for trailing comma in a method call with hash parameters at the end accepts method call without trailing comma when a line break before a method call accepts method call without trailing comma accepts method call without trailing comma with single element hash parameters at the end accepts method call without parameters when using safe navigation operator registers an offense for trailing comma in a method call registers an offense for trailing comma in a method call with hash parameters at the end when EnforcedStyleForMultiline is consistent_comma accepts method call without trailing comma when a line break before a method call accepts method call without trailing comma with single element hash parameters at the end registers an offense for trailing comma in a method call with hash parameters at the end accepts chained single-line method calls accepts method call without trailing comma accepts heredoc without trailing comma registers an offense for trailing comma in a method call registers an offense for trailing comma preceded by whitespace in a method call accepts method call without parameters when using safe navigation operator registers an offense for trailing comma in a method call with hash parameters at the end registers an offense for trailing comma in a method call with a single argument of anonymous function spanning multiple lines when EnforcedStyleForMultiline is consistent_comma accepts a single argument with no trailing comma with multi-line list of values when EnforcedStyleForMultiline is comma does not break when a safe method call is chained on the offending more complex one accepts an empty hash being passed as a method argument registers an offense for no trailing comma in a method call with hash parameters at the end accepts missing comma after heredoc with comments accepts a method call with two parameters on the same line does not break when a safe method call is chained on the offending simple one accepts trailing comma in a method call with hash parameters at the end accepts a multiline call with a single argument and trailing comma does not break when a method call is chaned on the offending one accepts a trailing comma in a method call with single line hashes accepts no trailing comma in a method call with a multiline braceless hash at the end with more than one parameter on a line when closing bracket is on same line as last value accepts a method call with Hash as last parameter split on multiple lines when EnforcedStyleForMultiline is no_comma accepts comma inside a heredoc with comments inside accepts comma inside a heredoc with method and comments inside accepts comma inside a heredoc parameter at the end accepts comma inside a heredoc in brackets auto-corrects unwanted comma after modified heredoc parameter accepts a method call with hash parameters at the end and no trailing comma accepts comma inside a modified heredoc parameter registers an offense for trailing comma in a method call with hash parameters at the end when there is string interpolation inside heredoc parameter auto-corrects unwanted comma inside string interpolation accepts comma inside a heredoc parameter accepts comma inside a heredoc parameter when on a single line when EnforcedStyleForMultiline is consistent_comma accepts trailing comma in a method call with hash parameters at the end accepts a trailing comma in a method call with a single hash parameter accepts a trailing comma in a method call with single line hashes accepts a multiline call with arguments on a single line and trailing comma accepts a multiline call with a single argument and trailing comma registers an offense for no trailing comma in a method call with hash parameters at the end accepts a trailing comma in a method call with a single hash parameter to a receiver object auto-corrects missing comma after a heredoc accepts a multiline call with single argument on multiple lines accepts no trailing comma in a method call with a block parameter at the end registers an offense for no trailing comma in a method call withtwo parameters on the same line when closing bracket is on same line as last value registers an offense for a method call, with a Hash as the last parameter, split on multiple lines RuboCop::Formatter::ProgressFormatter #file_finished when any offenses are detected calls #report_as_with_mark when no offenses are detected calls #report_as_with_mark #finished calls #report_summary when no offenses are detected does not report offenses when any offenses are detected reports all detected offenses for all failed files #report_file_as_mark when no offenses are detected prints "." when different severity offenses are detected prints highest level mark when a refactor severity offense is detected prints "R" when a refactor convention offense is detected prints "C" RuboCop::Cop::Cop will set default severity initially has 0 offenses will warn if custom severity is invalid will set custom severity if present keeps track of offenses will report registered offenses with no submodule has right department has right name #autocorrect? when the option is not given is expected to equal false when the option is given is expected to equal true when the cop is set to not autocorrect is expected to equal false when cop does not support autocorrection is expected to equal false when disable_uncorrectable is enabled is expected to equal true with lint cops has right department has right name when disabled by a comment ignore_disable_comments is true will not set offense as disabled ignore_disable_comments is false will set offense as disabled Registry #departments contains every value only once is expected to include :Style has departments is expected to include :Lint #with_department has each cop in exactly one type has at least one cop per department returns 0 for an invalid type for a cop with a name registers offense with its name setting of Offense#corrected attribute when cop does not support autocorrection is not specified (set to nil) when autocorrect is requested is not specified (set to nil) when disable_uncorrectable is enabled is set to true when cop supports autocorrection when autocorrection is not needed is set to false when offense was corrected is set to true when offense was not corrected because of an error is set to false with style cops has right name has right department .qualified_cop_name raises an error if the cop name is in more than one namespace (PENDING: Temporarily skipped with xit) returns the given cop name if it already has a namespace even when the cop exists in multiple namespaces returns the given cop name if it already has a namespace adds namespace if the cop name is found in exactly one namespace returns the cop name in a different namespace if the provided namespace is incorrect returns the given cop name if it is not found in any namespace #safe_autocorrect? when safety is undeclared is expected to equal true when auto-correction of the cop is declared unsafe is expected to equal false when cop is declared unsafe is expected to equal false #relevant_file? when the file matches the Include configuration is expected to equal true when the file is an anonymous source is expected to equal true when the file doesn't match the Include configuration is expected to equal false RuboCop::Cop::Style::SlicingWithRange >= Ruby 2.6 reports no offense for array with range inside reports no offense for excluding end reports no offense for other methods reports an offense for slicing from expression to ..-1 reports an offense for slicing to ..-1 <= Ruby 2.5 reports no offense for array slicing with -1 >= Ruby 2.7 reports no offense for startless RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout ignores implicit defs ignores single-line defs ignores defs without params new_line style opening brace on same line as first element detects closing brace on same line as last multiline element detects closing brace on same line as last element autocorrects closing brace on same line as last element allows closing brace on different line from multi-line element allows closing brace on different line from last element opening brace on separate line from first element detects closing brace on same line as last element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element autocorrects closing brace on same line from last element symmetrical style opening brace on separate line from first element allows closing brace on separate line from last element autocorrects closing brace on same line from last element detects closing brace on same line as last element allows closing brace on separate line from last multiline element opening brace on same line as first element autocorrects closing brace on different line from last element allows closing brace on same line as last multiline element detects closing brace on different line from last element allows closing brace on same line as last element same_line style opening brace on separate line from first element allows closing brace on same line as last multiline element detects closing brace on different line from last element allows closing brace on same line as last element autocorrects closing brace on different line from last element opening brace on same line as first element allows closing brace on same line as multi-line element allows closing brace on same line from last element autocorrects closing brace on different line as last element detects closing brace on different line from last element detects closing brace on different line from multiline element heredoc auto-corrects safe heredoc offenses ignores heredocs that could share a last line detects heredoc structures that are safe to add to RuboCop::Cop::Style::CommentedKeyword does not register an offense if there are no comments after keywords does not register an offense if AST contains # symbol registers an offense when commenting after keyword with spaces registers an offense when commenting on the same line as `module` registers an offense for one-line cases registers an offense when commenting on indented keywords registers an offense when commenting on the same line as `end` accepts keyword letter sequences that are not keywords registers an offense when commenting on the same line as `class` does not register an offense for certain comments registers an offense when commenting on the same line as `def` registers an offense when commenting on the same line as `begin` RuboCop::Cop::Style::AsciiComments accepts comments with only ascii chars registers an offense for comments with mixed chars registers an offense for a comment with non-ascii chars when certain non-ascii chars are allowed accepts comment with allowed non-ascii chars registers an offense for comments with non-allowed non-ascii chars RuboCop::FileFinder #find_file_upwards returns a file to be found upwards returns nil when file is not found #find_last_file_upwards returns the last file found upwards returns nil when file is not found RuboCop::Cop::Layout::FirstMethodParameterLineBreak registers an offense and corrects params listed on the first line registers an offense and corrects params on first line of singleton method accepts methods without params accepts params listed on a single line accepts params without parens accepts single-line methods registers an offense and corrects params with default values RuboCop::Cop::Lint::ScriptPermission with file permission 0644 registers an offense for script permission if auto-correction is off leaves the file intact with stdin skips investigation with file permission 0755 accepts without shebang line accepts with blank accepts with shebang line RuboCop::Cop::Style::ModuleFunction when enforced style is `forbidden` accepts `extend self` in a class registers an offense for `module_function` without an argument registers an offense for `extend self` in a module with declarative private in a module in a module with private methods when enforced style is `extend_self` registers an offense for `module_function` without an argument accepts module_function with an argument when enforced style is `module_function` accepts for `extend self` in a module with declarative private registers an offense for `extend self` in a module accepts `extend self` in a class accepts for `extend self` in a module with private methods RuboCop::Cop::Style::RedundantConditional does not register an offense for if/else with non-boolean results registers an offense for if/elsif/else with negated boolean results registers an offense for ternary with negated boolean results registers an offense for if/elsif/else with boolean results registers an offense for ternary with boolean results registers an offense for if/else with negated boolean results does not register an offense for if/elsif/else with non-boolean results allows ternary with non-boolean results registers an offense for if/else with boolean results RuboCop::CLI corrects IndentationWidth and IndentationConsistency offenseswhen using `EnforcedStyle: outdent` and `EnforcedStyle: indented_internal_methods` can correct two problems with blocks can correct HashSyntax when --only is used corrects `Lint/Lambda` and `Lint/UnusedBlockArgument` offenses corrects HeredocArgumentClosingParenthesis offenses and ignores TrailingCommaInArguments offense corrects RedundantBegin offenses and fixes indentation etc can correct IndentHash offenses with separator style corrects TrailingCommaIn(Array|Hash)Literal and Multiline(Array|Hash)BraceLayout offenses handles different SpaceInsideBlockBraces and SpaceInsideHashLiteralBraces can change block comments and indent them corrects code with indentation problems corrects IndentationWidth and IndentationConsistency offenses can correct indentation and another thing corrects Style/BlockDelimiters offenses when specifyingLayout/SpaceBeforeBlockBraces with `EnforcedStyle: no_space` together can be disabled for any cop in configuration can correct two empty lines at end of class body corrects IndentationWidth, RedundantBegin, and RescueEnsureAlignment offenses does not say [Corrected] if correction was avoided can correct empty line inside special form of nested modules corrects SymbolProc and SpaceBeforeBlockBraces offenses plays nicely with default cops in complex ExtraSpacing scenarios does not hang SpaceAfterPunctuation and SpaceInsideParens can correct two problems in the same place does not correct ExtraSpacing in a hash that would be changed back can correct a problems and the problem it creates corrects only IndentationWidth without crashing corrects InitialIndentation offenses honors Exclude settings in individual cops corrects `Layout/SpaceAroundOperators` and `Layout/ExtraSpacing` offenses when using `ForceEqualSignAlignment: true` can correct MethodCallWithoutArgsParentheses and EmptyLiteral offenses does not correct SpaceAroundOperators in a hash that would be changed back can correct TrailingEmptyLines and TrailingWhitespace offenses corrects `EnforcedStyle: hash_rockets` of `Style/HashSyntax` with `Layout/HashAlignment` corrects RedundantCopDisableDirective offenses can correct SpaceAfterComma and HashSyntax offenses corrects Tab and IndentationConsistency offenses corrects Style/BlockDelimiters offenses when specifingLayout/SpaceInsideBlockBraces together corrects Style/Next and Style/SafeNavigation offenses does not hang SpaceAfterPunctuation and SpaceInsideArrayLiteralBrackets can correct HashSyntax and SpaceAroundOperators offenses can correct MethodDefParentheses and other offense can correct WordArray and SpaceAfterComma offenses corrects Style/InverseMethods and Style/Not offenses can correct single line methods corrects LineEndConcatenation offenses leaving the RedundantInterpolation offense unchanged trailing comma cops when the style is `consistent_comma` corrects TrailingCommaInLiteral and TrailingCommaInArguments without producing a double comma when the style is `comma` corrects TrailingCommaInLiteral and TrailingCommaInArguments without producing a double comma when BlockDelimiters has line_count_based style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses when BlockDelimiters has semantic style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses when BlockDelimiters has braces_for_chaining style corrects SpaceBeforeBlockBraces, SpaceInsideBlockBraces offenses caching with no offenses in the cache doesn't correct offenses with an offense in the cache corrects offenses space_inside_bracket cops when array style is space & reference style is no space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is no_space & reference style is space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is compact & reference style is no_space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets when array style is compact & reference style is space corrects SpaceInsideArrayLiteralBrackets and SpaceInsideReferenceBrackets RuboCop::Cop::Lint::DuplicateHashKey behaves like duplicated non literal key does not register an offense for duplicated `/.#{some_method_call}/` hash keys behaves like duplicated literal key registers an offense for duplicated `"#{2}"` hash keys behaves like duplicated literal key registers an offense for duplicated `'str'` hash keys when there is a duplicated key in the hash literal registers an offense behaves like duplicated literal key registers an offense for duplicated `1.0` hash keys When there is no duplicated key in the hash does not register an offense behaves like duplicated non literal key does not register an offense for duplicated `"#{some_method_call}"` hash keys behaves like duplicated non literal key does not register an offense for duplicated `[some_method_call]` hash keys behaves like duplicated literal key registers an offense for duplicated `[1, 2, 3]` hash keys behaves like duplicated non literal key does not register an offense for duplicated `%r{abx#{foo}}ixo` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x && false)` hash keys When a key is duplicated three times in a hash literal registers two offenses behaves like duplicated literal key registers an offense for duplicated `1` hash keys behaves like duplicated literal key registers an offense for duplicated `{ a: 1, b: 2 }` hash keys behaves like duplicated literal key registers an offense for duplicated `{ :a => 1, :b => 2 }` hash keys when there are two duplicated keys in a hash registers two offenses behaves like duplicated literal key registers an offense for duplicated `/./` hash keys behaves like duplicated literal key registers an offense for duplicated `(false && true)` hash keys behaves like duplicated literal key registers an offense for duplicated `%r{abx}ixo` hash keys behaves like duplicated non literal key does not register an offense for duplicated `some_method_call` hash keys behaves like duplicated non literal key does not register an offense for duplicated `{ :sym => some_method_call }` hash keys behaves like duplicated non literal key does not register an offense for duplicated `some_method_call(x, y)` hash keys behaves like duplicated literal key registers an offense for duplicated `false` hash keys behaves like duplicated literal key registers an offense for duplicated `!true` hash keys behaves like duplicated literal key registers an offense for duplicated `nil` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x or false)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `{ some_method_call => :sym }` hash keys behaves like duplicated literal key registers an offense for duplicated `(1)` hash keys target ruby version >= 2.6 behaves like duplicated literal key registers an offense for duplicated `(42..)` hash keys behaves like duplicated literal key registers an offense for duplicated `(false <=> true)` hash keys behaves like duplicated non literal key does not register an offense for duplicated `(x == false)` hash keys behaves like duplicated literal key registers an offense for duplicated `(false or true)` hash keys RuboCop::Cop::Lint::FormatParameterMismatch ignores percent right next to format string finds faults even when the string looks like a HEREDOC does not register an offense when using named parameters with escaped `%` correctly ignores double percent does not register an offense for format with splat argument does not register an offense when using named parameters accepts an extra arg for dynamic width with other preceding flags does not register offense for `String#%` when arguments, fields match registers an offense if extra argument for dynamic width not given registers an offense for String#% registers offense with sprintf registers an offense when calling Kernel.sprintf and the fields do not match does not register an offense when arguments and fields match accepts an extra argument for dynamic width registers an offense when there are less arguments than expected does not register an offense when single argument is a hash constants do not register offenses registers an offense when there are more arguments than expected does not register an offense for sprintf with splat argument does not register an offense argument is the result of a message send does not register an offense when single argument is not an array registers an offense when calling Kernel.format and the fields do not match correctly parses different sprintf formats identifies correctly digits for spacing in format when format is not a string literal does not register an offense when format is invalid registers an offense when argument itself contains format characters and formats in format string and argument are not equal ignores argument formatting behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable behaves like variables does not register an offense for % called on a variable does not register an offense for format called on a variable does not register an offense for format called on a variable when using (digit)$ flag registers an offense when mismatch between the maximum value specified by (digit)$ flag and the number of arguments does not register an offense does not register an offense when match between the maximum value specified by (digit)$ flag and the number of arguments on format with %<> interpolations and 1 argument does not register an offense and multiple arguments registers an offense behaves like variables does not register an offense for format called on a variable does not register an offense for format called on a variable does not register an offense for % called on a variable when splat argument is present does not register an offense when args count is less than expected when args count is more than expected registers an offense for `#sprintf` registers an offense for `#format` registers an offense for `#%` with wildcard does not register an offense for width and precision does not register an offense for multiple wildcards does not register an offense for precision does not register an offense for width on format with %{} interpolations and multiple arguments registers an offense and 1 argument does not register an offense behaves like variables does not register an offense for format called on a variable does not register an offense for % called on a variable does not register an offense for format called on a variable when passed an empty array does not register an offense when multiple arguments are called for and a single variable argument is passed does not register an offense and a single send node is passed does not register an offense behaves like variables does not register an offense for format called on a variable does not register an offense for % called on a variable does not register an offense for format called on a variable RuboCop::Cop::Naming::VariableName when configured for camelCase accepts assignment with indexing of self accepts camel case in instance variable name registers an offense for keyword arguments registers an offense for snake case in local variable name registers an offense for default method arguments registers an offense for snake case in method parameter registers an offense for keyword rest arguments registers an offense for block arguments accepts one symbol size local variables accepts screaming snake case constants registers an offense for rest arguments accepts assigning to camel case constant registers an offense for camel case when invoking method args accepts screaming snake case globals registers an offense for opposite + correct accepts camel case in local variable name accepts camel case local variables marked as unused accepts camel case in class variable name accepts local variables marked as unused when configured for snake_case accepts assignment with indexing of self accepts one symbol size local variables registers an offense for keyword rest arguments accepts screaming snake case globals registers an offense for default method arguments accepts assigning to camel case constant registers an offense for rest arguments registers an offense for keyword arguments accepts screaming snake case constants registers an offense for block arguments registers an offense for camel case local variables marked as unused registers an offense for camel case in class variable name registers an offense for camel case in instance variable name registers an offense for method arguments registers an offense for camel case when invoking method args registers an offense for correct + opposite registers an offense for camel case in local variable name accepts local variables marked as unused RuboCop::Cop::Layout::FirstHashElementLineBreak ignores implicit hashes in method calls without parens registers an offense and corrects hash nested in a method call ignores implicit hashes in method calls with parens ignores elements listed on a single line ignores implicit hashes in method calls that are improperly formatted registers an offense and corrects elements listed on the first line RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault when EnforcedStyle is no_space registers an offense and corrects default value assignment with space accepts default value assignment without space registers an offense and corrects assignment of empty list with space registers an offense and corrects assignment of empty string with space when EnforcedStyle is space registers an offense and corrects default value assignment without space accepts default value assignment with spaces and unary + operator accepts default value assignment with space registers an offense and corrects assigning empty string without space registers an offense and corrects assignment of empty list without space registers an offense and corrects missing space for arguments with unary operators RuboCop::Cop::Style::TrailingMethodEndStatement register offense with trailing end on 2 line method auto-corrects all trailing ends for larger example register offense with trailing end on method with comment register offense with trailing end on 3 line method register offense with trailing end inside class register offense with trailing end on method with block does not register on single line no op does not register on single line method RuboCop::Cop::Style::SingleLineBlockParams allows an unused parameter to have a leading underscore does not report if no block arguments are present does not report when destructuring is used finds incorrectly named parameters with leading underscores ignores :reduce symbols allows calls with proper argument names finds wrong argument names in calls with different syntax ignores do..end blocks RuboCop::Cop::Style::MethodCalledOnDoEndBlock with a multi-line do..end block accepts a chained block accepts it if there is no chained call registers an offense for a chained call when using safe navigation operator registers an offense for a chained call with a {} block accepts a single-line block with a chained call accepts a multi-line block with a chained call with a single-line do..end block accepts a single-line do..end block with a chained block registers an offense for a chained call RuboCop::Cop::Style::RedundantAssignment does not register an offense when ensure block present accepts empty method body reports an offense for def ending with assignment and returning accepts empty when nodes accepts empty if body when inside begin-end body registers an offense and auto-corrects when inside a when-branch registers an offense and auto-corrects when inside an if-branch registers an offense and auto-corrects when rescue blocks present does register an offense and auto-corrects when inside function or rescue block RuboCop::Cop::Style::MethodCallWithoutArgsParentheses auto-corrects calls that could be empty literals accepts special lambda call syntax ignores method listed in IgnoredMethods accepts parens in method call with args registers an offense for `obj.method += func()` registers an offense for `obj.method ||= func()` accepts parentheses for methods starting with an upcase letter registers an offense for parens in method call without args registers an offense for `obj.method &&= func()` accepts parens after not method call as argument accepts without parens registers an offense with empty parens registers an empty parens offense for multiple assignment assignment to a variable with the same name accepts parens in shorthand assignment accepts parens in local variable assignment accepts parens in parallel assignment accepts parens in complex assignment RuboCop::Cop::Lint::UnreachableCode accepts `exit` is in `if` branch only accepts `next` is in `if` branch only accepts `redo` is not in `elsif` branch accepts `retry` is not in `elsif` branch accepts `raise` is in all `if` branchsi registers an offense for `redo` in all `if` and `elsif` branches accepts `raise` is not in `elsif` branch accepts `next` is in `if`, and without `else` accepts `exit` as the final expression registers an offense for `throw` in all `if` and `elsif` branches accepts `break` as the final expression registers an offense for `break` in all `if` branches accepts `fail` as the final expression accepts `retry` is in `else` branch only registers an offense for `exit` in all `if` branches registers an offense for `fail` before other statements accepts `retry` as the final expression accepts `fail` is in `else` branch only registers an offense for `fail` in all `if` and `elsif` branches registers an offense for `redo` before other statements registers an offense for `raise` in all `if` brancheswith other expressions accepts `exit!` is in `if` branch only accepts `throw` is in `case` branch without else registers an offense for `raise` in all `if` and `elsif` branches registers an offense for `fail` in all `case` branches registers an offense for `abort` in all `if` branches registers an offense for `raise` in `begin` registers an offense for `break` before other statements registers an offense for `break` in `begin` accepts `return` is in `case` branch without else accepts `exit` is in `if`, and without `else` registers an offense for `redo` in all `case` branches accepts `throw` is in `if`, and without `else` registers an offense for `redo` in all `if` brancheswith other expressions registers an offense for `fail` in all `if` brancheswith other expressions accepts `retry` is in `if` branch only accepts code with conditional `abort` accepts `fail` is in `if`, and without `else` registers an offense for `next` before other statements accepts `redo` is in `else` branch only registers an offense for `next` in all `if` brancheswith other expressions registers an offense for `throw` in all `if` brancheswith other expressions accepts `exit!` is in all `if` branchsi accepts `fail` is in `if` branch only accepts `throw` is not in `elsif` branch registers an offense for `abort` in all `if` and `elsif` branches registers an offense for `retry` in all `if` branches registers an offense for `redo` in all `if` branches registers an offense for `raise` in all `if` branches accepts `return` as the final expression registers an offense for `exit!` in all `if` brancheswith other expressions accepts `exit` is not in `elsif` branch accepts `return` is not in `elsif` branch accepts `exit` is in `case` branch without else accepts `return` is in `if`, and without `else` accepts `abort` as the final expression accepts code with conditional `redo` accepts `break` is in `if`, and without `else` registers an offense for `exit` in all `if` brancheswith other expressions registers an offense for `exit!` in all `if` branches registers an offense for `next` in `begin` registers an offense for `exit` in all `if` and `elsif` branches accepts code with conditional `fail` registers an offense for `abort` before other statements accepts `exit!` is in `else` branch only accepts `return` is in `if` branch only registers an offense for `fail` in `begin` accepts `next` is in all `if` branchsi accepts code with conditional `raise` registers an offense for `next` in all `case` branches accepts `throw` as the final expression accepts `abort` is not in `elsif` branch accepts `abort` is in `else` branch only accepts `abort` is in all `if` branchsi registers an offense for `retry` in all `if` and `elsif` branches registers an offense for `raise` in all `case` branches registers an offense for `exit!` in all `case` branches accepts `return` is in `else` branch only registers an offense for `break` in all `if` brancheswith other expressions registers an offense for `abort` in all `case` branches accepts `throw` is in all `if` branchsi accepts `exit!` is in `case` branch without else accepts `exit!` is in `if`, and without `else` accepts `exit!` is not in `elsif` branch registers an offense for `throw` in all `if` branches accepts code with conditional `exit!` registers an offense for `return` in `begin` registers an offense for `break` in all `if` and `elsif` branches registers an offense for `retry` in all `if` brancheswith other expressions accepts `raise` is in `if` branch only accepts `retry` is in all `if` branchsi accepts `abort` is in `case` branch without else accepts `redo` is in `if`, and without `else` accepts `break` is not in `elsif` branch accepts `retry` is in `if`, and without `else` accepts `fail` is in all `if` branchsi accepts `retry` is in `case` branch without else accepts `abort` is in `if` branch only accepts code with conditional `throw` registers an offense for `retry` before other statements accepts `redo` is in `case` branch without else registers an offense for `throw` in `begin` accepts code with conditional `return` registers an offense for `return` in all `case` branches registers an offense for `throw` in all `case` branches accepts `raise` is in `case` branch without else accepts `next` as the final expression accepts `next` is not in `elsif` branch accepts `throw` is in `else` branch only accepts `throw` is in `if` branch only accepts `fail` is in `case` branch without else accepts `break` is in all `if` branchsi accepts `raise` as the final expression registers an offense for `abort` in all `if` brancheswith other expressions registers an offense for `next` in all `if` branches accepts `break` is in `if` branch only registers an offense for `next` in all `if` and `elsif` branches registers an offense for `exit!` before other statements registers an offense for `retry` in `begin` accepts `raise` is in `if`, and without `else` accepts `next` is in `else` branch only registers an offense for `fail` in all `if` branches accepts `exit` is in `else` branch only accepts `redo` as the final expression registers an offense for `throw` before other statements registers an offense for `return` in all `if` and `elsif` branches registers an offense for `abort` in `begin` registers an offense for `break` in all `case` branches registers an offense for `exit` before other statements accepts `exit` is in all `if` branchsi accepts code with conditional `exit` accepts `break` is in `case` branch without else accepts `raise` is in `else` branch only registers an offense for `return` in all `if` brancheswith other expressions registers an offense for `return` in all `if` branches accepts `fail` is not in `elsif` branch accepts `redo` is in all `if` branchsi registers an offense for `redo` in `begin` registers an offense for `return` before other statements accepts code with conditional `retry` accepts `return` is in all `if` branchsi registers an offense for `exit!` in `begin` accepts `exit!` as the final expression accepts `abort` is in `if`, and without `else` accepts `redo` is in `if` branch only registers an offense for `retry` in all `case` branches accepts code with conditional `next` registers an offense for `exit` in `begin` registers an offense for `exit` in all `case` branches accepts code with conditional `break` accepts `break` is in `else` branch only accepts `next` is in `case` branch without else registers an offense for `raise` before other statements registers an offense for `exit!` in all `if` and `elsif` branches RuboCop::Cop::Naming::FileName when Regex is set with a matching name does not register an offense with a non-matching name registers an offense with non-snake-case file names with a shebang does not report an offense when IgnoreExecutableScripts is disabled reports an offense when CheckDefinitionPathHierarchy is false in a non-matching directory, but with a matching class does not register an offense with a matching module containing a non-matching class does not register an offense on a file with a matching class does not register an offense with a non-matching module containing a matching class does not register an offense on an empty file registers an offense on a file with a non-matching class registers an offense with camelCase file names ending in .rb reports an offense when the file is specified in AllCops/Include with a non-snake_case file name does not report an offense with acronym namespace does not register an offense when ExpectMatchingDefinition is true on a file which defines no class or module at all under src registers an offense under lib registers an offense under test registers an offense under spec registers an offense under some other random directory registers an offense on an empty file registers an offense on a file which uses Name::Spaced::Module syntax in a directory with multiple instances of src does not register an offense in a directory elsewhere which only matches the module name does not register an offense in a non-matching directory under spec registers an offense in a matching directory under spec does not register an offense in a directory with multiple instances of lib does not register an offense in a non-matching directory under lib registers an offense in a matching directory under src does not register an offense in a directory with multiple instances of test does not register an offense in a non-matching directory under src registers an offense in a directory with multiple instances of spec does not register an offense in a directory elsewhere which does not match the module name registers an offense in a non-matching directory under test registers an offense in a matching directory under test does not register an offense in a matching directory under lib does not register an offense on a file which defines a nested class in a non-matching directory under test registers an offense in a directory with multiple instances of lib does not register an offense in a matching directory under lib does not register an offense in a directory with multiple instances of test does not register an offense in a matching directory under src does not register an offense in a directory with multiple instances of spec does not register an offense in a matching directory under test does not register an offense in a directory elsewhere which only matches the module name does not register an offense in a matching directory under spec does not register an offense in a non-matching directory under src registers an offense in a directory elsewhere which does not match the module name registers an offense in a directory with multiple instances of src does not register an offense in a non-matching directory under spec registers an offense in a non-matching directory under lib registers an offense on an empty file with a space in its filename registers an offense on a file which defines multiple classes in a non-matching directory under lib registers an offense in a directory elsewhere which only matches the module name does not register an offense in a directory with multiple instances of src does not register an offense in a non-matching directory under src registers an offense in a non-matching directory under test registers an offense in a matching directory under src does not register an offense in a directory with multiple instances of lib does not register an offense in a directory elsewhere which does not match the module name registers an offense in a matching directory under test does not register an offense in a directory with multiple instances of test does not register an offense in a non-matching directory under spec registers an offense in a matching directory under spec does not register an offense in a directory with multiple instances of spec does not register an offense in a matching directory under lib does not register an offense on a file which defines a nested module in a directory elsewhere which does not match the module name registers an offense in a non-matching directory under lib registers an offense in a directory with multiple instances of spec does not register an offense in a non-matching directory under spec registers an offense in a non-matching directory under src registers an offense in a matching directory under src does not register an offense in a matching directory under spec does not register an offense in a non-matching directory under test registers an offense in a directory with multiple instances of src does not register an offense in a directory with multiple instances of test does not register an offense in a matching directory under test does not register an offense in a matching directory under lib does not register an offense in a directory elsewhere which only matches the module name does not register an offense in a directory with multiple instances of lib does not register an offense with dotfiles does not report an offense with snake_case file names with multiple extensions does not report an offense with camelCase file names without file extension reports an offense with include acronym name does not register an offense with snake_case names which use ? and ! does not report an offense with snake_case file names with non-rb extension does not report an offense with acronym class name does not register an offense with snake_case file names ending in .rb reports an offense with snake_case file names without file extension does not report an offense with snake_case names which use + does not report an offense RuboCop::Cop::Layout::ParameterAlignment aligned with fixed indentation doesn't get confused by splat accepts proper indentation accepts a method definition without parameters registers an offense and corrects parameters aligned to first param accepts the first parameter being on a new row registers an offense and corrects parameters with double indent accepts parameter lists on a single line defining self.method accepts proper indentation registers an offense and corrects parameters aligned to first param aligned with first parameter accepts proper indentation registers an offense and corrects parameters with single indent registers an offense and corrects alignment in simple case accepts the first parameter being on a new row accepts a method definition without parameters accepts parameter lists on a single line registers an offense and corrects parameters with double indent doesn't get confused by splat defining self.method registers an offense and corrects parameters with single indent accepts proper indentation RuboCop::Cop::Security::Open accepts open with a string that interpolates a literal accepts File.open as method accepts open with string that has a prefixed interpolation accepts open as variable registers an offense for open with string that starts with a pipe registers an offense for open with dynamic string that is not prefixed registers an offense for open accepts open with no arguments accepts open with prefix string literal plus something accepts open on a literal string registers an offense for open with mode argument RuboCop::Cop::Layout::ClosingHeredocIndentation does not register an offense for a << heredoc accepts correctly indented closing heredoc accepts correctly indented closing heredoc when aligned at the beginning of method definition and using `strip_indent` accepts correctly indented closing heredoc when heredoc contents with blank line accepts correctly indented closing heredoc when heredoc contents is after closing heredoc registers an offense for bad indentation of a closing heredoc accepts correctly indented closing heredoc when heredoc contents is before closing heredoc registers an offense for incorrectly indented empty heredocs does not register an offense for correctly indented empty heredocs accepts correctly indented closing heredoc when aligned at the beginning of method definition accepts correctly indented closing heredoc when aligned at the beginning of method definition and content is empty RuboCop::Cop::Style::ArrayJoin autocorrects '*' to 'join' when setting to a variable does not register an offense for numbers does not register an offense for ambiguous cases registers an offense for an array followed by string autocorrects '*' to 'join' when there are no spaces RuboCop::Cop::Naming::MemoizedInstanceVariableName EnforcedStyleForLeadingUnderscores: required does not register an offense with a leading `_` for both names registers an offense when names match but missing a leading _ registers an offense when it has leading `_` but names do not match EnforcedStyleForLeadingUnderscores: optional memoized variable matches method name does not register an offense with a leading `_` for both names does not register an offense with a leading underscore does not register an offense with a leading `_` for method name does not register an offense without a leading underscore with default EnforcedStyleForLeadingUnderscores => disallowed memoized variable does not match class method name registers an offense memoized variable does not match method name for block registers an offense memoized variable matches method name does not register an offense with a leading `_` for both names does not registers an offense when method has leading `_` does not register an offense memoized variable matches predicate method name does not register an offense memoized variable matches bang method name does not register an offense code follows memoized variable assignment does not register an offense instance variables in initialize methods does not register an offense memoized variable after other code does not register an offense memoized variable matches method name during assignment does not register an offense memoized variable matches method name for block does not register an offense non-memoized variable does not match method name does not register an offense memoized variable does not match method name during assignment registers an offense memoized variable does not match method name registers an offense memoized variable after other code does not match method name registers an offense for a predicate method registers an offense registers an offense for a bang method RuboCop::Cop::Layout::SpaceInsideStringInterpolation when EnforcedStyle is no_space accepts empty interpolation does not touch spaces inside the interpolated expression for "space" style formatted string interpolations registers offenses and autocorrects for ill-formatted string interpolations registers offenses and autocorrects finds interpolations in string-like contexts for well-formatted string interpolations accepts excess literal spacing when interpolation starts or ends with a line break ignores comments and whitespace when looking for line breaks does not register an offense when EnforcedStyle is space accepts empty interpolation for "no_space" style formatted string interpolations registers offenses and autocorrects for ill-formatted string interpolations registers offenses and autocorrects for well-formatted string interpolations does not register an offense for excess literal spacing RuboCop::Cop::Style::MultilineWhenThen doesn't register an offense for multiline when statement without then doesn't register an offense for multiline when statementwith then followed by other lines doesn't register an offense for singleline when statement with then does not register an offense for hash when statement with then doesn't register an offense for empty when statement without then registers an offense for empty when statement with then does not register an offense for array when statement with then autocorrects when the body of `when` branch starts with `then` registers an offense for multiline when statement with then doesn't register an offense when `then` required for a body of `when` is used RuboCop::Cop::Metrics::PerceivedComplexity when method is in list of ignored methods does not register an offense when defining a class method does not register an offense when defining an instance method does not register an offense when using `define_method` when Max is 2 counts stupid nested if and else blocks when Max is 1 registers an offense for a `define_method` registers an offense for || counts known iterating block registers an offense for a rescue block registers an offense for a while block deals with nested if blocks containing && and || counts else in a case with no argument registers an offense for elsif and else blocks accepts complex code outside of methods accepts an empty method counts only a single method does not count unknown block calls registers an offense for or registers an offense for a ternary operator accepts an empty `define_method` registers an offense for and accepts a method with no decision points registers an offense for a case/when block without an expression after case registers an offense for a case/when block registers an offense for a for block registers an offense for && registers an offense for an unless modifier registers an offense for an if modifier registers an offense for an until block RuboCop::Cop::Lint::RedundantWithIndex registers an offense when using `ary.each.with_index(1) { |v| v }` and correct to `ary.each { |v| v }` accepts an index is used as a block argument registers an offense for `ary.each_with_index { |v| v }` and corrects to `ary.each` registers an offense when using `ary.each_with_object([]).with_index { |v| v }` and corrects to `ary.each_with_object([]) { |v| v }` registers an offense when using `ary.each.with_index { |v| v }` and corrects to `ary.each` RuboCop::Cop::Style::MultipleComparison does not register an offense for a duplicated condition does not register an offense for comparing multiple literal strings does not register an offense for a == b || b == a does not register an offense for Array#include? does not register an offense for comparing lvars when a string is on the lefthand side registers an offense when `a` is compared three times does not register an offense for comparing lvars registers an offense when multiple comparison is not part of a conditional does not register an offense for comparing an lvar does not register an offense for comparing multiple int literals registers an offense when `a` is compared three times, once on the righthand side registers an offense when `a` is compared twice registers an offense when `a` is compared three times on the right hand side RuboCop::Cop::Style::ConditionalAssignment SingleLineConditionsOnly false corrects assignment to a multiline if elsif else condition corrects assignment to an if elsif else with multiple elsifs corrects assignment to a case when else with multiple whens corrects assignment to a case when else condition corrects assignment to a multiline if else condition corrects assignment to an unless else condition behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to if else behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all variable types does not crash for rescue assignment registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if else allows assignment to if without else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsewith multiple assignment behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all variable types registers an offense assigning any variable type to if else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsif else registers an offense for assigning any variable type to case when allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense assigning any variable type to unless else behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to a multiline if else assigning any variable type to a multiline unless else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all variable types allows assignment to if without else registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to if elsif else does not crash for rescue assignment registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if else behaves like multiline all variable types offense assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else assigning any variable type to a multiline case when assigning any variable type to a multiline unless else assigning any variable type to a multiline if else behaves like multiline all variable types offense assigning any variable type to a multiline unless else assigning any variable type to a multiline case when assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to ternary allows any assignment to if without else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary behaves like multiline all variable types offense assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to unless else registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to ternary behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when allows any assignment to if without else behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline if else behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else registers an offense for any assignment to ternary behaves like all assignment types registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to ternary allows any assignment to if without else behaves like single line condition auto-correct corrects assignment to an if else condition corrects assignment to an unless else condition corrects assignment to an if elsif else condition corrects assignment to a case when else condition corrects assignment to an if elsif else with multiple elsifs corrects assignment to a ternary operator corrects assignment to a case when else with multiple whens behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary does not crash for rescue assignment registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment behaves like multiline all variable types offense assigning any variable type to a multiline case when assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline if else behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else behaves like all assignment types registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like all assignment types registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to unless else behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to unless else behaves like all assignment types registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary behaves like all variable types registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if else allows assignment to if without else registers an offense assigning any variable type to unless else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else behaves like all assignment types registers an offense any assignment to if else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when behaves like all assignment types registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else behaves like multiline all assignment types offense any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types offense any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like all assignment types registers an offense any assignment to case when registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense for any assignment to ternary allows any assignment to if without else behaves like all variable types registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if else allows assignment to if without else registers an offense for assigning any variable type to case when does not crash for rescue assignment behaves like all variable types registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else allows assignment to if without else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if else does not crash for rescue assignment behaves like all assignment types registers an offense for any assignment to ternary allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense any assignment to case when behaves like multiline all assignment types offense any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when SingleLineConditionsOnly true registers an offense for assignment using []= corrects assignment to a namespaced constant registers an offense for assignment to an if then else allows a method call in the subject of a ternary operator registers an offense for assignment using a method that ends with an equal sign registers an offense for assignment to case when then else corrects assignment when without `else` branch behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to if else registers an offense any assignment to case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense any assignment to if else behaves like all variable types does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if else registers an offense assigning any variable type to ternary allows assignment to if without else behaves like multiline all variable types allow assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if else assigning any variable type to a multiline unless else assigning any variable type to a multiline case when assigning any variable type to a multiline if elsif else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like all assignment types registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to if else allows any assignment to if without else registers an offense any assignment to case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to if elsif else allows assignment to if without else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense assigning any variable type to unless else behaves like single line condition auto-correct corrects assignment to a case when else with multiple whens corrects assignment to an if else condition corrects assignment to an if elsif else condition corrects assignment to an if elsif else with multiple elsifs corrects assignment to an unless else condition corrects assignment to a ternary operator corrects assignment to a case when else condition behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like multiline all variable types allow assigning any variable type to a multiline if elsif else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline case when assigning any variable type to a multiline if else assigning any variable type to a multiline unless else behaves like all variable types registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if else does not crash for rescue assignment registers an offense assigning any variable type to unless else allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary allows any assignment to if without else registers an offense any assignment to if else registers an offense for any assignment to unless else registers an offense any assignment to case when behaves like all variable types registers an offense assigning any variable type to if elsif else does not crash for rescue assignment allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment registers an offense assigning any variable type to ternary registers an offense for assigning any variable type to case when registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if else behaves like all assignment types registers an offense any assignment to case when allows any assignment to if without else registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to if else behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else behaves like multiline all variable types allow assigning any variable type to a multiline if elsif else assigning any variable type to a multiline case when assigning any variable type to a multiline if else assigning any variable type to a multiline unless else assigning any variable type to an if else with multiline in one branch behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like all assignment types registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary behaves like all assignment types registers an offense for any assignment to unless else registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else behaves like multiline all variable types allow assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline if elsif else assigning any variable type to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all variable types registers an offense assigning any variable type to if else registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense for assigning any variable type to case when allows assignment to if without else registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to unless else behaves like all variable types allows assignment to if without else registers an offense assigning any variable type to if elsewith multiple assignment does not crash for rescue assignment registers an offense assigning any variable type to unless else registers an offense assigning any variable type to if else registers an offense assigning any variable type to if elsif else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to ternary behaves like all assignment types registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else allows any assignment to if without else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else for loop ignores pseudo assignments in a for loop behaves like all variable types registers an offense assigning any variable type to ternary registers an offense assigning any variable type to if else registers an offense for assigning any variable type to case when registers an offense assigning any variable type to unless else does not crash for rescue assignment registers an offense assigning any variable type to if elsif else registers an offense assigning any variable type to if elsewith multiple assignment allows assignment to if without else behaves like multiline all variable types allow assigning any variable type to a multiline case when assigning any variable type to a multiline if else assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else assigning any variable type to a multiline unless else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when behaves like multiline all variable types allow assigning any variable type to a multiline unless else assigning any variable type to a multiline if elsif else assigning any variable type to a multiline if else assigning any variable type to a multiline case when assigning any variable type to an if else with multiline in one branch behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like all assignment types registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense any assignment to if else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline unless else any assignment to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline if else any assignment to a multiline unless else behaves like all assignment types registers an offense any assignment to if else registers an offense for any assignment to unless else allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when behaves like multiline all assignment types allow any assignment to a multiline if else any assignment to a multiline case when any assignment to a multiline unless else behaves like all assignment types registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like all assignment types registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense for any assignment to unless else allows any assignment to if without else registers an offense any assignment to if else behaves like all assignment types registers an offense for any assignment to ternary allows any assignment to if without else registers an offense for any assignment to unless else registers an offense any assignment to case when registers an offense any assignment to if else behaves like all assignment types allows any assignment to if without else registers an offense any assignment to if else registers an offense any assignment to case when registers an offense for any assignment to ternary registers an offense for any assignment to unless else behaves like all assignment types registers an offense for any assignment to unless else registers an offense for any assignment to ternary registers an offense any assignment to case when allows any assignment to if without else registers an offense any assignment to if else behaves like all assignment types allows any assignment to if without else registers an offense for any assignment to ternary registers an offense any assignment to case when registers an offense any assignment to if else registers an offense for any assignment to unless else behaves like multiline all assignment types allow any assignment to a multiline case when any assignment to a multiline unless else any assignment to a multiline if else behaves like multiline all variable types allow assigning any variable type to an if else with multiline in one branch assigning any variable type to a multiline if elsif else assigning any variable type to a multiline unless else assigning any variable type to a multiline if else assigning any variable type to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline if else any assignment to a multiline case when behaves like multiline all assignment types allow any assignment to a multiline unless else any assignment to a multiline case when any assignment to a multiline if else IncludeTernaryExpressions false allows assigning any variable type to ternary RuboCop::Cop::Lint::SafeNavigationConsistency registers an offense and corrects using safe navigation on the right of && allows && without safe navigation registers an offense but does not correct non dot method calls allows calls to methods that nil responds to registers and corrects multiple offenses registers an offense and corrects using unsafe navigation with both && and || registers an offense and corrects using unsafe navigation and the safe navigation appears in a group allows || without safe navigation registers an offense and corrects using safe navigation on the right of || registers a single offense and corrects when safe navigation is used multiple times registers an offense and corrects unsafe navigation that appears before safe navigation registers an offense and corrects when there is code before or after the condition registers an offense and corrects using safe navigation inside of separated conditions registers an offense and corrects using safe navigation on the left of || registers an offense and corrects using safe navigation in conditions on the right hand side registers an offense and corrects using safe navigation on the left of && registers an offense and corrects assignment allows safe navigation when different variables are used registers an offense and corrects using unsafe navigation with grouped conditions RuboCop::Cop::Style::MinMax with an array literal containing calls to `#min` and `#max` when the expression stands alone does not register an offense if the receiver is implicit does not register an offense if there are additional elements registers an offense if the receivers match does not register an offense if the receivers do not match when the expression is used as a return value does not register an offense if the receivers do not match does not register an offense if there are additional elements registers an offense if the receivers match does not register an offense if the receiver is implicit when the expression is used in a parallel assignment does not register an offense if the receivers do not match does not register an offense if the receiver is implicit registers an offense if the receivers match does not register an offense if there are additional elements RuboCop::Cop::Layout::EndOfLine when EnforcedStyle is lf does not register offenses after __END__ registers an offense for CR at end of file accepts an empty file registers an offense for CR+LF highlights the whole offending line and there are many lines ending with CR+LF can inspect non-UTF-8 encoded source with proper encoding comment registers only one offense and the default external encoding is US_ASCII does not crash on UTF-8 encoded non-ascii characters can inspect non-UTF-8 encoded source with proper encoding comment and source is a string registers an offense when EnforcedStyle is native registers an offense for an incorrect EOL when EnforcedStyle is crlf highlights the whole offending line registers an offense for CR+LF does not register offense for no CR at end of file does not register offenses after __END__ accepts an empty file and source is a string registers an offense and the default external encoding is US_ASCII does not crash on UTF-8 encoded non-ascii characters can inspect non-UTF-8 encoded source with proper encoding comment and there are many lines ending with LF can inspect non-UTF-8 encoded source with proper encoding comment registers only one offense RuboCop::Cop::Style::RedundantFreeze allows .freeze on method call behaves like immutable objects registers an offense for frozen 1 behaves like immutable objects registers an offense for frozen (a > b) behaves like mutable objects allows [1, 2, 3] with freeze behaves like immutable objects registers an offense for frozen (1 + 2) behaves like mutable objects allows (a + b) with freeze behaves like immutable objects registers an offense for frozen ('a' > 'b') behaves like mutable objects allows "top#{1 + 2}" with freeze behaves like immutable objects registers an offense for frozen 'foo'.count behaves like mutable objects allows ('a' * 20) with freeze behaves like mutable objects allows ('a' + 'b') with freeze behaves like immutable objects registers an offense for frozen :"" behaves like mutable objects allows { a: 1, b: 2 } with freeze behaves like immutable objects registers an offense for frozen [1, 2, 3].size behaves like immutable objects registers an offense for frozen 1.5 behaves like immutable objects registers an offense for frozen (2 > 1) behaves like mutable objects allows /./ with freeze behaves like immutable objects registers an offense for frozen ENV['foo'] behaves like mutable objects allows 'str' with freeze behaves like immutable objects registers an offense for frozen ::ENV['foo'] behaves like mutable objects allows (1..5) with freeze behaves like mutable objects allows (1...5) with freeze behaves like immutable objects registers an offense for frozen :sym when the receiver is a frozen string literal when the frozen string literal comment is true behaves like immutable objects registers an offense for frozen "#{a}" when the frozen string literal comment is false behaves like mutable objects allows "#{a}" with freeze when the frozen string literal comment is missing behaves like mutable objects allows "#{a}" with freeze RuboCop::Cop::Lint::RaiseException registers an offense and corrects for `fail` with `Exception.new` and message registers an offense and corrects for `raise` with `::Exception` and message registers an offense and corrects for `fail` with `Exception` registers an offense and corrects for `raise` with `Exception` and message does not register an offense for `raise` without arguments registers an offense and corrects for `raise` with `Exception` registers an offense and corrects for `raise` with `Exception.new(args*)` registers an offense and corrects for `raise` with `Exception.new` and message does not register an offense for `fail` without arguments does not register an offense when raising Exception with explicit namespace registers an offense and corrects for `raise` with `::Exception.new` registers an offense and corrects for `fail` with `Exception` and message registers an offense and corrects for `raise` with `::Exception` when under namespace does not register an offense when Exception without cbase specified registers an offense and corrects when Exception with cbase specified RuboCop::Cop::Layout::MultilineMethodCallBraceLayout ignores calls with a multiline empty brace ignores implicit calls ignores calls without arguments ignores calls with an empty brace ignores single-line calls when comment present before closing brace corrects closing brace without crashing behaves like multiline literal brace layout trailing comma same_line style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line as last element symmetrical style opening brace on same line as first element last element has a trailing comma autocorrects closing brace on different line from last element behaves like multiline literal brace layout new_line style opening brace on same line as first element detects closing brace on same line as last multiline element allows closing brace on different line from multi-line element allows closing brace on different line from last element autocorrects closing brace on same line as last element detects closing brace on same line as last element opening brace on separate line from first element allows closing brace on separate line from last element allows closing brace on separate line from last multiline element autocorrects closing brace on same line from last element detects closing brace on same line as last element symmetrical style opening brace on separate line from first element allows closing brace on separate line from last multiline element autocorrects closing brace on same line from last element detects closing brace on same line as last element allows closing brace on separate line from last element opening brace on same line as first element allows closing brace on same line as last element autocorrects closing brace on different line from last element detects closing brace on different line from last element allows closing brace on same line as last multiline element with a chained call on the closing brace and a comment after the last element does not autocorrect the closing brace detects closing brace on separate line from last element but no comment after the last element autocorrects the closing brace heredoc auto-corrects safe heredoc offenses detects heredoc structures that are safe to add to ignores heredocs that could share a last line same_line style opening brace on separate line from first element detects closing brace on different line from last element allows closing brace on same line as last multiline element allows closing brace on same line as last element autocorrects closing brace on different line from last element opening brace on same line as first element allows closing brace on same line from last element detects closing brace on different line from last element detects closing brace on different line from multiline element allows closing brace on same line as multi-line element autocorrects closing brace on different line as last element with a chained call on the closing brace and a comment after the last element detects closing brace on separate line from last element does not autocorrect the closing brace but no comment after the last element autocorrects the closing brace when EnforcedStyle is new_line ignores single-line calls with multi-line receiver still ignores single-line calls ignores single-line calls with multi-line receiver with leading dot RuboCop::Cop::Style::CaseLikeIf registers an offense and corrects when target is a method call does not register an offense when using `match?` without a receiver registers an offense and corrects when using `is_a?` does not register an offense when using `unless` registers an offense and corrects when using `match?` with non regexp in other branches except first does not register an offense when using `match?` in first branch with non regexp registers an offense and corrects when using `||` within conditions registers an offense and corrects when using `===` does not register an offense when only single `if` does not register an offense when only `if-else` registers an offense and corrects when using `match?` with regexp does not register an offense when not all conditions contain target does not register an offense when using `==` with constant containing 1 letter in name registers an offense and corrects when using `include?` with range does not register an offense when using `==` with class reference does not register an offense when one of `||` subconditions is not convertible registers an offense and corrects when using `==` with constant registers an offense and corrects when using `==` with literal does not register an offense when using `=~` in first branch with non regexp does not register an offense when using `equal?` without a receiver does not register an offense when using `==` with method call with arguments registers an offense and corrects when using `=~` does not register an offense when using modifier `if` registers an offense and corrects when using nested conditions with `||` does not register an offense when using `match?` with non regexp does not register an offense when using ternary operator RuboCop::Cop::Lint::AssignmentInCondition registers an offense for lvar assignment in until condition registers an offense for gvar assignment in condition registers an offense for assignment after == in condition registers an offense for assignment after ||= in condition accepts = in a block that is called in a condition accepts = in a block followed by method call accepts ||= in condition registers an offense for lvar assignment in condition does not blow up for empty unless condition registers an offense for clvar assignment in condition registers an offense for constant assignment in condition registers an offense for collection element assignment in condition registers an offense for ivar assignment in condition registers an offense for lvar assignment in while condition registers an offense for assignment methods does not blow up for empty if condition accepts == in condition safe assignment is not allowed does not accept = in condition surrounded with braces does not accept []= in condition surrounded with braces safe assignment is allowed accepts = in condition surrounded with braces accepts []= in condition surrounded with braces RuboCop::Cop::Lint::NextWithoutAccumulator behaves like reduce/inject given a inject block registers an offense for a bare next accepts next with a value accepts next within a nested block given an unrelated block accepts next with a value accepts a bare next behaves like reduce/inject given a reduce block accepts next with a value registers an offense for a bare next accepts next within a nested block RuboCop::Formatter::FormatterSet responds to all formatter API methods #builtin_formatter_class returns class which matches double character alias name returns class which matches passed alias name exactly returns class which matches single character alias name #custom_formatter_class can handle top level namespaced constant name returns constant represented by the passed string can handle namespaced constant name when non-existent constant name is passed raises error #close_output_files closes all output files does not close non file output add_formatter can add multiple formatters by being invoked multiple times adds a formatter with specified formatter type adds a formatter to itself when output path is specified adds a formatter outputs to the specified file when parent directories don't exist creates them when output path is omitted adds a formatter outputs to $stdout formatter API method invokes the same method of all containing formatters RuboCop::Formatter::PacmanFormatter #next_step when a offense is detected in a file calls the step function with a dot when no offenses are detected calls the step function with a dot #step character is Pacman removes the first • and puts a ᗧ character is normal dot removes the first • and puts a . character is a Pacdot leaves the progress_line as it is character is ghost removes the first • and puts a ghosts #update_progress_line when total_files less than columns in the terminal updates the progress_line properly when total_files is greater than columns in the terminal updates the progress_line properly when need to change the line updates the progress_line properly RuboCop::Formatter::DisabledConfigFormatter when exclude_limit option is passed respects the file exclusion list limit with auto-correct supported cop adds a comment about --auto-correct option when any offenses are detected displays YAML configuration disabling all cops with offenses when exclude_limit option is omitted disables the cop with 15 offending files when no files are inspected creates a .rubocop_todo.yml even in such case when there's .rubocop.yml merges in excludes from .rubocop.yml RuboCop::Cop::Style::IfInsideElse ignores if inside unless catches an if node nested inside an else ignores unless inside else ignores nested ternary expressions isn't offended by if..elsif..else isn't offended if there is a statement preceding the if node isn't offended if there is a statement following the if node ignores ternary inside if..else catches an if..else nested inside an else when AllowIfModifier is false catches a modifier if nested inside an else when AllowIfModifier is true accepts a modifier if nested inside an else RuboCop::Cop::Naming::HeredocDelimiterCase when enforced style is lowercase with a squiggly heredoc does not register an offense with a lowercase delimiter registers an offense with an uppercase delimiter registers an offense with a camel case delimiter with an interpolated heredoc registers an offense with an uppercase delimiter registers an offense with a camel case delimiter does not register an offense with a lowercase delimiter with a non-interpolated heredoc registers an offense with a camel case delimiter registers an offense with an uppercase delimiter does not register an offense with a lowercase delimiter when enforced style is uppercase with a squiggly heredoc does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter registers an offense with a lowercase delimiter with a non-interpolated heredoc when using single quoted delimiters does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter registers an offense with a lowercase delimiter when using back tick delimiters does not register an offense with an uppercase delimiter registers an offense with a lowercase delimiter registers an offense with a camel case delimiter when using double quoted delimiters does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter registers an offense with a lowercase delimiter when using non-word delimiters does not register an offense with an interpolated heredoc registers an offense with a lowercase delimiter does not register an offense with an uppercase delimiter registers an offense with a camel case delimiter RuboCop::Cop::Style::TrailingCommaInHashLiteral with single line list of values when EnforcedStyleForMultiline is comma accepts single element literal without trailing comma accepts empty literal registers an offense for trailing comma in a literal accepts literal without trailing comma when EnforcedStyleForMultiline is consistent_comma registers an offense for trailing comma in a literal accepts literal without trailing comma accepts single element literal without trailing comma accepts empty literal when EnforcedStyleForMultiline is no_comma accepts literal without trailing comma registers an offense for trailing comma in a literal accepts single element literal without trailing comma accepts empty literal with multi-line list of values when EnforcedStyleForMultiline is comma accepts trailing comma after a heredoc registers an offense for no trailing comma accepts trailing comma registers an offense for trailing comma in a comment accepts a multiline hash with a single pair and trailing comma when closing bracket is on same line as last value accepts literal with no trailing comma when EnforcedStyleForMultiline is consistent_comma accepts a multiline hash with pairs on a single line andtrailing comma registers an offense for no trailing comma accepts trailing comma accepts trailing comma after a heredoc accepts a multiline hash with a single pair and trailing comma when closing bracket is on same line as last value registers an offense for literal with no trailing comma when EnforcedStyleForMultiline is no_comma accepts comma in comment after last value item registers an offense for trailing comma in literal accepts literal with no trailing comma accepts comma inside a heredoc parameters at the end RuboCop::Cop::Metrics::BlockLength accepts a block with less than 3 lines does not count blank lines accepts a block with multiline receiver and less than 3 lines of body accepts empty blocks reports the correct beginning and end lines rejects a block with more than 5 lines properly counts nested blocks rejects brace blocks too does not count commented lines by default when ExcludedMethods is enabled behaves like ignoring an offense on an excluded method accepts the foo method with a long block still rejects other methods with long blocks behaves like ignoring an offense on an excluded method accepts the foo method with a long block still rejects other methods with long blocks when receiver contains whitespaces ignores whitespaces when a method is ignored, but receiver is a module does not report an offense when defining a module does not register an offense when `CountAsOne` is not empty folds array into one line when defining a class does not register an offense when CountComments is enabled also counts commented lines RuboCop::Cop::Lint::UselessSetterCall is not confused by operators ending with = handles exception assignments without exploding when a lvar possibly contains an object passed as argument by logical-operator-assignment at the end of the method accepts the setter call on the lvar with method ending with setter call on argument accepts when a lvar does not contain any object passed as argument by binary-operator-assignment at the end of the method registers an offense when a lvar declared as an argument is no longer the passed object at the end of the method registers an offense for the setter call on the lvar when a lvar contains an object passed as argument at the end of the method accepts the setter call on the lvar when a lvar contains a non-local object returned by a method accepts with singleton method ending with setter call on local object registers an offense when a lvar contains an object passed as argument by multiple-assignment at the end of the method accepts the setter call on the lvar with method ending with ivar assignment accepts with method ending with square bracket setter on local object registers an offense when a lvar contains a local object instantiated with literal registers an offense for the setter call on the lvar with method ending with setter call on ivar accepts with method ending with setter call on local object registers an offense when a lvar does not contain any object passed as argument with multiple-assignment at the end of the method registers an offense RuboCop::Cop::Lint::EmptyInterpolation registers an offense and corrects #{ } in interpolation finds interpolations in string-like contexts accepts non-empty interpolation registers an offense and corrects #{} in interpolation RuboCop::Cop::Lint::DeprecatedOpenSSLConstant does not register an offense with cipher constant and send argument is a method registers an offense with cipher constant and two arguments and corrects does not register an offense with cipher constant and argument is a variable registers an offense when using an digest constant with chained methods and corrects registers an offense with AES + blocksize constant and mode argument and corrects does not register an offense when using cipher with a string registers an offense with AES + blocksize constant and corrects registers an offense with cipher constant and double quoted string argument and corrects does not register an offense with cipher constant and argument is a constant registers an offense with cipher constant and one argument and corrects registers an offense when building an instance using an digest constant and corrects registers an offense when using ::Digest class methods on an algorithm constant and corrects does not register an offense when using ::Digest class methods with an algorithm string and value does not register an offense when building digest using an algorithm string when used in a block registers an offense when using ::Digest class methods on an algorithm constant and corrects RuboCop::Cop::Style::IpAddresses does not register an offense on an empty string IPv4 does not register an offense for an address inside larger text does not register an offense for an invalid address registers an offense for a valid address with allowed addresses does not register an offense if the case differs does not register an offense for a allowed addresses IPv6 registers an offense for a shortened address registers an offense for an address with 0s collapsed registers an offense for a very short address registers an offense for the loopback address does not register an offense for an invalid address registers an offense for a valid address the unspecified address :: (shortform of 0:0:0:0:0:0:0:0) does not register an offense when it is removed from the allowed addresses registers an offense RuboCop::Cop::Lint::Void registers an offense for void lit [1] if not on last line accepts void op <=> by itself without a begin block accepts void unary op - if on last line registers an offense for void unary op ~ if not on last line accepts void op * if on last line accepts void unary op + if on last line registers an offense for void unary op ! if not on last line registers an offense for void op >= if not on last line accepts void op > if on last line accepts short call syntax registers an offense for void op <=> if not on last line accepts void op === if on last line accepts void op * by itself without a begin block accepts void unary op ! if on last line accepts void op <=> if on last line registers two offenses for void literals in `#tap` method registers an offense for void op == if not on last line accepts void unary op - by itself without a begin block handles explicit begin blocks accepts void op == if on last line registers an offense for void op % if not on last line registers two offenses for void literals in an initialize method registers an offense for void var @@var if not on last line accepts void op + if on last line registers two offenses for void literals in a `for` registers an offense for void lit {} if not on last line registers an offense for void `defined?` if not on last line accepts void op >= if on last line registers an offense for void lit 2.0 if not on last line registers an offense for void op > if not on last line accepts void op % if on last line accepts void op === by itself without a begin block registers an offense for void sign op + if not on last line accepts void op >= by itself without a begin block accepts void op == by itself without a begin block accepts void op % by itself without a begin block accepts void unary op ! by itself without a begin block accepts void unary op ~ by itself without a begin block registers an offense for void op - if not on last line accepts void op > by itself without a begin block registers an offense for void lit /test/ if not on last line registers an offense for void var $var if not on last line registers an offense for void op < if not on last line registers an offense for void var @var if not on last line registers an offense for void op <= if not on last line accepts void op - by itself without a begin block registers an offense for void var VAR if not on last line registers an offense for void sign op - if not on last line accepts void unary op ~ if on last line registers an offense for void op === if not on last line handles empty block accepts void op - if on last line accepts void op / if on last line registers an offense for void `self` if not on last line accepts void op != by itself without a begin block registers an offense for void op / if not on last line accepts void op <= if on last line registers an offense for void var var if not on last line registers two offenses for void literals in a `#each` method accepts percent-x commands accepts void op < by itself without a begin block registers an offense for void lit 1 if not on last line registers an offense for void lit :test if not on last line registers an offense for void op * if not on last line accepts void op <= by itself without a begin block accepts void op != if on last line registers an offense for void op + if not on last line handles `#each` block with single expression registers an offense for void literal in a method definition accepts void op / by itself without a begin block accepts void op < if on last line registers an offense for void op != if not on last line accepts void op + by itself without a begin block accepts backtick commands registers two offenses for void literals in a setter method accepts void unary op + by itself without a begin block when not checking for methods with no side effects does not register an offense for void nonmutating methods when checking for methods with no side effects registers an offense for chained methods registers an offense if not on last line Pending: (Failures listed here are expected and do not affect your suite's status) 1) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:397 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 2) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:400 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 3) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:396 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 4) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:398 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 5) RuboCop::Cop::Lint::DuplicateMethods registers an offense when class << exp is used # No reason given Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -4,7 +4,6 @@ implement 1 end def some_method - ^^^^^^^^^^^^^^^ Method `A#some_method` is defined at both test.rb:3 and test.rb:6. implement 2 end end Shared Example Group: "in scope" called from /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:399 # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/duplicate_methods_spec.rb:243:in `block (3 levels) in ' 6) RuboCop::Cop::Lint::UselessAssignment when a variable is reassigned in loop body but won't be referenced either next iteration or loop condition registers an offense # Requires an advanced logic that checks whether the return value of an operator assignment is used or not. Failure/Error: expect(actual_annotations).to eq(expected_annotations), '' Diff: @@ -5,7 +5,6 @@ while total < 100 total += 1 foo += 1 - ^^^ Useless assignment to variable - `foo`. end total # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/lib/rubocop/rspec/expect_offense.rb:137:in `expect_offense' # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/lint/useless_assignment_spec.rb:349:in `block (3 levels) in ' 7) RuboCop::Cop::Layout::AccessModifierIndentation when EnforcedStyle is set to indent registers an offense and corrects access modifiers in arbitrary blocks # Failing in Debian - needs investigation # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/layout/access_modifier_indentation_spec.rb:175 8) RuboCop::Cop::Generator compliance with rubocop generates a spec file that has no offense # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/generator_spec.rb:345 9) RuboCop::Cop::Generator compliance with rubocop generates a cop file that has no offense # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/generator_spec.rb:340 10) RuboCop::Cop::Cop.qualified_cop_name raises an error if the cop name is in more than one namespace # Temporarily skipped with xit # /build/rubocop-9IY1LX/rubocop-0.89.1+dfsg/spec/rubocop/cop/cop_spec.rb:45 Finished in 2 minutes 16.2 seconds (files took 6.47 seconds to load) 13647 examples, 0 failures, 10 pending Randomized with seed 25070 ┌──────────────────────────────────────────────────────────────────────────────┐ │ dh_ruby --install finished │ └──────────────────────────────────────────────────────────────────────────────┘ dh_install -i -O--buildsystem=ruby dh_installdocs -i -O--buildsystem=ruby dh_ruby_fixdocs -i -O--buildsystem=ruby dh_installchangelogs -i -O--buildsystem=ruby dh_installsystemduser -i -O--buildsystem=ruby dh_perl -i -O--buildsystem=ruby dh_link -i -O--buildsystem=ruby dh_strip_nondeterminism -i -O--buildsystem=ruby dh_compress -X.rb -i -O--buildsystem=ruby dh_fixperms -i -O--buildsystem=ruby dh_missing -i -O--buildsystem=ruby dh_ruby_fixdepends -i -O--buildsystem=ruby dh_installdeb -i -O--buildsystem=ruby debian/rules override_dh_gencontrol make[1]: Entering directory '/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg' # rexml is provided by the ruby interpreter already, we don't need a # dependency on ruby-rexml. sed -i -e 's/ruby-rexml//' debian/*.substvars dh_gencontrol dpkg-gencontrol: warning: Depends field of package rubocop: substitution variable ${shlibs:Depends} used, but is not defined make[1]: Leaving directory '/build/rubocop-9IY1LX/rubocop-0.89.1+dfsg' dh_md5sums -i -O--buildsystem=ruby dh_builddeb -i -O--buildsystem=ruby dpkg-deb: building package 'rubocop' in '../rubocop_0.89.1+dfsg-3_all.deb'. dpkg-genbuildinfo --build=all -O../rubocop_0.89.1+dfsg-3_all.buildinfo dpkg-genchanges --build=all -O../rubocop_0.89.1+dfsg-3_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/rubocop-9IY1LX /tmp/rubocop-0.89.1+dfsg-304whbe_9 I: cleaning package lists and apt cache... W: deleting files in /tmp: example.rb I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.Fnk86iW8k3... I: success in 4244.1924 seconds md5: rubocop_0.89.1+dfsg-3_all.deb: OK sha1: rubocop_0.89.1+dfsg-3_all.deb: OK sha256: rubocop_0.89.1+dfsg-3_all.deb: OK Checksums: OK