From 96416369f9c3b229f7fe2ea5c018f9c14615f7e5 Mon Sep 17 00:00:00 2001 From: VetheonGames Date: Mon, 18 Sep 2023 16:53:11 -0600 Subject: [PATCH] Dir scaffold --- Gemfile | 7 +++++ Gemfile.lock | 15 +++++++++++ bin/start_repoquest_server.rb | 0 config/repoquest_database.yml | 0 .../001_create_users_and_xp_gain_tables.rb | 26 +++++++++++++++++++ lib/database/repoquest_db_connector.rb | 13 ++++++++++ lib/repoquest_server.rb | 0 lib/websocket/repoquest_frame_parser.rb | 0 lib/websocket/repoquest_handshake.rb | 0 logs/repoquest_server.log | 0 10 files changed, 61 insertions(+) create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 bin/start_repoquest_server.rb create mode 100644 config/repoquest_database.yml create mode 100644 lib/database/migrations/001_create_users_and_xp_gain_tables.rb create mode 100644 lib/database/repoquest_db_connector.rb create mode 100644 lib/repoquest_server.rb create mode 100644 lib/websocket/repoquest_frame_parser.rb create mode 100644 lib/websocket/repoquest_handshake.rb create mode 100644 logs/repoquest_server.log diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..1ebc6f4 --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +# gem "rails" + +gem "sequel", "~> 5.72" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..ab0303d --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,15 @@ +GEM + remote: https://rubygems.org/ + specs: + bigdecimal (3.1.4) + sequel (5.72.0) + bigdecimal + +PLATFORMS + x86_64-linux + +DEPENDENCIES + sequel (~> 5.72) + +BUNDLED WITH + 2.4.10 diff --git a/bin/start_repoquest_server.rb b/bin/start_repoquest_server.rb new file mode 100644 index 0000000..e69de29 diff --git a/config/repoquest_database.yml b/config/repoquest_database.yml new file mode 100644 index 0000000..e69de29 diff --git a/lib/database/migrations/001_create_users_and_xp_gain_tables.rb b/lib/database/migrations/001_create_users_and_xp_gain_tables.rb new file mode 100644 index 0000000..d1cbe68 --- /dev/null +++ b/lib/database/migrations/001_create_users_and_xp_gain_tables.rb @@ -0,0 +1,26 @@ +# db/migrations/001_create_users_and_xp_gain_tables.rb +Sequel.migration do + up do + create_table(:users) do + primary_key :id + String :user_id, unique: true + String :username + Integer :current_level + Integer :total_xp + end + + create_table(:xp_gain) do + primary_key :id + String :commit_id + Integer :xp_gained + DateTime :time_of_gain + Integer :total_gains + foreign_key :user_id, :users + end + end + + down do + drop_table(:xp_gain) + drop_table(:users) + end +end diff --git a/lib/database/repoquest_db_connector.rb b/lib/database/repoquest_db_connector.rb new file mode 100644 index 0000000..744c75a --- /dev/null +++ b/lib/database/repoquest_db_connector.rb @@ -0,0 +1,13 @@ +# lib/database/repoquest_db_connector.rb +require 'sequel' + +class RepoQuestDBConnector + def initialize(db_file = 'sqlite://repoquest.db') + @db = Sequel.connect(db_file) + end + + def run_migrations + Sequel.extension :migration + Sequel::Migrator.run(@db, 'db/migrations/') + end +end diff --git a/lib/repoquest_server.rb b/lib/repoquest_server.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/websocket/repoquest_frame_parser.rb b/lib/websocket/repoquest_frame_parser.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/websocket/repoquest_handshake.rb b/lib/websocket/repoquest_handshake.rb new file mode 100644 index 0000000..e69de29 diff --git a/logs/repoquest_server.log b/logs/repoquest_server.log new file mode 100644 index 0000000..e69de29