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:
parent
f6fb804bbe
commit
fb2b4d8a8a
331 changed files with 4263 additions and 4507 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)}"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue