Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
c18de99
squash-commit
mwsis Aug 28, 2026
b08f3e5
chore(doc): update documentation metadata for 0.39.11
mwsis Aug 28, 2026
431b69c
chore(doc): establish component documentation structure
mwsis Aug 28, 2026
7815cae
docs(components): document container selection and behaviour
mwsis Aug 28, 2026
de4d4cd
docs(components): document scalar conversion policies
mwsis Aug 28, 2026
7008f9f
docs(components): document string transformation and matching semantics
mwsis Aug 28, 2026
553ee44
docs(components): document diagnostic context and exception chaining
mwsis Aug 28, 2026
a02fedb
docs(components): document Ruby extension loading and semantics
mwsis Aug 28, 2026
cc0a451
docs(components): document hash transformation and matching semantics
mwsis Aug 28, 2026
387b927
docs(components): document parameter and option validation
mwsis Aug 28, 2026
12dd71b
docs(components): document human-readable array formatting
mwsis Aug 28, 2026
61e7c87
docs(components): document command-line option mapping
mwsis Aug 28, 2026
b4c4468
docs(components): document structured IO writing
mwsis Aug 28, 2026
ba01eae
docs(guides): add the xqsr3 getting-started workflow
mwsis Aug 28, 2026
a356bab
docs(guides): add component selection guidance
mwsis Aug 28, 2026
f280a9d
docs(guides): document external input processing
mwsis Aug 28, 2026
cddffd7
docs(reference): establish the generated API reference
mwsis Aug 28, 2026
77bf014
docs(reference): complete generated API documentation coverage
mwsis Aug 28, 2026
9411181
ci(docs): verify generated API reference coverage
mwsis Aug 28, 2026
4c5ce26
docs(reference): exclude the private BoolParser helper
mwsis Aug 28, 2026
ffa2710
Merge branch 'dev' into doc.3
mwsis Aug 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ on:
- master
- dev
- boilerplate
- doc
- doc.1
- doc.2
- doc.3
- idiomatic
- rc1
- rc2
Expand All @@ -32,6 +36,26 @@ defaults:
shell: bash

jobs:

documentation:

name: Documentation

runs-on: ubuntu-latest

steps:
- name: Checking out code
uses: actions/checkout@v7

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4'
bundler-cache: false

- name: Generate RDoc coverage report
run: ./generate_rdoc.sh -C

test:

strategy:
Expand Down
37 changes: 37 additions & 0 deletions docs/reference/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# xqsr3 Generated API Reference <!-- omit in toc -->

The generated API reference is produced by RDoc from the Ruby source
documentation comments. It complements the authored guides and component
catalogue:

* [`docs/components/`](../components/README.md) explains component selection
and behaviour;
* [`docs/guides/`](../guides/README.md) explains task-oriented workflows;
* generated `doc/` explains the complete public Ruby API.


## Generate the reference

From the project root, run:

```Shell
./generate_rdoc.sh
```

The script removes any previous generated output and writes the new reference
to `doc/`. The generated files are build output and should not be edited by
hand.


## Reading the reference

Use the generated namespace and method pages for exact signatures and
source-level API details. Start with the authored documentation when deciding
which component to use, then use RDoc to inspect the complete method surface.

The RDoc index is anchored by **lib/xqsr3/doc_.rb**, which provides the
cross-component namespace overview. Public implementation comments remain the
authoritative source for signatures, options, and exceptions.


<!-- ########################### end of file ########################### -->
4 changes: 3 additions & 1 deletion generate_rdoc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Purpose: Generates documentation
#
# Created: 11th June 2016
# Updated: 14th August 2026
# Updated: 28th August 2026
#
#############################################################################

Expand All @@ -20,6 +20,8 @@ rdoc \
-x *.gemspec \
\
-x doc/ \
-x docs/ \
-x examples/ \
-x gems/ \
-x old-gems/ \
-x test/performance/ \
Expand Down
4 changes: 2 additions & 2 deletions lib/xqsr3/conversion/bool_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Purpose: Definition of the ::Xqsr3::Conversion::BoolParser module
#
# Created: 3rd June 2017
# Updated: 19th August 2026
# Updated: 28th August 2026
#
# Home: https://github.com/synesissoftware/xqsr3
#
Expand Down Expand Up @@ -55,7 +55,7 @@ module Conversion
module BoolParser

private
def self.matches_to_ s, expr
def self.matches_to_ s, expr # :nodoc:

case expr
when ::Regexp
Expand Down
23 changes: 19 additions & 4 deletions lib/xqsr3/doc_.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Purpose: Documentation of the ::Xqsr3 modules
#
# Created: 10th June 2016
# Updated: 19th August 2026
# Updated: 28th August 2026
#
# Home: https://github.com/synesissoftware/xqsr3
#
Expand Down Expand Up @@ -75,11 +75,19 @@ module CommandLineUtilities

# Containers
#
# === Subordinate modules of interest
# * ::Xqsr3::Containers::FrequencyMap
# * ::Xqsr3::Containers::MultiMap
#
module Containers
end # module Containers

# Conversion
#
# === Subordinate modules of interest
# * ::Xqsr3::Conversion::BoolParser
# * ::Xqsr3::Conversion::IntegerParser
#
module Conversion
end # module Conversion

Expand Down Expand Up @@ -121,14 +129,21 @@ module Exceptions
# * ::Xqsr3::HashUtilities::KeyMatching
module HashUtilities

# Exception-related utilities
# Deep hash transformation
#
# === Components of interest
# * ::Xqsr3::Diagnostics::HashUtilities::deep_transform
# * ::Xqsr3::Diagnostics::HashUtilities::deep_transform!
# * ::Xqsr3::HashUtilities::DeepTransform
#
module DeepTransform
end # module DeepTransform

# Hash key matching
#
# === Components of interest
# * ::Xqsr3::HashUtilities::KeyMatching
#
module KeyMatching
end # module KeyMatching
end # module HashUtilities

# IO
Expand Down
2 changes: 2 additions & 0 deletions lib/xqsr3/extensions/hash/slice.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

unless Hash.instance_methods.include? :slice

# Standard Ruby Hash extended with #slice when unavailable.
class Hash

# Returns a new hash containing only the requested existing keys.
def slice(*args)

r = {}
Expand Down
3 changes: 2 additions & 1 deletion lib/xqsr3/extensions/integer/to_s_grp.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Purpose: Adds a to_s_grp() method to the Integer class
#
# Created: 29th March 2024
# Updated: 19th August 2026
# Updated: 28th August 2026
#
# Home: https://github.com/synesissoftware/xqsr3
#
Expand Down Expand Up @@ -47,6 +47,7 @@
=begin
=end

# Standard Ruby Integer extended with #to_s_grp.
class Integer

# Extends +Integer+ type with the +#to_s_grp()+ method
Expand Down
2 changes: 2 additions & 0 deletions lib/xqsr3/extensions/string/map_option_string.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ class String
include ::Xqsr3::CommandLineUtilities::MapOptionString
end # class String

# Standard NilClass extension for safely mapping an absent option string.
class NilClass

# Returns nil because a nil option string cannot match a declared option.
def map_option_string *args

nil
Expand Down