From 516f125ea77c642f482cef1e0671ac91b048423a Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Mon, 11 Dec 2023 13:08:46 -0500 Subject: [PATCH] Fixed a lot of linter warnings --- src/config.rb | 12 +++++++----- src/helpers.rb | 3 +++ src/models/benchmark.rb | 3 +++ src/models/hardware.rb | 3 +++ src/models/init.rb | 2 ++ src/models/result.rb | 7 +++++-- src/models/test.rb | 25 ++++++++++++++----------- src/routes/benchmark.rb | 7 ++++++- src/routes/hardware.rb | 7 ++++++- src/routes/index.rb | 5 ++++- src/routes/init.rb | 2 ++ src/routes/result.rb | 15 +++++++++------ src/routes/test.rb | 15 ++++++++------- src/server.rb | 4 ++++ 14 files changed, 76 insertions(+), 34 deletions(-) diff --git a/src/config.rb b/src/config.rb index da2d625..84d7491 100644 --- a/src/config.rb +++ b/src/config.rb @@ -1,18 +1,20 @@ +# frozen_string_literal: true + require 'yaml' +# Config - loads and manages the app's configuration class Config DEFAULT_CONFIG = 'config/defaults.yaml' def initialize(config_path) - @data = YAML::load_file(DEFAULT_CONFIG) + @data = YAML.load_file(DEFAULT_CONFIG) - if File.exists?(config_path) - @data.merge!(YAML::load_file(config_path)) - end + # merge in user-defined configuration if it exists + @data.merge!(YAML.load_file(config_path)) if File.exist?(config_path) end - def get(key, depth = 0) + def get(key) bits = key.split('.') value = @data diff --git a/src/helpers.rb b/src/helpers.rb index e768236..b3db1b4 100644 --- a/src/helpers.rb +++ b/src/helpers.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true + +# Helpers - view helper functions module Helpers def date_format(date) diff --git a/src/models/benchmark.rb b/src/models/benchmark.rb index 5943e19..e941fd3 100644 --- a/src/models/benchmark.rb +++ b/src/models/benchmark.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true + +# Benchmark - database model for PC benchmarks class Benchmark < Sequel::Model one_to_many :tests diff --git a/src/models/hardware.rb b/src/models/hardware.rb index ed2ac8a..a727a62 100644 --- a/src/models/hardware.rb +++ b/src/models/hardware.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true + +# Hardware - database model for PC hardware class Hardware < Sequel::Model(:hardware) one_to_many :tests diff --git a/src/models/init.rb b/src/models/init.rb index 3a9103b..5434fc6 100644 --- a/src/models/init.rb +++ b/src/models/init.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'hardware' require_relative 'benchmark' require_relative 'result' diff --git a/src/models/result.rb b/src/models/result.rb index 74fca67..ab5927b 100644 --- a/src/models/result.rb +++ b/src/models/result.rb @@ -1,9 +1,12 @@ +# frozen_string_literal: true + +# Result - database model for benchmark results class Result < Sequel::Model many_to_one :test - def formatted_score() - return self.score + def formatted_score + return @score end end diff --git a/src/models/test.rb b/src/models/test.rb index 0d1576e..f93ea0f 100644 --- a/src/models/test.rb +++ b/src/models/test.rb @@ -1,27 +1,30 @@ +# frozen_string_literal: true + +# Test - database model for PC hardware tests class Test < Sequel::Model - one_to_many :results # link Test model to its related results - many_to_one :benchmark # link Test model back to its benchmark - many_to_one :hardware # link Test model back to hardware used in test + one_to_many :results # link Test model to its related results + many_to_one :benchmark # link Test model back to its benchmark + many_to_one :hardware # link Test model back to hardware used in test # formats the name of the test for display in the web UI - def formatted_name() - return "#{self.date_tag} - #{self.hardware.name} / #{self.benchmark.name}" + def formatted_name + return "#{@date_tag} - #{@hardware.name} / #{@benchmark.name}" end # formats the name of the test for use in a graph - def graph_name() - return "#{self.hardware.name} (#{self.date_tag})" + def graph_name + return "#{@hardware.name} (#{@date_tag})" end # determines whether the test has enough results to fulfill the requirement - def valid?() - return (self.results.length >= $conf.get('testing.minimum_results_required')) + def valid? + return (@results.length >= $conf.get('testing.minimum_results_required')) end # determines how many results are still missing for a test - def missing_results() - return ($conf.get('testing.minimum_results_required') - self.results.length) + def missing_results + return ($conf.get('testing.minimum_results_required') - @results.length) end end diff --git a/src/routes/benchmark.rb b/src/routes/benchmark.rb index 2138e81..d88716e 100644 --- a/src/routes/benchmark.rb +++ b/src/routes/benchmark.rb @@ -1,4 +1,8 @@ +# frozen_string_literal: true + +# /benchmark routes class GameData < Sinatra::Base + get '/benchmark' do benchmarks = Benchmark.reverse(:updated_at).limit(10).all() @@ -20,6 +24,7 @@ class GameData < Sinatra::Base description: params[:benchmark_description] ) - redirect "/benchmark" + redirect "/benchmark/#{benchmark.id}" end + end diff --git a/src/routes/hardware.rb b/src/routes/hardware.rb index c2b1424..67bcf85 100644 --- a/src/routes/hardware.rb +++ b/src/routes/hardware.rb @@ -1,4 +1,8 @@ +# frozen_string_literal: true + +# /hardware routes class GameData < Sinatra::Base + get '/hardware' do hardware = Hardware.reverse(:updated_at).limit(10).all() @@ -19,6 +23,7 @@ class GameData < Sinatra::Base type: params[:hardware_type] ) - redirect "/hardware" + redirect "/hardware#{hardware.id}" end + end diff --git a/src/routes/index.rb b/src/routes/index.rb index dfa08be..0e6eabf 100644 --- a/src/routes/index.rb +++ b/src/routes/index.rb @@ -1,4 +1,8 @@ +# frozen_string_literal: true + +# / (top-level) routes class GameData < Sinatra::Base + get '/' do tests = Test.reverse(:updated_at).limit(10).all() results = Result.reverse(:updated_at).limit(10).all() @@ -10,5 +14,4 @@ class GameData < Sinatra::Base } end - # more routes... end diff --git a/src/routes/init.rb b/src/routes/init.rb index 1c178d2..2b57321 100644 --- a/src/routes/init.rb +++ b/src/routes/init.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'index' require_relative 'hardware' require_relative 'benchmark' diff --git a/src/routes/result.rb b/src/routes/result.rb index 98f1f22..00ffb3d 100644 --- a/src/routes/result.rb +++ b/src/routes/result.rb @@ -1,4 +1,8 @@ +# frozen_string_literal: true + +# /result routes class GameData < Sinatra::Base + get '/result' do results = Result.reverse(:updated_at).limit(10).all() @@ -19,12 +23,10 @@ class GameData < Sinatra::Base } end post '/result/add' do - benchmark = Benchmark.where(:id => params[:result_benchmark]).first() + result_minimum = params[:result_minimum] if params.key?(:result_minimum) + result_maximum = params[:result_maximum] if params.key?(:result_maximum) - result_minimum = params[:result_minimum] if params.has_key?(:result_minimum) - result_maximum = params[:result_maximum] if params.has_key?(:result_maximum) - - result = Result.create( + Result.create( hardware_id: params[:result_hardware], benchmark_id: params[:result_benchmark], score: params[:result_average], @@ -32,6 +34,7 @@ class GameData < Sinatra::Base maximum_score: result_maximum ) - redirect "/result" + redirect '/result' end + end diff --git a/src/routes/test.rb b/src/routes/test.rb index 92d0517..5e0ddc7 100644 --- a/src/routes/test.rb +++ b/src/routes/test.rb @@ -1,4 +1,8 @@ +# frozen_string_literal: true + +# /test routes class GameData < Sinatra::Base + get '/test' do tests = Test.reverse(:updated_at).limit(10).all() @@ -30,19 +34,16 @@ class GameData < Sinatra::Base date_tag = params[:test_date_tag] # make sure the date tag field is formatting properly - unless date_tag.start_with?('(') - date_tag = '(' + date_tag - end - unless date_tag.end_with?(')') - date_tag = date_tag + ')' - end + date_tag = "(#{date_tag}" unless date_tag.start_with?('(') + date_tag += ')' unless date_tag.end_with?(')') test = Test.create( - date_tag: params[:test_date_tag], + date_tag: date_tag, hardware_id: params[:test_hardware], benchmark_id: params[:test_benchmark] ) redirect "/test/#{test.id}" end + end diff --git a/src/server.rb b/src/server.rb index d79995c..1b90832 100755 --- a/src/server.rb +++ b/src/server.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'sinatra/base' require 'sequel' require 'sqlite3' @@ -9,6 +11,7 @@ DB = Sequel.connect(adapter: $conf.get('database.adapter'), database: $conf.get( # Base app class GameData < Sinatra::Base + enable :sessions # Set up static file serving @@ -21,6 +24,7 @@ class GameData < Sinatra::Base # Set up our view engine set :views, File.join(settings.root, '/../views') + end # Load routes