Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
91d5a3d
.gitattributes
synesissoftware Aug 13, 2026
5faf516
.gitignore
synesissoftware Aug 13, 2026
5904860
.ruby-version-exclusions
synesissoftware Aug 13, 2026
63f3e51
.vimrc
synesissoftware Aug 13, 2026
6e36843
LICENSE
synesissoftware Aug 13, 2026
ba4a59a
.vscode/settings.json
synesissoftware Aug 13, 2026
a0a153c
initial version
synesissoftware Aug 14, 2026
c5c692a
boilerplate: markdown files
synesissoftware Aug 14, 2026
859d1ff
boilerplate: .gitattributes
synesissoftware Aug 14, 2026
d4e81da
boilerplate: .vscode/settings.json
synesissoftware Aug 14, 2026
1701d48
boilerplate: .vimrc
synesissoftware Aug 14, 2026
158689b
boilerplate: build_gem.cmd, build_gem.sh, generate_rdoc.cmd, generate…
synesissoftware Aug 14, 2026
214d7fe
bolierplate: updating Gemfile
synesissoftware Aug 14, 2026
22314a2
boilerplate: placeholder markdown files
synesissoftware Aug 14, 2026
aa11aaf
boilerplate: .gitignore
synesissoftware Aug 14, 2026
3245717
version dependencies
synesissoftware Aug 14, 2026
cb46523
Add canonical AUTHORS and FAQ markdown skeletons
synesissoftware Aug 14, 2026
f54a10b
Add ruby.yml CI badge and switch Gemfile to gemspec
synesissoftware Aug 14, 2026
6742029
chore: dependencies
synesissoftware Aug 14, 2026
18e20bc
gemspec updates
synesissoftware Aug 14, 2026
d53719e
chore: AUTHORS.md
synesissoftware Aug 14, 2026
f19e454
fix: gemspec metadata
synesissoftware Aug 14, 2026
e76e7b9
feature: improved CI
synesissoftware Aug 14, 2026
40bb4e4
fix: CI
synesissoftware Aug 14, 2026
4f61093
added/updated Rakefile
synesissoftware Aug 14, 2026
77d5e66
chore: CONTRIBUTING.md, INSTALL.md, SECURITY.md
synesissoftware Aug 14, 2026
bf6d2ae
chore: rake in Gemfile
synesissoftware Aug 14, 2026
17695ea
fix: Add frozen lib/ strings and standardise Ruby gem boilerplate
synesissoftware Aug 14, 2026
415d44b
standard CI for all projects
synesissoftware Aug 14, 2026
dec9382
standard .editorconfig and dependabot for all projects
synesissoftware Aug 14, 2026
21ad62c
CHANGES.md
synesissoftware Aug 14, 2026
5a0f12a
NEWS.md
synesissoftware Aug 14, 2026
e27fe2d
README.md
synesissoftware Aug 14, 2026
4eb96d5
0.0.1
synesissoftware Aug 19, 2026
ec2f62a
squash-commit
synesissoftware Aug 20, 2026
ab75335
Merge branch 'master' into 'bp-2'
synesissoftware Aug 20, 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
19 changes: 15 additions & 4 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#
# Created: 14th August 2026
# Updated: 15th August 2026
# Updated: 19th August 2026
#

name: Ruby
Expand Down Expand Up @@ -70,13 +70,20 @@ jobs:
uses: actions/checkout@v7

- name: Remove Gemfile.lock
shell: bash
run: rm -f Gemfile.lock

