Skip to content

Releases: OriPekelman/spinelkit

spinel_kit 0.2.0

08 Jun 22:48

Choose a tag to compare

Two new stdlib-surface shims, absorbed from duplication across tep + toy.

Added

  • SpinelKit::Hex — hex digit/byte codec: nibble (hex→0..15), nibble_char (0..15→uppercase hex), byte2 (byte→two lowercase hex chars), to_int (leading hex digits→int). The decode nibble was byte-identical across Tep::Url, Tep::Llm, and SpinelKit::Json's decoder.
  • SpinelKit::Url — the CGI/URI-component surface: escape/unescape (RFC 3986 percent-codec), parse_query (form-urlencoded→Hash), split_url (scheme/host/port/path/query). Ported from Tep::Url; uses SpinelKit::Hex; self-contained.

SpinelKit::Json keeps its own private hex helpers so a JSON-only consumer never compiles Hex (Spinel has no tree-shaking).

Verified: CRuby parity tests + Spinel compile clean (0 degrade warnings). RBS shipped for both.

gem install spinel_kit · https://rubygems.org/gems/spinel_kit · CHANGELOG

spinel_kit 0.1.1

08 Jun 22:09

Choose a tag to compare

Patch release.

Fixed

  • SpinelKit::Git.read preserves slashed branch names. A branch like feat/x (HEAD → ref: refs/heads/feat/x) was reported as x because the parser took the last /-segment. It now strips the refs/heads/ prefix, preserving the full path (feat/x, user/feature/sub/thing); non-heads refs fall back to the last segment. Verified clean under Spinel (0 degrade warnings). Covered by test/git_test.rb (6 cases).

Caught by toy's run_start provenance during the toy#44 migration.

gem install spinel_kit · https://rubygems.org/gems/spinel_kit · CHANGELOG

spinel_kit 0.1.0

08 Jun 12:52

Choose a tag to compare

First release — the Spinel stdlib-surface gem. Now on RubyGems: gem install spinel_kit · https://rubygems.org/gems/spinel_kit

Pure-Ruby, Spinel-safe shims consolidated from toy and tep, after auditing the spinelgems catalog and confirming no verified gem covers these surfaces.

What's in it

  • SpinelKit::Json — JSON-over-HTTP codec: encoders (spinel_kit/json) + flat-key decoders (spinel_kit/json_decoder).
  • SpinelKit::Json::Builder — incremental ordered-object builder (spinel_kit/json_builder).
  • SpinelKit::Git.git/HEAD provenance (sha/branch).
  • SpinelKit::Log — minimal levelled logger.

Split across files because Spinel has no tree-shaking — a consumer compiles only the surface it requires. Pure Ruby, no native extension, no runtime dependencies; vendors cleanly via bundler-spinel.

Rationale and design: OriPekelman/toy#44. Full notes in CHANGELOG.md.