Added Sequel ORM for database handling; added navbar
This commit is contained in:
		
							
								
								
									
										26
									
								
								src/config.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								src/config.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| require 'yaml' | ||||
|  | ||||
| class Config | ||||
|  | ||||
|   DEFAULT_CONFIG = 'config/defaults.yaml' | ||||
|  | ||||
|   def initialize(config_path) | ||||
|     @data = YAML::load_file(DEFAULT_CONFIG) | ||||
|  | ||||
|     if File.exists?(config_path) | ||||
|       @data.merge!(YAML::load_file(config_path)) | ||||
|     end | ||||
|   end | ||||
|  | ||||
|   def get(key, depth = 0) | ||||
|     bits = key.split('.') | ||||
|     value = @data | ||||
|  | ||||
|     bits.each do |bit| | ||||
|       value = value[bit] | ||||
|     end | ||||
|  | ||||
|     return value | ||||
|   end | ||||
|  | ||||
| end | ||||
							
								
								
									
										5
									
								
								src/models/benchmark.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/models/benchmark.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| class Benchmark < Sequel::Model | ||||
|  | ||||
|   one_to_many :results | ||||
|  | ||||
| end | ||||
							
								
								
									
										5
									
								
								src/models/hardware.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/models/hardware.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| class Hardware < Sequel::Model(:hardware) | ||||
|  | ||||
|   one_to_many :results | ||||
|  | ||||
| end | ||||
							
								
								
									
										3
									
								
								src/models/init.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/models/init.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| require_relative 'hardware' | ||||
| require_relative 'benchmark' | ||||
| require_relative 'result' | ||||
							
								
								
									
										6
									
								
								src/models/result.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/models/result.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| class Result < Sequel::Model | ||||
|  | ||||
|   many_to_one :hardware | ||||
|   many_to_one :benchmarks | ||||
|  | ||||
| end | ||||
| @@ -1,8 +1,10 @@ | ||||
| class GameData < Sinatra::Base | ||||
|   get '/' do | ||||
|     results = Result.reverse(:updated_at).limit(10).all() | ||||
|  | ||||
|     erb :'index/index', locals: { | ||||
|       title: 'Test!!!', | ||||
|       results: [] | ||||
|       title: 'Dashboard', | ||||
|       results: results | ||||
|     } | ||||
|   end | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,11 @@ | ||||
| require 'sinatra/base' | ||||
| require 'sequel' | ||||
| require 'sqlite3' | ||||
|  | ||||
| # Load the Sequel timestamps plugin | ||||
| Sequel::Model.plugin(:timestamps) | ||||
| # Initialize Sequel gem for database actions | ||||
| DB = Sequel.connect(adapter: $conf.get('database.adapter'), database: $conf.get('database.database')) | ||||
|  | ||||
| # Base app | ||||
| class GameData < Sinatra::Base | ||||
| @@ -14,3 +21,5 @@ end | ||||
|  | ||||
| # Load routes | ||||
| require_relative 'routes/init' | ||||
| # Load models | ||||
| require_relative 'models/init' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user