- name: Set up Ruby v${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
# Bundler 4 honours Gemfile `lockfile false`, so no Gemfile.lock is
# written. bundler-cache cats that file after `bundle lock` and
# fails on Windows 3.2+ (setup-ruby installs Bundler ~> 4).
bundler-cache: false

- name: Install gems
run: bundle install

- name: Show Ruby version
run: ruby -v
Expand All @@ -102,13 +109,17 @@ jobs:
uses: actions/checkout@v7

- name: Remove Gemfile.lock
shell: bash
run: rm -f Gemfile.lock

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

- name: Install gems
run: bundle install

- name: Show Ruby version
run: ruby -v
Expand Down
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# directories (by name)

/.bzr/
/.bundle/
/.bzr/
/.config/
/.svn/
/.vscode/
/.yardoc/

/_build/
/_yardoc/

/InstalledFiles/
Expand All @@ -23,17 +25,22 @@
/tmp/
/vendor/bundle/


# directories (by pattern)


# files (by name)

.DS_Store
.repl_history
.ruby-version
.rvmrc

Gemfile.lock

/spec/examples.txt


# files (by pattern)

*~
Expand Down
10 changes: 10 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# recls-helpers.Ruby - Changes <!-- omit in toc -->


## 0.0.1 - 19th August 2026

* **recls-helpers-ruby.gemspec**: `required_ruby_version` is the range `>= 2.0`; **Gemfile.lock** and **.ruby-version** excluded from `spec.files`; `spec.summary` matches the README tagline; packaged **AUTHORS**, **CHANGES**, **CONTRIBUTING**, **EXAMPLES**, **FAQ**, **INSTALL**, **NEWS**, **SECURITY**, **TODO**;
* **Gemfile** sets `lockfile false` when Bundler supports it; stop tracking **Gemfile.lock**;
* CI uses `bundler-cache: false` and explicit `bundle install`; **Warnings** job on Ruby **3.4**;
* updated **run_all_unit_tests.sh** (from https://github.com/synesissoftware/misc-dev-scripts) to skip **tput** when **$TERM** is unset or stdout is not a TTY;
* **README.md**: drop extra GitHub-release badge; nested **Dependencies** (Efferent / Afferent);
* library source **Home:** URLs now use `https`;


## 0.0.0 - 16th August 2026

* added `# frozen_string_literal: true` to all **lib/** sources;
Expand Down
7 changes: 7 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

source "https://rubygems.org"

# Suppress lockfile on Bundler 4+ (gem: do not pin the graph). No-op on
# Bundler that lacks the DSL (Ruby 2.x CI). Do not combine with
# ruby/setup-ruby `bundler-cache: true` — that action cats Gemfile.lock
# after `bundle lock` and fails when no file is written (Windows 3.2+,
# where setup-ruby installs Bundler ~> 4).
lockfile false if respond_to?(:lockfile)

gemspec

# rake 13 requires Ruby >= 2.3
Expand Down
19 changes: 12 additions & 7 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
PATH
remote: .
specs:
recls-helpers-ruby (0.0.0)
recls-helpers-ruby (0.0.1)
recls-ruby (~> 2.13)

GEM
remote: https://rubygems.org/
specs:
recls-ruby (2.13.2)
xqsr3 (0.39.5)
power_assert (3.1.0)
rake (13.4.2)
recls-ruby (2.13.4)
test-unit (3.7.8)
power_assert
xqsr3 (0.39.8)

PLATFORMS
arm64-darwin-25
ruby
x86_64-darwin-20

DEPENDENCIES
rake (~> 13.0)
recls-helpers-ruby!
xqsr3 (~> 0.39)
test-unit (~> 3.0)
xqsr3 (>= 0.39.5, < 1.0)

BUNDLED WITH
2.6.9
2.2.16
7 changes: 4 additions & 3 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# recls-helpers.Ruby - News <!-- omit in toc -->

| Date | News Item |
| ---------------- | ------------------------------------------------------------------------------------------------- |
| 16th August 2026 | [recls-helpers.Ruby 0.0.0 released](https://github.com/synesissoftware/recls-helpers.Ruby/releases/tag/0.0.0) |
| Date | News Item |
| ---------------- | -------------------------------------------------------------------------------------------------------- |
| 19th August 2026 | [**recls-helpers.Ruby** 0.0.1](https://github.com/synesissoftware/recls-helpers.Ruby/releases/tag/0.0.1) |
| 16th August 2026 | [**recls-helpers.Ruby** 0.0.0](https://github.com/synesissoftware/recls-helpers.Ruby/releases/tag/0.0.0) |


<!-- ########################### end of file ########################### -->
52 changes: 40 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ Helper types and functions for working with **recls.Ruby**
![Language](https://img.shields.io/badge/Ruby-CC342D?style=flat&logo=ruby&logoColor=white)
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![Gem Version](https://badge.fury.io/rb/recls-helpers-ruby.svg)](https://badge.fury.io/rb/recls-helpers-ruby)
[![GitHub release](https://img.shields.io/github/v/release/synesissoftware/recls-helpers.Ruby.svg)](https://github.com/synesissoftware/recls-helpers.Ruby/releases/latest)
[![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/recls-helpers.Ruby)](https://github.com/synesissoftware/recls-helpers.Ruby/commits/master)
[![Ruby](https://github.com/synesissoftware/recls-helpers.Ruby/actions/workflows/ruby.yml/badge.svg)](https://github.com/synesissoftware/recls-helpers.Ruby/actions/workflows/ruby.yml)

Expand All @@ -20,6 +19,12 @@ Helper types and functions for working with **recls.Ruby**
- [Where to get help](#where-to-get-help)
- [Contribution guidelines](#contribution-guidelines)
- [Dependencies](#dependencies)
- [Efferent (fan-out)](#efferent-fan-out)
- [Runtime Dependencies (aka "Normal Dependencies")](#runtime-dependencies-aka-normal-dependencies)
- [Development Dependencies](#development-dependencies)
- [Afferent (fan-in)](#afferent-fan-in)
- [Runtime dependents](#runtime-dependents)
- [Development dependents](#development-dependents)
- [Related projects](#related-projects)
- [License](#license)

Expand Down Expand Up @@ -59,7 +64,7 @@ require 'recls/helpers'

## Examples

Examples are provided in the `examples` directory, along with a markdown description for each. A detailed list TOC of them is provided in [EXAMPLES.md](./EXAMPLES.md).
Examples are provided in the ```examples``` directory, along with a markdown description for each. A detailed list TOC of them is provided in [EXAMPLES.md](./EXAMPLES.md).


## Project Information
Expand All @@ -77,24 +82,47 @@ Defect reports, feature requests, and pull requests are welcome on https://githu

### Dependencies

This library has **efferent** (fan-out) dependencies on:

* [**recls.Ruby**](https://github.com/synesissoftware/recls.Ruby) (`recls-ruby`);
#### Efferent (fan-out)

and, for development/tests:
Libraries upon which **recls-helpers.Ruby** depends:

* [**xqsr3**](https://github.com/synesissoftware/xqsr3/).

It has no known **afferent** (fan-in) dependencies yet.
##### Runtime Dependencies (aka "Normal Dependencies")

* [**recls.Ruby**](https://github.com/synesissoftware/recls.Ruby);


##### Development Dependencies

* [**rake**](https://rubygems.org/gems/rake);
* [**test-unit**](https://rubygems.org/gems/test-unit);
* [**xqsr3**](https://github.com/synesissoftware/xqsr3);


#### Afferent (fan-in)

Projects that depend on **recls-helpers.Ruby**:


##### Runtime dependents

* \<none>;


##### Development dependents

* \<none>;


### Related projects

* [**recls.Ruby**](https://github.com/synesissoftware/recls.Ruby);
* [**recls**](https://github.com/synesissoftware/recls) (**C** / **C++**);
* [**recls.Go**](https://github.com/synesissoftware/recls.Go);
* [**recls.NET**](https://github.com/synesissoftware/recls.NET);
* [**recls.Rust**](https://github.com/synesissoftware/recls.Rust);
* [**recls**](https://github.com/synesissoftware/recls/);
* [**recls.Go**](https://github.com/synesissoftware/recls.Go/);
* [**recls.NET**](https://github.com/synesissoftware/recls.NET/);
* [**recls.Python**](https://github.com/synesissoftware/recls.Python/);
* [**recls.Ruby**](https://github.com/synesissoftware/recls.Ruby/);
* [**recls.Rust**](https://github.com/synesissoftware/recls.Rust/);


### License
Expand Down
18 changes: 11 additions & 7 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
# recls-helpers.Ruby - TODO <!-- omit in toc -->


## Table of Contents <!-- omit in toc -->

- [Functional improvements](#functional-improvements)
- [Packaging improvements](#packaging-improvements)


## Functional improvements

* [ ] Ignore / exclude filtering (`strip_excludes` / `reject_ignored`, String + Regexp);
Expand All @@ -16,10 +10,20 @@
* [ ] Stock Synesis ignore / pattern presets (optional);


## Performance improvements

* \<none>


## Packaging improvements

* [ ] Examples for first shipped helpers;
* [ ] Publish gem and GitHub release for **0.0.0**;
* [ ] Publish gem and GitHub release for **0.0.1**;
* [x] ~~~updated **run_all_unit_tests.sh** (from **misc-dev-scripts**) to skip `tput` when `$TERM` is unset or stdout is not a TTY~~~;
* [x] ~~~**Gemfile** `lockfile false`; stop tracking **Gemfile.lock**; CI `bundler-cache: false`~~~;
* [x] ~~~gemspec polish: README tagline as `spec.summary`, drop `< 4` upper bound, package docs, exclude **Gemfile.lock** / **.ruby-version**~~~;
* [x] ~~~README canonical structure (tagline before badges; **Dependencies**; CI badge → **ruby.yml**)~~~;
* [x] ~~~after the packaging/boilerplate/CI baseline: bump **VERSION** and align **CHANGES**/**NEWS**~~~;


<!-- ########################### end of file ########################### -->
4 changes: 2 additions & 2 deletions lib/recls/helpers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Top-level include for recls-helpers.Ruby library
#
# Created: 14th August 2026
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/recls-helpers.Ruby
# Home: https://github.com/synesissoftware/recls-helpers.Ruby
#
# Author: Matthew Wilson
#
Expand Down
6 changes: 3 additions & 3 deletions lib/recls/helpers/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Version for recls-helpers.Ruby library
#
# Created: 14th August 2026
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/recls-helpers.Ruby
# Home: https://github.com/synesissoftware/recls-helpers.Ruby
#
# Author: Matthew Wilson
#
Expand Down Expand Up @@ -51,7 +51,7 @@ module Recls
module Helpers

# Current version of the recls-helpers.Ruby library
VERSION = '0.0.0'
VERSION = '0.0.1'

private
# @!visibility private
Expand Down
38 changes: 28 additions & 10 deletions recls-helpers-ruby.gemspec
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# ######################################################################### #
# ######################################################################## #
# File: recls-helpers-ruby.gemspec
#
# Purpose: Gemspec for recls-helpers.Ruby library
#
# Created: 14th August 2026
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# ######################################################################### #
# ######################################################################## #


$:.unshift File.join(File.dirname(__FILE__), 'lib')
Expand All @@ -17,8 +17,8 @@ require 'recls/helpers/version'
Gem::Specification.new do |spec|

spec.name = 'recls-helpers-ruby'
spec.summary = 'Helper types and functions for working with recls.Ruby'
spec.version = Recls::Helpers::VERSION
spec.summary = 'recls-helpers.Ruby'
spec.description = <<END_DESC
Helper types and functions for recls.Ruby — common search-result filtering,
directory walks, path presentation, and related filesystem utility patterns.
Expand All @@ -33,7 +33,11 @@ END_DESC
spec.homepage = 'https://github.com/synesissoftware/recls-helpers.Ruby'
spec.license = 'BSD-3-Clause'

spec.required_ruby_version = [ '>= 2.0', '< 4' ]
spec.required_ruby_version = [ '>= 2.0' ]

spec.add_runtime_dependency "recls-ruby", [ '~> 2.13' ]

spec.add_development_dependency "xqsr3", [ '>= 0.39.5', '< 1.0' ]

spec.metadata = {
'bug_tracker_uri' => 'https://github.com/synesissoftware/recls-helpers.Ruby/issues',
Expand All @@ -42,11 +46,25 @@ END_DESC
'source_code_uri' => 'https://github.com/synesissoftware/recls-helpers.Ruby',
}

spec.add_runtime_dependency "recls-ruby", [ '~> 2.13' ]

spec.add_development_dependency "xqsr3", [ '>= 0.39.5', '< 1.0' ]

spec.files = Dir[ 'Rakefile', '{bin,examples,lib,man,spec,test}/**/*', 'README*', 'LICENSE*' ] & `git ls-files -z`.split("\0")
spec.files = Dir[
'Rakefile',
'{bin,examples,lib,man,spec,test}/**/*',
'AUTHORS*',
'CHANGES*',
'CONTRIBUTING*',
'EXAMPLES*',
'FAQ*',
'INSTALL*',
'LICENSE*',
'NEWS*',
'README*',
'SECURITY*',
'TODO*',
] & `git ls-files -z`.split("\0")
spec.files -= [
'.ruby-version',
'Gemfile.lock',
]
end


Expand Down
Loading