about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--Gemfile.lock3
-rw-r--r--app/models/wittle/puzzle.rb12
-rw-r--r--app/models/wittle/score.rb8
-rw-r--r--db/migrate/20231028205751_create_wittle_puzzles.rb11
-rw-r--r--db/migrate/20231028210722_create_wittle_scores.rb12
-rw-r--r--lib/wittle/engine.rb1
-rw-r--r--test/dummy/db/schema.rb33
-rw-r--r--test/fixtures/wittle/puzzles.yml11
-rw-r--r--test/fixtures/wittle/scores.yml13
-rw-r--r--test/models/wittle/puzzle_test.rb9
-rw-r--r--test/models/wittle/score_test.rb9
-rw-r--r--wittle.gemspec1
12 files changed, 123 insertions, 0 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 2fd1efc..86422fe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock
@@ -2,6 +2,7 @@ PATH
2 remote: . 2 remote: .
3 specs: 3 specs:
4 wittle (0.1.0) 4 wittle (0.1.0)
5 enumerize
5 haml 6 haml
6 rails (>= 7.1.1) 7 rails (>= 7.1.1)
7 rice 8 rice
@@ -91,6 +92,8 @@ GEM
91 date (3.3.3) 92 date (3.3.3)
92 drb (2.1.1) 93 drb (2.1.1)
93 ruby2_keywords 94 ruby2_keywords
95 enumerize (2.7.0)
96 activesupport (>= 3.2)
94 erubi (1.12.0) 97 erubi (1.12.0)
95 globalid (1.2.1) 98 globalid (1.2.1)
96 activesupport (>= 6.1) 99 activesupport (>= 6.1)
diff --git a/app/models/wittle/puzzle.rb b/app/models/wittle/puzzle.rb new file mode 100644 index 0000000..e118d8a --- /dev/null +++ b/app/models/wittle/puzzle.rb
@@ -0,0 +1,12 @@
1module Wittle
2 class Puzzle < ApplicationRecord
3 extend Enumerize
4
5 has_many :scores
6
7 validates :data, presence: true
8
9 validates :category, presence: true
10 enumerize :category, in: [:normal, :hard, :expert], scope: :shallow
11 end
12end
diff --git a/app/models/wittle/score.rb b/app/models/wittle/score.rb new file mode 100644 index 0000000..be00fda --- /dev/null +++ b/app/models/wittle/score.rb
@@ -0,0 +1,8 @@
1module Wittle
2 class Score < ApplicationRecord
3 belongs_to :puzzle
4
5 validates :name, presence: true
6 validates :ip, presence: true
7 end
8end
diff --git a/db/migrate/20231028205751_create_wittle_puzzles.rb b/db/migrate/20231028205751_create_wittle_puzzles.rb new file mode 100644 index 0000000..ebe0bf7 --- /dev/null +++ b/db/migrate/20231028205751_create_wittle_puzzles.rb
@@ -0,0 +1,11 @@
1class CreateWittlePuzzles < ActiveRecord::Migration[7.1]
2 def change
3 create_table :wittle_puzzles do |t|
4 t.text :data
5 t.text :solved_data
6 t.string :category
7
8 t.timestamps
9 end
10 end
11end
diff --git a/db/migrate/20231028210722_create_wittle_scores.rb b/db/migrate/20231028210722_create_wittle_scores.rb new file mode 100644 index 0000000..9ae6413 --- /dev/null +++ b/db/migrate/20231028210722_create_wittle_scores.rb
@@ -0,0 +1,12 @@
1class CreateWittleScores < ActiveRecord::Migration[7.1]
2 def change
3 create_table :wittle_scores do |t|
4 t.references :puzzle, null: false, foreign_key: true
5 t.string :name
6 t.string :ip
7 t.integer :seconds_taken
8
9 t.timestamps
10 end
11 end
12end
diff --git a/lib/wittle/engine.rb b/lib/wittle/engine.rb index f0ec682..6b4feca 100644 --- a/lib/wittle/engine.rb +++ b/lib/wittle/engine.rb
@@ -1,3 +1,4 @@
1require "enumerize"
1require "haml" 2require "haml"
2require "wittle_generator/wittle_generator" 3require "wittle_generator/wittle_generator"
3 4
diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb new file mode 100644 index 0000000..928cc3c --- /dev/null +++ b/test/dummy/db/schema.rb
@@ -0,0 +1,33 @@
1# This file is auto-generated from the current state of the database. Instead
2# of editing this file, please use the migrations feature of Active Record to
3# incrementally modify your database, and then regenerate this schema definition.
4#
5# This file is the source Rails uses to define your schema when running `bin/rails
6# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7# be faster and is potentially less error prone than running all of your
8# migrations from scratch. Old migrations may fail to apply correctly if those
9# migrations use external dependencies or application code.
10#
11# It's strongly recommended that you check this file into your version control system.
12
13ActiveRecord::Schema[7.1].define(version: 2023_10_28_210722) do
14 create_table "wittle_puzzles", force: :cascade do |t|
15 t.text "data"
16 t.text "solved_data"
17 t.string "category"
18 t.datetime "created_at", null: false
19 t.datetime "updated_at", null: false
20 end
21
22 create_table "wittle_scores", force: :cascade do |t|
23 t.integer "puzzle_id", null: false
24 t.string "name"
25 t.string "ip"
26 t.integer "seconds_taken"
27 t.datetime "created_at", null: false
28 t.datetime "updated_at", null: false
29 t.index ["puzzle_id"], name: "index_wittle_scores_on_puzzle_id"
30 end
31
32 add_foreign_key "wittle_scores", "puzzles"
33end
diff --git a/test/fixtures/wittle/puzzles.yml b/test/fixtures/wittle/puzzles.yml new file mode 100644 index 0000000..75f9eab --- /dev/null +++ b/test/fixtures/wittle/puzzles.yml
@@ -0,0 +1,11 @@
1# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
3one:
4 data: MyText
5 solved_data: MyText
6 category: MyString
7
8two:
9 data: MyText
10 solved_data: MyText
11 category: MyString
diff --git a/test/fixtures/wittle/scores.yml b/test/fixtures/wittle/scores.yml new file mode 100644 index 0000000..1f21c4c --- /dev/null +++ b/test/fixtures/wittle/scores.yml
@@ -0,0 +1,13 @@
1# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
2
3one:
4 puzzle: one
5 name: MyString
6 ip: MyString
7 seconds_taken: 1
8
9two:
10 puzzle: two
11 name: MyString
12 ip: MyString
13 seconds_taken: 1
diff --git a/test/models/wittle/puzzle_test.rb b/test/models/wittle/puzzle_test.rb new file mode 100644 index 0000000..f826aa3 --- /dev/null +++ b/test/models/wittle/puzzle_test.rb
@@ -0,0 +1,9 @@
1require "test_helper"
2
3module Wittle
4 class PuzzleTest < ActiveSupport::TestCase
5 # test "the truth" do
6 # assert true
7 # end
8 end
9end
diff --git a/test/models/wittle/score_test.rb b/test/models/wittle/score_test.rb new file mode 100644 index 0000000..0d5e4a3 --- /dev/null +++ b/test/models/wittle/score_test.rb
@@ -0,0 +1,9 @@
1require "test_helper"
2
3module Wittle
4 class ScoreTest < ActiveSupport::TestCase
5 # test "the truth" do
6 # assert true
7 # end
8 end
9end
diff --git a/wittle.gemspec b/wittle.gemspec index e182456..0c467e3 100644 --- a/wittle.gemspec +++ b/wittle.gemspec
@@ -18,4 +18,5 @@ Gem::Specification.new do |s|
18 s.add_dependency "rails", ">= 7.1.1" 18 s.add_dependency "rails", ">= 7.1.1"
19 s.add_dependency "rice" 19 s.add_dependency "rice"
20 s.add_dependency "haml" 20 s.add_dependency "haml"
21 s.add_dependency "enumerize"
21end 22end