Releases: OriPekelman/spinelkit
spinel_kit 0.2.0
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 acrossTep::Url,Tep::Llm, andSpinelKit::Json's decoder.SpinelKit::Url— theCGI/URI-component surface:escape/unescape(RFC 3986 percent-codec),parse_query(form-urlencoded→Hash),split_url(scheme/host/port/path/query). Ported fromTep::Url; usesSpinelKit::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
Patch release.
Fixed
SpinelKit::Git.readpreserves slashed branch names. A branch likefeat/x(HEAD →ref: refs/heads/feat/x) was reported asxbecause the parser took the last/-segment. It now strips therefs/heads/prefix, preserving the full path (feat/x,user/feature/sub/thing); non-headsrefs fall back to the last segment. Verified clean under Spinel (0 degrade warnings). Covered bytest/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
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/HEADprovenance (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.