chore: rubocop

chore: fix api test conventions

chore: rubocop -A spec/

chore: more rubocop -A

fix failing test

rubocop fixes

removes helper methods that are in my opinion dead code

more rubocop fixes

rubocop -a --auto-gen-config
This commit is contained in:
Philipp Rothmann 2023-05-12 13:01:12 +02:00 committed by Philipp Rothmann
parent f6fb804bbe
commit fb2b4d8a8a
331 changed files with 4263 additions and 4507 deletions

View file

@ -1,61 +1,61 @@
# put in here all foodsoft tasks
# => :environment loads the environment an gives easy access to the application
namespace :foodsoft do
desc "Finish ended orders"
task :finish_ended_orders => :environment do
desc 'Finish ended orders'
task finish_ended_orders: :environment do
Order.finish_ended!
end
desc "Notify users of upcoming tasks"
task :notify_upcoming_tasks => :environment do
desc 'Notify users of upcoming tasks'
task notify_upcoming_tasks: :environment do
tasks = Task.where(done: false, due_date: 1.day.from_now.to_date)
for task in tasks
rake_say "Send notifications for #{task.name} to .."
for user in task.users
if user.settings.notify['upcoming_tasks']
Mailer.deliver_now_with_user_locale user do
Mailer.upcoming_tasks(user, task)
end
next unless user.settings.notify['upcoming_tasks']
Mailer.deliver_now_with_user_locale user do
Mailer.upcoming_tasks(user, task)
end
end
end
end
desc "Notify workgroup of upcoming weekly task"
task :notify_users_of_weekly_task => :environment do
tasks = Task.where(done: false, due_date: 7.day.from_now.to_date)
desc 'Notify workgroup of upcoming weekly task'
task notify_users_of_weekly_task: :environment do
tasks = Task.where(done: false, due_date: 7.days.from_now.to_date)
for task in tasks
unless task.enough_users_assigned?
workgroup = task.workgroup
if workgroup
rake_say "Notify workgroup: #{workgroup.name} for task #{task.name}"
for user in workgroup.users
if user.receive_email?
Mailer.deliver_now_with_user_locale user do
Mailer.not_enough_users_assigned(task, user)
end
end
end
next if task.enough_users_assigned?
workgroup = task.workgroup
next unless workgroup
rake_say "Notify workgroup: #{workgroup.name} for task #{task.name}"
for user in workgroup.users
next unless user.receive_email?
Mailer.deliver_now_with_user_locale user do
Mailer.not_enough_users_assigned(task, user)
end
end
end
end
desc "Create upcoming periodic tasks"
task :create_upcoming_periodic_tasks => :environment do
desc 'Create upcoming periodic tasks'
task create_upcoming_periodic_tasks: :environment do
for tg in PeriodicTaskGroup.all
created_until = tg.create_tasks_for_upfront_days
rake_say "created until #{created_until}"
end
end
desc "Parse incoming email on stdin (options: RECIPIENT=foodcoop.handling)"
task :parse_reply_email => :environment do
desc 'Parse incoming email on stdin (options: RECIPIENT=foodcoop.handling)'
task parse_reply_email: :environment do
FoodsoftMailReceiver.received ENV.fetch('RECIPIENT', nil), STDIN.read
end
desc "Start STMP server for incoming email (options: SMTP_SERVER_PORT=2525, SMTP_SERVER_HOST=0.0.0.0)"
task :reply_email_smtp_server => :environment do
desc 'Start STMP server for incoming email (options: SMTP_SERVER_PORT=2525, SMTP_SERVER_HOST=0.0.0.0)'
task reply_email_smtp_server: :environment do
port = ENV['SMTP_SERVER_PORT'].present? ? ENV['SMTP_SERVER_PORT'].to_i : 2525
host = ENV.fetch('SMTP_SERVER_HOST', nil)
rake_say "Started SMTP server for incoming email on port #{port}."
@ -64,8 +64,8 @@ namespace :foodsoft do
server.join
end
desc "Import and assign bank transactions"
task :import_and_assign_bank_transactions => :environment do
desc 'Import and assign bank transactions'
task import_and_assign_bank_transactions: :environment do
BankAccount.find_each do |ba|
importer = ba.find_connector
next unless importer

View file

