class RuboCop::Cop::Rails::RootPublicPath


Rails.public_path.join(‘file.pdf’)
Rails.public_path.join(‘file.pdf’)
Rails.public_path
# good
Rails.root.join(‘public’, ‘file.pdf’)
Rails.root.join(‘public/file.pdf’)
Rails.root.join(‘public’)
# bad
@example
Favor ‘Rails.public_path` over `Rails.root` with `’public’‘

def on_send(node)

def on_send(node)
  return unless (rails, maybe_public_path, other_args = rails_root_public(node))
  add_offense(node) do |corrector|
    first_args = maybe_public_path.gsub(PATTERN, '')
    args = other_args.map(&:source)
    args.unshift("'#{first_args}'") unless first_args.empty?
    replacement = "#{rails.source}.public_path"
    replacement += ".join(#{args.join(', ')})" unless args.empty?
    corrector.replace(node, replacement)
  end
end

def public_path?(string)

def public_path?(string)
  PATTERN.match?(string)
end