disposita 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3e6ae8c89a6d847ab58eb8f855b790a96bf7ad92b358d996341611500971175
4
- data.tar.gz: 845e9049c14ad16a4b90998e1770249846df04266b9b1c032bfa4c6ce31d3c2b
3
+ metadata.gz: 203e98bee659889337318d3bf9ad108b91858fd45dd2e37402544393befb7595
4
+ data.tar.gz: ea9ae2539c28a871a64d1578ea1da0246f0e11f7e30710db5b033468c22117a1
5
5
  SHA512:
6
- metadata.gz: 5b6db017fb12915f96cbbd2b64d77b9f3de06786d188991114588e81fde0a83ab9f271fecc737ac5a95d5070487c10a0374597ed5ebc7b28957c3577125847e5
7
- data.tar.gz: 85c76cc35117c1fa0451c0b1e7cebb00445956f4d5caa004c7fc14d5c964b9dbcbb1107e362e7ba0403e4a5307c2e989c0f61f840906a2e5c2a019e466e184a8
6
+ metadata.gz: c81811f52d09d016ae10fc3f60c39b653428b0f2716014fd2d001db93277f9834611ee6f1dc6b2dc31aa1e0c0f29183821eb9011ea3010d41017bbe7cab364e0
7
+ data.tar.gz: 17075e0f5241d5df25c7b13238f597fd49832a17db504059fadac2bd4d7269b3d4d6ea7cfa83e3656ea312ae6a53b4286b5b797f1eb7d0dc9bae46e4fc9c78bd
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ # YARD 0.9.45's default/module/setup.rb renders its special dynamic-method
4
+ # section without running the visibility/API verifier. Standard @api private,
5
+ # @private, private visibility, --hide-api, --no-private and --query therefore
6
+ # still expose method_missing there, even when it is absent from method lists.
7
+ # Apply the same verifier used by normal sections so API marked private stays
8
+ # out of public HTML (including RubyDoc-style output). This changes only docs.
9
+ # Remove this override once upstream applies its verifier to this section.
10
+ def methodmissing
11
+ methods = object.meths(inherited: true, included: true)
12
+ @mm = run_verifier(methods).find { |method| method.name == :method_missing && method.scope == :instance }
13
+ erb(:methodmissing) if @mm
14
+ end
data/.yardopts ADDED
@@ -0,0 +1,10 @@
1
+ --markup markdown
2
+ --readme README.md
3
+ --title "Disposita Documentation"
4
+ --no-private
5
+ --hide-api private
6
+ --template-path .yard/templates
7
+ lib/**/*.rb
8
+ -
9
+ README.md
10
+ CHANGELOG.md
data/CHANGELOG.md CHANGED
@@ -4,6 +4,15 @@ All notable changes to Disposita will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project follows Semantic Versioning.
6
6
 
7
+ ## [0.2.1] - 2026-09-09
8
+
9
+ ### Fixed
10
+
11
+ - Include `.yardopts` and the custom YARD template in the gem so documentation generated from the package preserves public API filtering.
12
+ - Centralize SimpleCov configuration in `.simplecov`, preserving line >=95% and branch >=90% thresholds.
13
+ - Add the public-gem metadata `homepage_uri` and `allowed_push_host` required by Rubcraft.
14
+ - Run dependency audit and gem build in CI, and verify documentation generated from the unpacked gem in CI and release verification.
15
+
7
16
  ## [0.2.0] - 2026-09-09
8
17
 
9
18
  ### Breaking
data/README.md CHANGED
@@ -57,10 +57,10 @@ Namespaces merge recursively. Scalars and arrays are selected whole from the fir
57
57
 
58
58
  ## Installation
59
59
 
60
- Disposita 0.2.0 requires Ruby 3.2 or newer. After the release is published, use:
60
+ Disposita 0.2.1 requires Ruby 3.2 or newer. After the release is published, use:
61
61
 
62
62
  ```ruby
63
- gem "disposita", "~> 0.2.0"
63
+ gem "disposita", "~> 0.2.1"
64
64
  ```
65
65
 
66
66
  Then run `bundle install`. Breaking changes from the previous release are recorded in [CHANGELOG.md](CHANGELOG.md).
@@ -176,7 +176,7 @@ YAML interprets some unquoted values as special types before schema coercion. Fo
176
176
  release_date: "2026-09-09"
177
177
  ```
178
178
 
179
- Date is not a permitted class in Disposita 0.2.0.
179
+ Date is not a permitted class in Disposita 0.2.1.
180
180
 
181
181
  ## Explicit persistence
182
182
 
@@ -255,7 +255,7 @@ Custom Sources implement `read(schema)` and inherit `name`, read-only `writable?
255
255
 
256
256
  ## Schema versions
257
257
 
258
- `Disposita.define_schema(:app, version: 1)` uses a consumer-owned version independent of `Disposita::VERSION` (`0.2.0`). Explicit writes include `version:`. Resolution rejects persisted versions newer than the schema and malformed version values. Complex migrations are not included.
258
+ `Disposita.define_schema(:app, version: 1)` uses a consumer-owned version independent of `Disposita::VERSION` (`0.2.1`). Explicit writes include `version:`. Resolution rejects persisted versions newer than the schema and malformed version values. Complex migrations are not included.
259
259
 
260
260
  ## Development and API documentation
261
261
 
@@ -264,10 +264,10 @@ bundle install
264
264
  COVERAGE=true bundle exec rspec
265
265
  bundle exec rubocop
266
266
  bundle exec rake yard
267
- bundle exec rake build
267
+ bundle exec rake build yard:package
268
268
  ```
269
269
 
270
- `bundle exec rake` runs RuboCop, specs and YARD. Coverage thresholds remain line >=95% and branch >=90%. CI tests Ruby 3.2, 3.3, 3.4 and 4.0. YARD uses README as the homepage, writes documentation to `doc/`, and treats warnings as failures.
270
+ `bundle exec rake` runs RuboCop, specs, Bundler Audit, YARD and packaged-documentation verification. `bundle exec rake yard:package` builds and unpacks the gem into a temporary directory, generates YARD using its bundled configuration and template, and rejects internal API leakage. CI and release verification run this check before publication. Coverage thresholds are configured in `.simplecov`: line >=95% and branch >=90%. CI tests Ruby 3.2, 3.3, 3.4 and 4.0. YARD uses README as the homepage, writes documentation to `doc/`, and treats warnings as failures.
271
271
 
272
272
  Public contracts are `Disposita.define_schema`, Schema, Configuration, Source and its three built-in implementations, the Types factories, Paths and the YAML codec. `Internal::*`, namespace implementation nodes, constructors for resolved objects, and dot-access machinery are implementation details excluded from public documentation.
273
273
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Disposita
4
4
  # Current Disposita version.
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.1"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disposita
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rubcraft
@@ -17,6 +17,8 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".yard/templates/default/module/setup.rb"
21
+ - ".yardopts"
20
22
  - CHANGELOG.md
21
23
  - LICENSE.txt
22
24
  - README.md
@@ -41,6 +43,8 @@ homepage: https://github.com/Rubcraft/disposita
41
43
  licenses:
42
44
  - MIT
43
45
  metadata:
46
+ homepage_uri: https://github.com/Rubcraft/disposita
47
+ allowed_push_host: https://rubygems.org
44
48
  source_code_uri: https://github.com/Rubcraft/disposita
45
49
  changelog_uri: https://github.com/Rubcraft/disposita/blob/main/CHANGELOG.md
46
50
  bug_tracker_uri: https://github.com/Rubcraft/disposita/issues