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 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.
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Skyward
4
+ module Core
5
+ VERSION = "0.1.0" #: String
6
+ end
7
+ end
@@ -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
@@ -0,0 +1,7 @@
1
+ # Generated from lib/skyward/core/version.rb with RBS::Inline
2
+
3
+ module Skyward
4
+ module Core
5
+ VERSION: String
6
+ end
7
+ end
@@ -0,0 +1,2 @@
1
+ # Generated from lib/skyward/core.rb with RBS::Inline
2
+
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: []