Compare commits
No commits in common. "6dd3e4c7d6e369b988d6eeaaed32dfdbb67c5389" and "f1bd36b82720d8d58361e3c9eac14515dc205cc5" have entirely different histories.
6dd3e4c7d6
...
f1bd36b827
2
.gitignore
vendored
2
.gitignore
vendored
@ -56,5 +56,3 @@ build-iPhoneSimulator/
|
|||||||
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
||||||
# .rubocop-https?--*
|
# .rubocop-https?--*
|
||||||
|
|
||||||
# Local database storage
|
|
||||||
data/raven.db
|
|
||||||
|
7
Gemfile
7
Gemfile
@ -1,7 +0,0 @@
|
|||||||
source 'https://rubygems.org'
|
|
||||||
|
|
||||||
gem 'sinatra', '~> 3.0'
|
|
||||||
gem 'puma', '~> 6.0'
|
|
||||||
|
|
||||||
gem 'sequel', '~> 5.63'
|
|
||||||
gem 'sqlite3', '~> 1.5'
|
|
32
Gemfile.lock
32
Gemfile.lock
@ -1,32 +0,0 @@
|
|||||||
GEM
|
|
||||||
remote: https://rubygems.org/
|
|
||||||
specs:
|
|
||||||
mustermann (3.0.0)
|
|
||||||
ruby2_keywords (~> 0.0.1)
|
|
||||||
nio4r (2.5.8)
|
|
||||||
puma (6.0.0)
|
|
||||||
nio4r (~> 2.0)
|
|
||||||
rack (2.2.4)
|
|
||||||
rack-protection (3.0.4)
|
|
||||||
rack
|
|
||||||
ruby2_keywords (0.0.5)
|
|
||||||
sequel (5.63.0)
|
|
||||||
sinatra (3.0.4)
|
|
||||||
mustermann (~> 3.0)
|
|
||||||
rack (~> 2.2, >= 2.2.4)
|
|
||||||
rack-protection (= 3.0.4)
|
|
||||||
tilt (~> 2.0)
|
|
||||||
sqlite3 (1.5.4-x64-mingw-ucrt)
|
|
||||||
tilt (2.0.11)
|
|
||||||
|
|
||||||
PLATFORMS
|
|
||||||
x64-mingw-ucrt
|
|
||||||
|
|
||||||
DEPENDENCIES
|
|
||||||
puma (~> 6.0)
|
|
||||||
sequel (~> 5.63)
|
|
||||||
sinatra (~> 3.0)
|
|
||||||
sqlite3 (~> 1.5)
|
|
||||||
|
|
||||||
BUNDLED WITH
|
|
||||||
2.3.7
|
|
2
LICENSE
2
LICENSE
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2022 Metaunix.net
|
Copyright (c) <year> <owner>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
# raven
|
# raven
|
||||||
|
|
||||||
Inventory tracker web app
|
Self-hosted inventory tracking web app
|
@ -1,3 +0,0 @@
|
|||||||
database:
|
|
||||||
adapter: 'sqlite'
|
|
||||||
database: 'data/raven.db'
|
|
@ -1,22 +0,0 @@
|
|||||||
Sequel.migration do
|
|
||||||
|
|
||||||
up do
|
|
||||||
create_table(:items) do
|
|
||||||
primary_key :id
|
|
||||||
String :name, null: false
|
|
||||||
String :manufacturer
|
|
||||||
String :serial_number
|
|
||||||
String :sku_number
|
|
||||||
String :type
|
|
||||||
String :purchased_from
|
|
||||||
DateTime :purchased_at
|
|
||||||
DateTime :created_at
|
|
||||||
DateTime :updated_at
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
down do
|
|
||||||
drop_table(:items)
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
@ -1,20 +0,0 @@
|
|||||||
require 'yaml'
|
|
||||||
|
|
||||||
class Config
|
|
||||||
|
|
||||||
def initialize(config_path)
|
|
||||||
@data = YAML::load_file(config_path)
|
|
||||||
end
|
|
||||||
|
|
||||||
def get(key, depth = 0)
|
|
||||||
bits = key.split('.')
|
|
||||||
value = @data
|
|
||||||
|
|
||||||
bits.each do |bit|
|
|
||||||
value = value[bit]
|
|
||||||
end
|
|
||||||
|
|
||||||
return value
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
@ -1,5 +0,0 @@
|
|||||||
class Item < Sequel::Model
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
@ -1,7 +0,0 @@
|
|||||||
get '/' do
|
|
||||||
items = Item.all
|
|
||||||
erb :index, :locals => {
|
|
||||||
:title => 'Dashboard',
|
|
||||||
:items => items
|
|
||||||
}
|
|
||||||
end
|
|
27
raven.rb
27
raven.rb
@ -1,27 +0,0 @@
|
|||||||
require 'logger'
|
|
||||||
require 'sequel'
|
|
||||||
require 'sqlite3'
|
|
||||||
require 'sinatra'
|
|
||||||
|
|
||||||
require_relative 'lib/config.rb'
|
|
||||||
|
|
||||||
set :public_folder, __dir__ + '/public'
|
|
||||||
|
|
||||||
set :views, settings.root + '/views'
|
|
||||||
|
|
||||||
# Load configuration file
|
|
||||||
conf = Config.new(File.join(__dir__, 'data/defaults.yaml'))
|
|
||||||
|
|
||||||
# Initialize logging
|
|
||||||
logger = Logger.new(STDOUT)
|
|
||||||
logger.level = Logger::INFO
|
|
||||||
|
|
||||||
# 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'))
|
|
||||||
# Load models
|
|
||||||
require_relative 'lib/models/item.rb'
|
|
||||||
|
|
||||||
# Register route handlers
|
|
||||||
require_relative 'lib/routes.rb'
|
|
@ -1,11 +0,0 @@
|
|||||||
<p>This is a test.</p>
|
|
||||||
|
|
||||||
<% if items.length > 0 %>
|
|
||||||
<ul>
|
|
||||||
<% items.each do |item| %>
|
|
||||||
<li><%= item.name %></li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
<% else %>
|
|
||||||
<p>There are no items to display.</p>
|
|
||||||
<% end %>
|
|
@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title><%= title %> | Raven</title>
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/skeleton/2.0.4/skeleton.min.css">
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<%= yield %>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Loading…
Reference in New Issue
Block a user