pressto 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +12 -0
- data/README.md +50 -0
- data/lib/pressto/version.rb +5 -0
- data/lib/pressto.rb +20 -0
- metadata +51 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 6638b7737d249c98f90985929f36e7c667d4da36b34832e723b99de94193932e
|
|
4
|
+
data.tar.gz: 7f43192670d78811762764af34f1ccfd14f5b0a0020a98762f48fafaf00919cc
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: abca6a6f09fff3cd32ca3c29fab4ed3b610787383fab0072dc36b25efbbe043e22385ef6313944b5abd1f4134d2e33d37369b8c8940ac5a6c09ab775a9e2f246
|
|
7
|
+
data.tar.gz: 765bcf8bf635cf7e1fa64d9aedad1a4fb4ede42e5e10f5e9b12685f6c40eb049e9ca5bef7e90d75fc000c34ecdcee5965b113e884ce3c0ad1e96007aef8cae59
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Pressto are documented here. Format loosely follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/); this project uses [SemVer](https://semver.org/).
|
|
5
|
+
|
|
6
|
+
## [0.0.1] - 2026-07-07
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- Reserve the `pressto` gem name on RubyGems.
|
|
10
|
+
- Establish the `Pressto` module namespace and error hierarchy
|
|
11
|
+
(`Pressto::Error`, `Pressto::GenerationError`).
|
|
12
|
+
- Project skeleton with RSpec, Rake, and RuboCop wiring.
|
data/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Pressto
|
|
2
|
+
|
|
3
|
+
**Deterministic puzzle & activity book generator for print-on-demand publishing.**
|
|
4
|
+
|
|
5
|
+
Pressto turns puzzle definitions into print-ready book interiors (Amazon KDP PDFs). It is the
|
|
6
|
+
generation engine behind the [Bright Grid Press](https://github.com/borisano/pressto) catalog.
|
|
7
|
+
|
|
8
|
+
> **Status: 0.0.x — name reservation.** This release establishes the gem name and the module
|
|
9
|
+
> namespace. The engines are being built test-first; see the roadmap below.
|
|
10
|
+
|
|
11
|
+
## What it will do
|
|
12
|
+
|
|
13
|
+
One gem, many engines — each grouping the puzzle types that share generation machinery:
|
|
14
|
+
|
|
15
|
+
| Engine | Types | Notes |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| Grid search | word search, number search | themed word lists; language-independent number grids |
|
|
18
|
+
| Sudoku family | classic, killer, jigsaw, diagonal | one solver core, variant constraints |
|
|
19
|
+
| Kakuro | cross-sums | constraint-solver moat |
|
|
20
|
+
| Cryptogram | substitution ciphers | public-domain quote corpus |
|
|
21
|
+
| Maze | kids mazes (themed, masked) | provable difficulty grading |
|
|
22
|
+
| Math worksheet | color-by-number, drills | grade-banded, curriculum-checked |
|
|
23
|
+
| Crossword | fill-in (phase 1), codeword | uniqueness-proved |
|
|
24
|
+
| Bible content | verse cloze, who-said-it, memorization | retrieval-only from scripture text |
|
|
25
|
+
| Guided journal | keepsake / memory journals | prompt curation |
|
|
26
|
+
| Prompt content | would-you-rather, jokes, riddles | curated, screened |
|
|
27
|
+
|
|
28
|
+
Every generated puzzle is **software-verified**: solvable, uniquely solvable (where the type
|
|
29
|
+
requires it), difficulty-graded by a solving-technique simulator, deduplicated against a
|
|
30
|
+
registry, and screened for unfortunate content.
|
|
31
|
+
|
|
32
|
+
## Design principles
|
|
33
|
+
|
|
34
|
+
- **Deterministic:** `generate(params, seed:)` is a pure function — same inputs produce a
|
|
35
|
+
byte-identical result. No wall-clock timeouts in generation logic.
|
|
36
|
+
- **Standard contract:** every engine emits the same JSON-serializable envelope.
|
|
37
|
+
- **TDD, always:** failing test first; edge cases are catalogued and each has a named test.
|
|
38
|
+
|
|
39
|
+
Full specifications and build order live in the project's `technical_planning/` documents.
|
|
40
|
+
|
|
41
|
+
## Development
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
bundle install
|
|
45
|
+
bundle exec rspec
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
Proprietary — all rights reserved. Not licensed for redistribution.
|
data/lib/pressto.rb
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "pressto/version"
|
|
4
|
+
|
|
5
|
+
# Pressto — a deterministic generator for puzzle and activity book interiors,
|
|
6
|
+
# producing print-ready PDFs for Amazon KDP (and dual-listing on Etsy).
|
|
7
|
+
#
|
|
8
|
+
# This 0.0.x line reserves the gem name. The full engine set (word/number search,
|
|
9
|
+
# sudoku family, kakuro, cryptograms, mazes, math worksheets, fill-ins, Bible
|
|
10
|
+
# content, guided journals, prompt content) is specified in the project's
|
|
11
|
+
# technical_planning documents and is built test-first per IMPLEMENTATION_STANDARDS.
|
|
12
|
+
module Pressto
|
|
13
|
+
# Base class for all Pressto errors.
|
|
14
|
+
class Error < StandardError; end
|
|
15
|
+
|
|
16
|
+
# Raised when generation cannot produce a valid puzzle within its deterministic
|
|
17
|
+
# budget. Carries machine-readable context (reason, seed, params) so a failed
|
|
18
|
+
# book build is reproducible.
|
|
19
|
+
class GenerationError < Error; end
|
|
20
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: pressto
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Bright Grid Press
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: 'Pressto generates print-ready puzzle and activity book interiors — word
|
|
13
|
+
search, number search, sudoku (classic, killer, jigsaw), kakuro, mazes, cryptograms,
|
|
14
|
+
fill-ins, math worksheets, and more — as Amazon KDP-ready PDFs. Every puzzle is
|
|
15
|
+
software-verified: solvable, uniquely solvable where applicable, difficulty-graded,
|
|
16
|
+
and deduplicated. This 0.0.x line reserves the name while the engines are built.'
|
|
17
|
+
email:
|
|
18
|
+
- borisano@gmail.com
|
|
19
|
+
executables: []
|
|
20
|
+
extensions: []
|
|
21
|
+
extra_rdoc_files: []
|
|
22
|
+
files:
|
|
23
|
+
- CHANGELOG.md
|
|
24
|
+
- README.md
|
|
25
|
+
- lib/pressto.rb
|
|
26
|
+
- lib/pressto/version.rb
|
|
27
|
+
homepage: https://github.com/borisano/pressto
|
|
28
|
+
licenses: []
|
|
29
|
+
metadata:
|
|
30
|
+
homepage_uri: https://github.com/borisano/pressto
|
|
31
|
+
source_code_uri: https://github.com/borisano/pressto
|
|
32
|
+
changelog_uri: https://github.com/borisano/pressto/blob/main/CHANGELOG.md
|
|
33
|
+
rubygems_mfa_required: 'true'
|
|
34
|
+
rdoc_options: []
|
|
35
|
+
require_paths:
|
|
36
|
+
- lib
|
|
37
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
38
|
+
requirements:
|
|
39
|
+
- - ">="
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '3.1'
|
|
42
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
requirements: []
|
|
48
|
+
rubygems_version: 3.6.7
|
|
49
|
+
specification_version: 4
|
|
50
|
+
summary: Deterministic puzzle and activity book generator for print-on-demand publishing.
|
|
51
|
+
test_files: []
|