Compare commits
2 Commits
2884b94b7f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d526fa30f4 | |||
| 3dbc11d294 |
@@ -1,16 +1,27 @@
|
|||||||
FROM ruby:3.4
|
FROM ruby:3.4-slim
|
||||||
|
|
||||||
RUN gem install bundler
|
# 1. Install essential build tools for gems like 'pg' or 'sqlite3'
|
||||||
|
RUN apt-get update -qq && apt-get install -y \
|
||||||
|
build-essential \
|
||||||
|
libpq-dev \
|
||||||
|
curl \
|
||||||
|
git
|
||||||
|
|
||||||
WORKDIR /usr/src/game-data
|
WORKDIR /usr/src/game-data
|
||||||
|
|
||||||
COPY Gemfile Gemfile.l*ck ./
|
# 2. Set environment variables for the Gem volume we discussed
|
||||||
|
ENV BUNDLE_PATH=/usr/local/bundle \
|
||||||
|
BUNDLE_BIN=/usr/local/bundle/bin \
|
||||||
|
PATH=/usr/local/bundle/bin:$PATH
|
||||||
|
|
||||||
RUN bundle check || bundle install
|
# 3. Copy Gemfile first to leverage layer caching
|
||||||
|
COPY Gemfile Gemfile.lock ./
|
||||||
RUN gem install rake
|
RUN bundle install
|
||||||
|
|
||||||
|
# 4. Copy the application code
|
||||||
COPY . ./
|
COPY . ./
|
||||||
|
|
||||||
ENTRYPOINT ["bash", "entrypoints/dev.sh"]
|
# 5. Make sure your entrypoint script is executable
|
||||||
|
RUN chmod +x entrypoints/dev.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["bash", "entrypoints/dev.sh"]
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ ! -f ./data/gamedata.db ]; then
|
# Run the migrations to make sure the DB is up-to-date
|
||||||
rake db:migrate
|
echo 'Checking database status...'
|
||||||
fi
|
rake db:migrate
|
||||||
|
|
||||||
|
# Start the HTTP server
|
||||||
|
echo 'Starting development server...'
|
||||||
rake server:dev
|
rake server:dev
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class ResultController < BaseController
|
|||||||
|
|
||||||
Result.create(
|
Result.create(
|
||||||
test_id: params[:result_test],
|
test_id: params[:result_test],
|
||||||
benchmark_id: params[:result_benchmark],
|
benchmark_profile_id: params[:result_benchmark],
|
||||||
avg_score: params[:result_average],
|
avg_score: params[:result_average],
|
||||||
min_score: result_minimum,
|
min_score: result_minimum,
|
||||||
max_score: result_maximum
|
max_score: result_maximum
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class TestController < BaseController
|
|||||||
benchmarks = Array(params[:test_benchmarks])
|
benchmarks = Array(params[:test_benchmarks])
|
||||||
# associate the benchmarks to the test
|
# associate the benchmarks to the test
|
||||||
benchmarks.each do |b|
|
benchmarks.each do |b|
|
||||||
tst.add_benchmark(b)
|
tst.add_benchmark_profile(b)
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect "/test/#{tst.id}"
|
redirect "/test/#{tst.id}"
|
||||||
@@ -81,13 +81,13 @@ class TestController < BaseController
|
|||||||
selected_benchmarks = Array(params[:test_benchmarks])
|
selected_benchmarks = Array(params[:test_benchmarks])
|
||||||
|
|
||||||
# remove benchmarks no longer associated with the test
|
# remove benchmarks no longer associated with the test
|
||||||
tst.benchmarks.dup.each do |b|
|
tst.benchmark_profiles.dup.each do |b|
|
||||||
tst.remove_benchmark(b.id) unless selected_benchmarks.include?(b.id)
|
tst.remove_benchmark_profile(b.id) unless selected_benchmarks.include?(b.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
# associate the benchmarks to the test
|
# associate the benchmarks to the test
|
||||||
selected_benchmarks.each do |b|
|
selected_benchmarks.each do |b|
|
||||||
tst.add_benchmark(b) unless tst.benchmark?(b)
|
tst.add_benchmark_profile(b) unless tst.benchmark?(b)
|
||||||
end
|
end
|
||||||
|
|
||||||
redirect "/test/#{tst.id}"
|
redirect "/test/#{tst.id}"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class Test < Sequel::Model
|
|||||||
many_to_many :benchmark_profiles
|
many_to_many :benchmark_profiles
|
||||||
|
|
||||||
def benchmark?(benchmark_id)
|
def benchmark?(benchmark_id)
|
||||||
return benchmark_profiles_dataset.where(Sequel[:benchmark][:id] => benchmark_id).any?
|
return benchmark_profiles_dataset.where(Sequel[:benchmark_profiles][:id] => benchmark_id).any?
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -28,7 +28,9 @@
|
|||||||
<label for="test_benchmarks">Benchmarks</label>
|
<label for="test_benchmarks">Benchmarks</label>
|
||||||
<select id="test_benchmarks" class="form-select" name="test_benchmarks[]" multiple>
|
<select id="test_benchmarks" class="form-select" name="test_benchmarks[]" multiple>
|
||||||
<% for b in benchmarks %>
|
<% for b in benchmarks %>
|
||||||
<option value="<%= b.id %>"><%= b.name %></option>
|
<% for bp in b.benchmark_profiles %>
|
||||||
|
<option value="<%= bp.id %>"><%= bp.display_name %></option>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -28,7 +28,9 @@
|
|||||||
<label for="test_benchmarks">Benchmarks</label>
|
<label for="test_benchmarks">Benchmarks</label>
|
||||||
<select id="test_benchmarks" class="form-select" name="test_benchmarks[]" multiple>
|
<select id="test_benchmarks" class="form-select" name="test_benchmarks[]" multiple>
|
||||||
<% for b in benchmarks %>
|
<% for b in benchmarks %>
|
||||||
<option value="<%= b.id %>" <% if test.benchmark?(b.id) %>selected<% end %>><%= b.name %></option>
|
<% for bp in b.benchmark_profiles %>
|
||||||
|
<option value="<%= bp.id %>" <% if test.benchmark?(bp.id) %>selected<% end %>><%= bp.display_name %></option>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<% tests.each do |t| %>
|
<% tests.each do |t| %>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/test/<%= t.id %>"><%= t.name %></a></td>
|
<td><a href="/test/<%= t.id %>"><%= t.name %></a></td>
|
||||||
<td><%= t.benchmarks.length %></td>
|
<td><%= t.benchmark_profiles.length %></td>
|
||||||
<td><%= date_format(t.created_at) %></td>
|
<td><%= date_format(t.created_at) %></td>
|
||||||
<td><%= date_format(t.updated_at) %></td>
|
<td><%= date_format(t.updated_at) %></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
<div class="col-12 col-md-5 mb-3 mb-md-0">
|
<div class="col-12 col-md-5 mb-3 mb-md-0">
|
||||||
<label for="result_benchmark">Add benchmark result:</label>
|
<label for="result_benchmark">Add benchmark result:</label>
|
||||||
<select class="form-select" id="result_benchmark" name="result_benchmark">
|
<select class="form-select" id="result_benchmark" name="result_benchmark">
|
||||||
<% test.benchmarks.each do |b| %>
|
<% test.benchmark_profiles.each do |b| %>
|
||||||
<option value="<%= b.id %>"><%= b.name %></option>
|
<option value="<%= b.id %>"><%= b.display_name %></option>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -71,8 +71,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<% test.benchmarks.each do |benchmark| %>
|
<% test.benchmark_profiles.each do |bp| %>
|
||||||
<tr data-benchmark-id="<%= benchmark.id %>"></tr>
|
<tr data-benchmark-id="<%= bp.id %>"></tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
Reference in New Issue
Block a user