Skip to content

Files

Latest commit

 

History

History
34 lines (25 loc) · 1.06 KB

Rails-RootPathnameMethods.md

File metadata and controls

34 lines (25 loc) · 1.06 KB

Pattern: Missing use of Rails.root IO method

Issue: -

Description

Use Rails.root IO methods instead of passing it to File.

Rails.root is an instance of Pathname so we can apply many IO methods directly.

This rule works best when used together with Style/FileRead, Style/FileWrite and Rails/RootJoinChain.

Examples

# bad
File.open(Rails.root.join('db', 'schema.rb'))
File.open(Rails.root.join('db', 'schema.rb'), 'w')
File.read(Rails.root.join('db', 'schema.rb'))
File.binread(Rails.root.join('db', 'schema.rb'))
File.write(Rails.root.join('db', 'schema.rb'), content)
File.binwrite(Rails.root.join('db', 'schema.rb'), content)

# good
Rails.root.join('db', 'schema.rb').open
Rails.root.join('db', 'schema.rb').open('w')
Rails.root.join('db', 'schema.rb').read
Rails.root.join('db', 'schema.rb').binread
Rails.root.join('db', 'schema.rb').write(content)
Rails.root.join('db', 'schema.rb').binwrite(content)

Further Reading