Skip to content

Commit

Permalink
DEV: Fix rubocop issues (discourse#14715)
Browse files Browse the repository at this point in the history
  • Loading branch information
udan11 authored Oct 27, 2021
1 parent 6aa6275 commit 69f0f48
Show file tree
Hide file tree
Showing 27 changed files with 65 additions and 69 deletions.
2 changes: 1 addition & 1 deletion app/models/locale_site_setting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def self.language_names

@lock.synchronize do
@language_names ||= begin
names = YAML.load(File.read(File.join(Rails.root, 'config', 'locales', 'names.yml')))
names = YAML.safe_load(File.read(File.join(Rails.root, 'config', 'locales', 'names.yml')))

DiscoursePluginRegistry.locales.each do |locale, options|
if !names.key?(locale) && options[:name] && options[:nativeName]
Expand Down
10 changes: 3 additions & 7 deletions app/models/topic_embed.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ def self.find_remote(url)
follow_canonical: true,
)

url = fd.resolve
return if url.blank?
uri = fd.resolve
return if uri.blank?

opts = {
tags: %w[div p code pre h1 h2 h3 b em i strong a img ul li ol blockquote],
Expand All @@ -132,7 +132,7 @@ def self.find_remote(url)

response = FetchResponse.new
begin
html = open(url, allow_redirections: :safe).read
html = uri.read(allow_redirections: :safe)
rescue OpenURI::HTTPError, Net::OpenTimeout
return
end
Expand Down Expand Up @@ -256,10 +256,6 @@ def self.expanded_for(post)
body
end
end

def self.open(uri, **kwargs)
URI.open(uri, **kwargs)
end
end

# == Schema Information
Expand Down
2 changes: 1 addition & 1 deletion app/services/site_settings_task.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def self.import(yml)
counts = { updated: 0, not_found: 0, errors: 0 }
log = []

site_settings = YAML::load(yml)
site_settings = YAML::safe_load(yml)
site_settings.each do |site_setting|
key = site_setting[0]
val = site_setting[1]
Expand Down
4 changes: 2 additions & 2 deletions lib/cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def fetch(name, expires_in: nil, force: nil, &blk)

if raw
begin
Marshal.load(raw)
Marshal.load(raw) # rubocop:disable Security/MarshalLoad
rescue => e
log_first_exception(e)
end
Expand All @@ -113,7 +113,7 @@ def log_first_exception(e)

def read_entry(key)
if data = redis.get(key)
Marshal.load(data)
Marshal.load(data) # rubocop:disable Security/MarshalLoad
end
rescue => e
# corrupt cache, this can happen if Marshal version
Expand Down
22 changes: 16 additions & 6 deletions lib/discourse_updates.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,34 @@ def last_installed_version
Discourse.redis.get last_installed_version_key
end

def last_installed_version=(arg)
Discourse.redis.set(last_installed_version, arg)
end

def latest_version
Discourse.redis.get latest_version_key
end

def latest_version=(arg)
Discourse.redis.set(latest_version, arg)
end

def missing_versions_count
Discourse.redis.get(missing_versions_count_key).try(:to_i)
end

def missing_versions_count=(arg)
Discourse.redis.set(missing_versions_count, arg)
end

def critical_updates_available?
(Discourse.redis.get(critical_updates_available_key) || false) == 'true'
end

def critical_updates_available=(arg)
Discourse.redis.set(critical_updates_available, arg)
end

def updated_at
t = Discourse.redis.get(updated_at_key)
t ? Time.zone.parse(t) : nil
Expand All @@ -82,12 +98,6 @@ def updated_at=(time_with_zone)
Discourse.redis.set updated_at_key, time_with_zone.as_json
end

['last_installed_version', 'latest_version', 'missing_versions_count', 'critical_updates_available'].each do |name|
eval "define_method :#{name}= do |arg|
Discourse.redis.set #{name}_key, arg
end"
end

def missing_versions=(versions)
# delete previous list from redis
prev_keys = Discourse.redis.lrange(missing_versions_list_key, 0, 4)
Expand Down
2 changes: 1 addition & 1 deletion lib/i18n/locale_file_checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ def reference_value_pluralized?(value)

def plural_keys
@plural_keys ||= begin
eval(File.read("#{Rails.root}/#{PLURALS_FILE}")).map do |locale, value|
eval(File.read("#{Rails.root}/#{PLURALS_FILE}")).map do |locale, value| # rubocop:disable Security/Eval
[locale.to_s, value[:i18n][:plural][:keys].map(&:to_s)]
end.to_h
end
Expand Down
2 changes: 1 addition & 1 deletion lib/middleware/anonymous_cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def self.compile_key_builder
method << "|#{k}=#\{h.#{v}}"
end
method << "\"\nend"
eval(method)
eval(method) # rubocop:disable Security/Eval
@@compiled = true
end

Expand Down
2 changes: 1 addition & 1 deletion lib/onebox/engine/github_actions_onebox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ def data
raw["head_commit"]["message"].lines.first
elsif type == :pr_run
pr_url = "https://api.github.com/repos/#{match[:org]}/#{match[:repo]}/pulls/#{match[:pr_id]}"
::MultiJson.load(URI.open(pr_url, read_timeout: timeout))["title"]
::MultiJson.load(URI.parse(pr_url).open(read_timeout: timeout))["title"]
end

{
Expand Down
2 changes: 1 addition & 1 deletion lib/onebox/engine/json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module JSON
private

def raw
@raw ||= ::MultiJson.load(URI.open(url, read_timeout: timeout))
@raw ||= ::MultiJson.load(URI.parse(url).open(read_timeout: timeout))
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/onebox/engine/pubmed_onebox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class PubmedOnebox

def xml
return @xml if defined?(@xml)
doc = Nokogiri::XML(URI.open(URI.join(@url, "?report=xml&format=text")))
doc = Nokogiri::XML(URI.join(@url, "?report=xml&format=text").open)
pre = doc.xpath("//pre")
@xml = Nokogiri::XML("<root>" + pre.text + "</root>")
end
Expand Down
2 changes: 1 addition & 1 deletion lib/onebox/mixins/git_blob_onebox.rb
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def raw
@model_file = @lang.dup
@raw = "https://render.githubusercontent.com/view/solid?url=" + self.raw_template(m)
else
contents = URI.open(self.raw_template(m), read_timeout: timeout).read
contents = URI.parse(self.raw_template(m)).open(read_timeout: timeout).read

contents_lines = contents.lines #get contents lines
contents_lines_size = contents_lines.size #get number of lines
Expand Down
2 changes: 1 addition & 1 deletion lib/onebox/status_check.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def human_status
private

def check
res = URI.open(@url, read_timeout: (@options.timeout || Onebox.options.timeout))
res = URI.parse(@url).open(read_timeout: (@options.timeout || Onebox.options.timeout))
@status = res.status.first.to_i
rescue OpenURI::HTTPError => e
@status = e.io.status.first.to_i
Expand Down
2 changes: 1 addition & 1 deletion lib/site_settings/type_supervisor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def load_setting(name_arg, opts = {})
end

if (new_choices = opts[:choices])
new_choices = eval(new_choices) if new_choices.is_a?(String)
new_choices = eval(new_choices) if new_choices.is_a?(String) # rubocop:disable Security/Eval

if @choices.has_key?(name)
@choices[name].concat(new_choices)
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/cdn.rake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ task 'assets:prestage' => :environment do |t|
puts "pre staging: #{assets.join(' ')}"

# makes testing simpler leaving this here
config = YAML::load(File.open("#{Rails.root}/config/cdn.yml"))
config = YAML::safe_load(File.open("#{Rails.root}/config/cdn.yml"))

start = Time.now

Expand Down
4 changes: 2 additions & 2 deletions lib/tasks/emoji.rake
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ desc "update emoji images"
task "emoji:update" do
copy_emoji_db

json_db = open(File.join(GENERATED_PATH, "db.json")).read
json_db = File.read(File.join(GENERATED_PATH, "db.json"))
db = JSON.parse(json_db)

write_db_json(db["emojis"], db["translations"])
Expand Down Expand Up @@ -352,7 +352,7 @@ end
def generate_emoji_groups(keywords, sections)
puts "Generating groups..."

list = open(EMOJI_ORDERING_URL).read
list = URI.parse(EMOJI_ORDERING_URL).read
doc = Nokogiri::HTML5(list)
table = doc.css("table")[0]

Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/themes.rake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ task "themes:install" => :environment do |task, args|
use_json = theme_args == ''

theme_args = begin
use_json ? JSON.parse(ARGV.last.gsub('--', '')) : YAML::load(theme_args)
use_json ? JSON.parse(ARGV.last.gsub('--', '')) : YAML::safe_load(theme_args)
rescue
puts use_json ? "Invalid JSON input. \n#{ARGV.last}" : "Invalid YML: \n#{theme_args}"
exit 1
Expand Down
2 changes: 1 addition & 1 deletion script/bench.rb
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ def best_of(a, b)
run("RAILS_ENV=profile bundle exec rake assets:clean")

def get_mem(pid)
YAML.load `ruby script/memstats.rb #{pid} --yaml`
YAML.safe_load `ruby script/memstats.rb #{pid} --yaml`
end

mem = get_mem(pid)
Expand Down
2 changes: 1 addition & 1 deletion script/benchmarks/cache/bench.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

x.report("redis get string marshal") do |times|
while times > 0
Marshal.load(Discourse.redis.get("test_keym"))
Marshal.load(Discourse.redis.get("test_keym")) # rubocop:disable Security/MarshalLoad
times -= 1
end
end
Expand Down
2 changes: 1 addition & 1 deletion script/import_scripts/jforum.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ImportScripts::JForum < ImportScripts::Base
def initialize
super

@settings = YAML.load(File.read(ARGV.first), symbolize_names: true)
@settings = YAML.safe_load(File.read(ARGV.first), symbolize_names: true)

@database_client = Mysql2::Client.new(
host: @settings[:database][:host],
Expand Down
2 changes: 1 addition & 1 deletion script/import_scripts/mbox/support/indexer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def index_category(directory)
if File.exist?(metadata_file)
# workaround for YML files that contain classname in file header
yaml = File.read(metadata_file).sub(/^--- !.*$/, '---')
metadata = YAML.load(yaml)
metadata = YAML.safe_load(yaml)
else
metadata = {}
end
Expand Down
4 changes: 2 additions & 2 deletions script/import_scripts/nodebb/nodebb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ def import_profile_picture(old_user, imported_user)
if is_external
# download external image
begin
string_io = open(picture, read_timeout: 5)
string_io = uri.open(read_timeout: 5)
rescue Net::ReadTimeout
puts "timeout downloading avatar for user #{imported_user.id}"
return nil
Expand Down Expand Up @@ -246,7 +246,7 @@ def import_profile_background(old_user, imported_user)

if is_external
begin
string_io = open(picture, read_timeout: 5)
string_io = uri.open(read_timeout: 5)
rescue Net::ReadTimeout
return nil
end
Expand Down
2 changes: 1 addition & 1 deletion script/import_scripts/smf2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ def get_php_timezone

def read_smf_settings
settings = File.join(self.smfroot, 'Settings.php')
IO.readlines(settings).each do |line|
File.readlines(settings).each do |line|
next unless m = /\$([a-z_]+)\s*=\s*['"](.+?)['"]\s*;\s*((#|\/\/).*)?$/.match(line)
case m[1]
when 'db_server' then self.host ||= m[2]
Expand Down
2 changes: 1 addition & 1 deletion script/import_scripts/zendesk_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ def normalize_raw(raw, user_id)
attempts = 0

begin
open("#{$1}") do |image|
URI.parse(image_url).open do |image|
# IMAGE_DOWNLOAD_PATH is whatever image, it will be replaced with the downloaded image
File.open(IMAGE_DOWNLOAD_PATH, "wb") do |file|
file.write(image.read)
Expand Down
2 changes: 1 addition & 1 deletion script/memstats.rb
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ def format_number(n)
end

def get_commandline(pid)
commandline = IO.read("/proc/#{pid}/cmdline").split("\0")
commandline = File.read("/proc/#{pid}/cmdline").split("\0")
if commandline.first =~ /java$/ then
loop { break if commandline.shift == "-jar" }
return "[java] #{commandline.shift}"
Expand Down
16 changes: 10 additions & 6 deletions spec/components/discourse_updates_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
require 'rails_helper'

describe DiscourseUpdates do
let(:latest_version_key) { DiscourseUpdates.send(:latest_version_key) }
let(:missing_versions_count_key) { DiscourseUpdates.send(:missing_versions_count_key) }
let(:critical_updates_available_key) { DiscourseUpdates.send(:critical_updates_available_key) }
let(:updated_at_key) { DiscourseUpdates.send(:updated_at_key) }

def stub_data(latest, missing, critical, updated_at)
DiscourseUpdates.stubs(:latest_version).returns(latest)
DiscourseUpdates.stubs(:missing_versions_count).returns(missing)
DiscourseUpdates.stubs(:critical_updates_available?).returns(critical)
DiscourseUpdates.stubs(:updated_at).returns(updated_at)
Discourse.redis.set(latest_version_key, latest)
Discourse.redis.set(missing_versions_count_key, missing)
Discourse.redis.set(critical_updates_available_key, critical)
Discourse.redis.set(updated_at_key, updated_at)
end

before do
Expand Down Expand Up @@ -36,7 +40,7 @@ def stub_data(latest, missing, critical, updated_at)
end

it 'returns the timestamp of the last version check' do
expect(subject.updated_at).to eq_time(time)
expect(subject.updated_at).to be_within_one_second_of(time)
end
end

Expand All @@ -52,7 +56,7 @@ def stub_data(latest, missing, critical, updated_at)
end

it 'returns the timestamp of the last version check' do
expect(subject.updated_at).to eq_time(time)
expect(subject.updated_at).to be_within_one_second_of(time)
end
end
end
Expand Down
Loading

0 comments on commit 69f0f48

Please sign in to comment.