backend: configure rubocop / standardrb

This commit is contained in:
0x1eef 2023-12-24 16:15:46 -03:00
parent 3b455b973d
commit 1d028c1b9a
18 changed files with 44 additions and 11 deletions

View file

@ -0,0 +1,3 @@
---
BUNDLE_PATH: ".gems"
BUNDLE_BUILD__SQLITE3: "--enable-system-libraries"

View file

@ -1,5 +1,3 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "cmd.rb", github: "0x1eef/cmd.rb"
gem "ryo.rb", github: "0x1eef/ryo.rb"
gemspec

View file

@ -1,4 +1,5 @@
# frozen_string_literal: true
module Twenty
require "webrick"
require "active_record"

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
module Twenty::Migration
##
# @return [String]

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class CreateConnections < ActiveRecord::Migration[7.1]
def up
create_table(:connections) do |t|

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class CreateIssues < ActiveRecord::Migration[7.1]
def up
create_table(:issues) do |t|

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class AddUniqueIndexToConnections < ActiveRecord::Migration[7.1]
def up
add_index :connections, [:name, :path], unique: true

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class RenameIssuesToTasks < ActiveRecord::Migration[7.1]
def up
rename_table :issues, :tasks

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class RenameConnectionsToProjects < ActiveRecord::Migration[7.1]
def up
rename_table :connections, :projects

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class Twenty::Model < ActiveRecord::Base
require "fileutils"
extend FileUtils
@ -22,7 +24,7 @@ class Twenty::Model < ActiveRecord::Base
# @api private
def self.connect_database
ActiveRecord::Base.establish_connection(
adapter: 'sqlite3',
adapter: "sqlite3",
database:,
pool: 3
)

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
class Twenty::Project < Twenty::Model
self.table_name = 'projects'
self.table_name = "projects"
##
# Validations
@ -8,7 +10,7 @@ class Twenty::Project < Twenty::Model
##
# Associations
has_many :tasks, class_name: 'Twenty::Task'
has_many :tasks, class_name: "Twenty::Task"
def to_json(options = {})
{id:, name:, path:}.to_json(options)

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true
class Twenty::Task < Twenty::Model
self.table_name = 'tasks'
self.table_name = "tasks"
##
# Validations
@ -10,7 +12,7 @@ class Twenty::Task < Twenty::Model
##
# Associations
belongs_to :project, class_name: 'Twenty::Project'
belongs_to :project, class_name: "Twenty::Project"
##
# Scopes

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class Twenty::Servlet < WEBrick::HTTPServlet::AbstractServlet
require_relative "servlet/response"
require_relative "servlet/projects"

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
module Twenty::Servlet::ResponseMixin
##
# Sets 200 response.

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
module Twenty::Servlet::ServerMixin
##
# @param [Hash] options
@ -8,8 +10,8 @@ module Twenty::Servlet::ServerMixin
# Returns an instance of WEBrick::HTTPServer.
def server(options = {})
server = WEBrick::HTTPServer.new server_options.merge(options)
server.mount '/servlet/projects', Twenty::Servlet::Projects
server.mount '/servlet/tasks', Twenty::Servlet::Tasks
server.mount "/servlet/projects", Twenty::Servlet::Projects
server.mount "/servlet/tasks", Twenty::Servlet::Tasks
server
end

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class Twenty::Servlet::Projects < Twenty::Servlet
##
# GET /servlet/projects

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class Twenty::Servlet::Response
##
# @param [WEBrick::HTTPResponse] res
@ -52,6 +54,7 @@ class Twenty::Servlet::Response
end
private
attr_reader :res
def default_body_for(status)
case status

View file

@ -1,3 +1,5 @@
# frozen_string_literal: true
class Twenty::Servlet::Tasks < Twenty::Servlet
##
# GET /servlet/tasks/
@ -7,7 +9,7 @@ class Twenty::Servlet::Tasks < Twenty::Servlet
when ""
tasks = Twenty::Task.open.order(updated_at: :desc)
ok(res, tasks:)
when %r|^/([\d]+)/?$|
when %r{^/([\d]+)/?$}
task = Twenty::Task.find_by(id: $1)
task ? ok(res, task:) : not_found(res)
else
@ -50,7 +52,7 @@ class Twenty::Servlet::Tasks < Twenty::Servlet
# DELETE /servlet/tasks/<id>/
def do_DELETE(req, res)
case req.path_info
when %r|^/([\d]+)/?$|
when %r{^/([\d]+)/?$}
task = Twenty::Task.find_by(id: $1)
task.destroy ? ok(res) : not_found(res)
else