@ -9,14 +9,14 @@ module Colors
end
{
:black => 30,
:red => 31,
:green => 32,
:yellow => 33,
:blue => 34,
:magenta => 35,
:cyan => 36,
:white => 37
black: 30,
red: 31,
green: 32,
yellow: 33,
blue: 34,
magenta: 35,
cyan: 36,
white: 37
}.each do |key, color_code|
define_method key do |text|
colorize(text, color_code)
@ -26,31 +26,31 @@ end
include Colors
namespace :foodsoft do
desc "Setup foodsoft"
desc 'Setup foodsoft'
task :setup_development do
puts yellow "This task will help you get your foodcoop running in development."
puts yellow 'This task will help you get your foodcoop running in development.'
setup_bundler
setup_app_config
setup_development
setup_database
setup_storage
start_mailcatcher
puts yellow "All done! Your foodsoft setup should be running smoothly."
puts yellow 'All done! Your foodsoft setup should be running smoothly.'
start_server
end
desc "Setup foodsoft"
desc 'Setup foodsoft'
task :setup_development_docker do
puts yellow "This task will help you get your foodcoop running in development via docker."
puts yellow 'This task will help you get your foodcoop running in development via docker.'
setup_app_config
setup_development
setup_storage
setup_run_rake_db_setup
puts yellow "All done! Your foodsoft setup should be running smoothly via docker."
puts yellow 'All done! Your foodsoft setup should be running smoothly via docker.'
end
namespace :setup do
desc "Initialize stock configuration"
desc 'Initialize stock configuration'
task :stock_config do
setup_app_config
setup_storage
@ -60,39 +60,39 @@ namespace :foodsoft do
end
def setup_bundler
puts yellow "Installing bundler if not installed..."
puts yellow 'Installing bundler if not installed...'
%x(if [ -z `which bundle` ]; then gem install bundler --no-rdoc --no-ri; fi)
puts yellow "Executing bundle install..."
%x(bundle install)
puts yellow 'Executing bundle install...'
`bundle install`
end
def setup_database
file = 'config/database.yml'
if ENV['DATABASE_URL']
puts blue "DATABASE_URL found, please remember to also set it when running Foodsoft"
puts blue 'DATABASE_URL found, please remember to also set it when running Foodsoft'
return nil
end
return nil if skip?(file)
database = ask("What kind of database do you use?\nOptions:\n(1) MySQL\n(2) SQLite", ["1", "2"])
if database == "1"
puts yellow "Using MySQL..."
%x(cp -p #{Rails.root.join("#{file}.MySQL_SAMPLE")} #{Rails.root.join(file)})
elsif database == "2"
puts yellow "Using SQLite..."
%x(cp -p #{Rails.root.join("#{file}.SQLite_SAMPLE")} #{Rails.root.join(file)})
database = ask("What kind of database do you use?\nOptions:\n(1) MySQL\n(2) SQLite", %w[1 2])
if database == '1'
puts yellow 'Using MySQL...'
`cp -p #{Rails.root.join("#{file}.MySQL_SAMPLE")} #{Rails.root.join(file)}`
elsif database == '2'
puts yellow 'Using SQLite...'
`cp -p #{Rails.root.join("#{file}.SQLite_SAMPLE")} #{Rails.root.join(file)}`
end
reminder(file)
puts blue "IMPORTANT: Edit (rake-generated) config/database.yml with valid username and password for EACH env before continuing!"
finished = ask("Finished?\nOptions:\n(y) Yes", ["y"])
puts blue 'IMPORTANT: Edit (rake-generated) config/database.yml with valid username and password for EACH env before continuing!'
finished = ask("Finished?\nOptions:\n(y) Yes", ['y'])
setup_run_rake_db_setup if finished
end
def setup_run_rake_db_setup
Rake::Task["db:setup"].reenable
db_setup = capture_stdout { Rake::Task["db:setup"].invoke }
Rake::Task['db:setup'].reenable
db_setup = capture_stdout { Rake::Task['db:setup'].invoke }
puts db_setup
end
@ -102,7 +102,7 @@ def setup_app_config
return nil if skip?(file)
puts yellow "Copying #{file}..."
%x(cp -p #{sample} #{Rails.root.join(file)})
`cp -p #{sample} #{Rails.root.join(file)}`
reminder(file)
end
@ -111,7 +111,7 @@ def setup_development
return nil if skip?(file)
puts yellow "Copying #{file}..."
%x(cp -p #{Rails.root.join("#{file}.SAMPLE")} #{Rails.root.join(file)})
`cp -p #{Rails.root.join("#{file}.SAMPLE")} #{Rails.root.join(file)}`
reminder(file)
end
@ -120,18 +120,18 @@ def setup_storage
return nil if skip?(file)
puts yellow "Copying #{file}..."
%x(cp -p #{Rails.root.join("#{file}.SAMPLE")} #{Rails.root.join(file)})
`cp -p #{Rails.root.join("#{file}.SAMPLE")} #{Rails.root.join(file)}`
reminder(file)
end
def start_mailcatcher
return nil if ENV['MAILCATCHER_PORT'] # skip when it has an existing Docker container
mailcatcher = ask("Do you want to start mailcatcher?\nOptions:\n(y) Yes\n(n) No", ["y", "n"])
if mailcatcher === "y"
puts yellow "Starting mailcatcher at http://localhost:1080..."
%x(mailcatcher)
end
mailcatcher = ask("Do you want to start mailcatcher?\nOptions:\n(y) Yes\n(n) No", %w[y n])
return unless mailcatcher === 'y'
puts yellow 'Starting mailcatcher at http://localhost:1080...'
`mailcatcher`
end
def start_server
@ -144,7 +144,7 @@ def ask(question, answers = false)
puts question
input = STDIN.gets.chomp
if input.blank? || (answers && !answers.include?(input))
puts red "Your Input is not valid. Try again!"
puts red 'Your Input is not valid. Try again!'
input = ask(question, answers)
end
input
@ -152,8 +152,11 @@ end
def skip?(file)
output = false
skip = ask(cyan("We found #{file}!\nOptions:\n(1) Skip step\n(2) Force rewrite"), ["1", "2"]) if File.exists?(Rails.root.join(file))
output = true if skip == "1"
if File.exist?(Rails.root.join(file))
skip = ask(cyan("We found #{file}!\nOptions:\n(1) Skip step\n(2) Force rewrite"),
%w[1 2])
end
output = true if skip == '1'
output
end

View file

@ -4,23 +4,21 @@
namespace :multicoops do
desc 'Runs a specific rake task for each registered foodcoop, use rake multicoops:run TASK=db:migrate'
task :run => :environment do
task run: :environment do
task_to_run = ENV.fetch('TASK', nil)
last_error = nil
FoodsoftConfig.each_coop do |coop|
begin
rake_say "Run '#{task_to_run}' for #{coop}"
Rake::Task[task_to_run].execute
rescue => error
last_error = error
ExceptionNotifier.notify_exception(error, data: { foodcoop: coop })
end
rake_say "Run '#{task_to_run}' for #{coop}"
Rake::Task[task_to_run].execute
rescue StandardError => e
last_error = e
ExceptionNotifier.notify_exception(e, data: { foodcoop: coop })
end
raise last_error if last_error
end
desc 'Runs a specific rake task for a single coop, use rake mutlicoops:run_single TASK=db:migrate FOODCOOP=demo'
task :run_single => :environment do
task run_single: :environment do
task_to_run = ENV.fetch('TASK', nil)
FoodsoftConfig.select_foodcoop ENV.fetch('FOODCOOP', nil)
rake_say "Run '#{task_to_run}' for #{ENV.fetch('FOODCOOP', nil)}"

View file

@ -1,32 +1,32 @@
require "resque/tasks"
require 'resque/tasks'
def run_worker(queue, count = 1)
puts "Starting #{count} worker(s) with QUEUE: #{queue}"
ops = { :pgroup => true, :err => ["log/resque_worker_foodsoft_notifier.log", "a"],
:out => ["log/resque_worker_foodsoft_notifier.log", "a"] }
env_vars = { "QUEUE" => queue.to_s, "PIDFILE" => "tmp/pids/resque_worker_foodsoft_notifier.pid" }
count.times {
ops = { pgroup: true, err: ['log/resque_worker_foodsoft_notifier.log', 'a'],
out: ['log/resque_worker_foodsoft_notifier.log', 'a'] }
env_vars = { 'QUEUE' => queue.to_s, 'PIDFILE' => 'tmp/pids/resque_worker_foodsoft_notifier.pid' }
count.times do
## Using Kernel.spawn and Process.detach because regular system() call would
## cause the processes to quit when capistrano finishes
pid = spawn(env_vars, "bundle exec rake resque:work", ops)
pid = spawn(env_vars, 'bundle exec rake resque:work', ops)
Process.detach(pid)
}
end
end
namespace :resque do
task :setup => :environment
task setup: :environment
desc "Restart running workers"
desc 'Restart running workers'
task :restart_workers do
Rake::Task['resque:stop_workers'].invoke
Rake::Task['resque:start_workers'].invoke
end
desc "Quit running workers"
desc 'Quit running workers'
task :stop_workers do
pids = File.read('tmp/pids/resque_worker_foodsoft_notifier.pid').split("\n")
if pids.empty?
puts "No workers to kill"
puts 'No workers to kill'
else
syscmd = "kill -s QUIT #{pids.join(' ')}"
puts "Running syscmd: #{syscmd}"
@ -34,8 +34,8 @@ namespace :resque do
end
end
desc "Start workers"
desc 'Start workers'
task :start_workers do
run_worker("foodsoft_notifier")
run_worker('foodsoft_notifier')
end
end

View file

@ -2,7 +2,7 @@ begin
require 'rspec/core/rake_task'
task(:spec).clear
RSpec::Core::RakeTask.new(:spec)
task :default => :spec
task default: :spec
# Use `rspec` to run a single test. When a test fails in rake but not
# with rspec, you can use the following to run a single test using rake: