Hey guys, I use rubocop linter with vs code extension. I have a rails 6 app with ruby 3 but some files in vendor/ are symlinks from legacy code which were written in ruby 2. I have to make sure my team doesn’t write any ruby 3 specific methods inside this folder cuz since it’s a symlink, it’s used by other apps with ruby 2 as well. How do i configure my linter for this?

2 points
*

Assuming it’s properly tested, I would simply run the tests that apply to the code in this directory with the versions of Ruby you’re trying to ensure compatibility with.

If you’re using GitHub Actions for CI, then you can create jobs for each version of Ruby you’re trying to use. Then, ensure your default branch is protected, and set your branch protections only allows PRs to merge that pass CI.

This will also ensure that Ruby 3.x.x works with your current code, too. Some things have been deprecated, i.e. File#exists? has been removed in favor of File#exist?

Also, this sounds like a good case of submodules, if this code is used for various projects.

permalink
report
reply
1 point

Oof, that’s a bit odd. My personal preference would be to write your code as a gem and that way you can easily control all of its behaviors. That’s what gems are for

permalink
report
reply

Ruby

!ruby@programming.dev

Create post

A community for discussion and news about Ruby programming.

Learning Ruby?

Tools

Documentation

Books

Screencasts

News and updates

Community stats

  • 5

    Monthly active users

  • 72

    Posts

  • 55

    Comments