skyward-core 0.1.0
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/README.md +34 -0
- data/lib/skyward/core/version.rb +7 -0
- data/lib/skyward/core.rb +9 -0
- data/sig/generated/skyward/core/version.rbs +7 -0
- data/sig/generated/skyward/core.rbs +2 -0
- metadata +64 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 62d2a29c63a5a5d186f8e242973a3ea30ac592fc1b2744c08f05d747fb497322
|
|
4
|
+
data.tar.gz: aa16ded8ef75a94d5035cbdac2d6211b42cce715eb266caab5e182b98f2b2e98
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0e12b24e78b4f8b66af5d052312b45100c86392e9c3c12cf11c5f9b8541b4e62b6d42679697c7b530f03ed3f64a6d136377ff19c4e1d2446aebec0e9089e2ec7
|
|
7
|
+
data.tar.gz: 7a763b2d9c480ba962204fa586b90bdc7a22c3a33c3f75914028dd13f650ea5906132fc27530c05a6054a3c2fb1c12c1f19157936bb16f1c17250ef52a1cdfa7
|
data/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Skyward Core
|
|
2
|
+
|
|
3
|
+
> [!CAUTION]
|
|
4
|
+
> **Work in progress: Skyward Core doesn't do anything yet.** Version 0.1 is a skeleton. The gems install and load, but none of the features described here are built. This README is the spec for what's coming, not documentation of what exists. Don't depend on it yet.
|
|
5
|
+
|
|
6
|
+
The plumbing that [Skyward API](../skyward-api/README.md) and [Skyward ORM](../skyward-orm/README.md) share. You don't add it to your Gemfile: each of them depends on it, at exactly the same version.
|
|
7
|
+
|
|
8
|
+
## What it owns
|
|
9
|
+
|
|
10
|
+
- **The `Skyward` namespace.** Skyward Core opens it, and every Skyward gem's Zeitwerk loader extends it.
|
|
11
|
+
- **The `skyward` command.** It comes with Skyward Core, so it's there whichever Skyward gems you install. Each gem adds its own commands to it.
|
|
12
|
+
- **Loading RBS signatures.** One loader finds your app's signatures and those of the gems it uses, for every Skyward gem.
|
|
13
|
+
- **Reading RBS types.** One reader turns a signature into values that Skyward API and Skyward ORM each build their own mappings on, so a `Todo` read from the database and a `Todo` sent as JSON are the same thing.
|
|
14
|
+
- **`Skyward::BootError`**, which every Skyward gem raises when your app can't boot, saying why.
|
|
15
|
+
|
|
16
|
+
## Adding commands
|
|
17
|
+
|
|
18
|
+
The `skyward` executable finds each installed gem's `lib/skyward/<gem>/commands.rb` with `Gem.find_files` and loads it, and that file registers the gem's commands:
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
Skyward::Commands.register("routes", "List every route and the method that serves it") do |args|
|
|
22
|
+
# ...
|
|
23
|
+
end
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`skyward` with no command, or `skyward help`, lists every registered command with its description. An unknown command prints the same list and exits with status 1. A command fails by exiting (`abort "why"`); one that returns has succeeded.
|
|
27
|
+
|
|
28
|
+
## Ruby
|
|
29
|
+
|
|
30
|
+
Skyward supports every Ruby that isn't end-of-life (3.3 and later, as of November 2026).
|
|
31
|
+
|
|
32
|
+
## Status
|
|
33
|
+
|
|
34
|
+
This README is the spec. Skyward 0.1 is a skeleton: the gem installs, opens the `Skyward` namespace and sets up its loader, and nothing else is built yet. This section lists each part as it lands.
|
data/lib/skyward/core.rb
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "zeitwerk"
|
|
4
|
+
require_relative "core/version"
|
|
5
|
+
|
|
6
|
+
# Skyward Core owns the Skyward namespace: its version.rb opens it, and every
|
|
7
|
+
# Skyward gem's loader, this one included, extends it.
|
|
8
|
+
loader = Zeitwerk::Loader.for_gem_extension(Skyward)
|
|
9
|
+
loader.setup
|
metadata
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: skyward-core
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Jake Bottrall
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: zeitwerk
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.8'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '2.8'
|
|
26
|
+
email:
|
|
27
|
+
- jakebottrall@gmail.com
|
|
28
|
+
executables: []
|
|
29
|
+
extensions: []
|
|
30
|
+
extra_rdoc_files: []
|
|
31
|
+
files:
|
|
32
|
+
- README.md
|
|
33
|
+
- lib/skyward/core.rb
|
|
34
|
+
- lib/skyward/core/version.rb
|
|
35
|
+
- sig/generated/skyward/core.rbs
|
|
36
|
+
- sig/generated/skyward/core/version.rbs
|
|
37
|
+
homepage: https://github.com/bottrall/skyward
|
|
38
|
+
licenses:
|
|
39
|
+
- MIT
|
|
40
|
+
metadata:
|
|
41
|
+
homepage_uri: https://github.com/bottrall/skyward
|
|
42
|
+
source_code_uri: https://github.com/bottrall/skyward/tree/main/skyward-core
|
|
43
|
+
changelog_uri: https://github.com/bottrall/skyward/blob/main/CHANGELOG.md
|
|
44
|
+
bug_tracker_uri: https://github.com/bottrall/skyward/issues
|
|
45
|
+
rubygems_mfa_required: 'true'
|
|
46
|
+
rdoc_options: []
|
|
47
|
+
require_paths:
|
|
48
|
+
- lib
|
|
49
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '3.3'
|
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
|
+
requirements:
|
|
56
|
+
- - ">="
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
version: '0'
|
|
59
|
+
requirements: []
|
|
60
|
+
rubygems_version: 4.0.20
|
|
61
|
+
specification_version: 4
|
|
62
|
+
summary: 'The plumbing Skyward API and Skyward ORM share: the namespace, the skyward
|
|
63
|
+
command and RBS loading.'
|
|
64
|
+
test_files: []
|