Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 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
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
64 changes: 64 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
root = true

# Language indent/EOL/charset overlap with .vscode/settings.json.
# Rulers, renderWhitespace, detectIndentation, mergeEditor, and
# cmake.configureOnOpen cannot be expressed here — they stay in settings.json.

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = tab
insert_final_newline = true
trim_trailing_whitespace = true

# [bat]
[*.{bat,cmd}]
end_of_line = crlf
indent_size = 4
indent_style = space

# [c]
[*.{c,h}]
indent_size = 4
indent_style = space

# [cmake]
[{CMakeLists.txt,*.cmake}]
indent_size = 4
indent_style = tab

# [cpp]
[*.{cpp,cxx,hpp,hxx}]
indent_size = 4
indent_style = space

# [json]
[*.json]
indent_size = 2
indent_style = space

# [markdown]
[*.md]
indent_size = 2
indent_style = space
trim_trailing_whitespace = false

# [ruby]
[*.{gemspec,rb}]
indent_size = 2
indent_style = space

[{Gemfile,Rakefile}]
indent_size = 2
indent_style = space

# [shellscript]
[*.{bash,sh,zsh}]
indent_size = 2
indent_style = space

# [yaml]
[*.{yaml,yml}]
indent_size = 2
indent_style = space
75 changes: 75 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# .gitattributes — Ruby (GitHub-hosted)
#
# Sources: GitHub Docs (line endings), git-scm gitattributes (diff=ruby),
# gitattributes/gitattributes Common.gitattributes + Web (*.rb),
# github-linguist overrides.

# Default: detect text, normalize to LF in the repository
* text=auto

# --- Source ---
*.gemspec text eol=lf diff=ruby
*.rake text eol=lf diff=ruby
*.rb text eol=lf diff=ruby
*.ru text eol=lf diff=ruby
Gemfile text eol=lf diff=ruby
Rakefile text eol=lf diff=ruby
Capfile text eol=lf diff=ruby
Guardfile text eol=lf diff=ruby
*.erb text
*.haml text
*.slim text

# --- Lock / config ---
Gemfile.lock text
*.gemspec.lock text -diff
*.yml text
*.yaml text
*.toml text
*.json text

# --- Scripts ---
*.bash text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.sh text eol=lf
*.zsh text eol=lf

# --- Docs / meta ---
*.adoc text
*.markdown text diff=markdown
*.md text diff=markdown
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
LICENSE text
NEWS text
README text
TODO text
.gitattributes text
.gitignore text

# --- Binary ---
*.gem binary
*.so binary

# --- Archives / images (common) ---
*.gif binary
*.gz binary
*.ico binary
*.jpeg binary
*.jpg binary
*.png binary
*.tar binary
*.zip binary

# --- GitHub Linguist ---
**/vendor/bundle/** linguist-vendored
**/vendor/cache/** linguist-vendored
**/coverage/** linguist-generated
**/doc/** linguist-documentation
**/pkg/** linguist-generated
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- directory: /
package-ecosystem: bundler
schedule:
interval: weekly
- directory: /
package-ecosystem: github-actions
schedule:
interval: weekly
117 changes: 117 additions & 0 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby

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

name: Ruby

on:
push:
branches:
- master
- dev
- boilerplate
- idiomatic
- rc1
- rc2
- rc3
pull_request:

permissions:
contents: read

defaults:
run:
shell: bash

jobs:
test:

strategy:
fail-fast: false

matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest

ruby-version:
# - head
- '3.4'
- '3.3'
- '3.2'
- '3.1'
- '3.0'
- '2.7'
- '2.6'

include:
- os: ubuntu-latest
ruby-version: '2.5'
- os: ubuntu-latest
ruby-version: '2.4'
- os: ubuntu-latest
ruby-version: '2.0'
- os: windows-latest
ruby-version: mingw

runs-on: ${{ matrix.os }}

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

- name: Remove Gemfile.lock
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

- name: Show Ruby version
run: ruby -v

- name: Run tests
run: bundle exec rake test

- name: Gem build and install smoke
shell: bash
run: |
gem build recls-helpers-ruby.gemspec
gem install --local recls-helpers-ruby-*.gem
ruby -e "require 'recls/helpers/version'; abort('VERSION missing') unless defined?(Recls::Helpers::VERSION); puts Recls::Helpers::VERSION"

warnings:

name: Warnings

runs-on: ubuntu-latest

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

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

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

- name: Show Ruby version
run: ruby -v

- name: Run unit tests with warnings
run: ./run_all_unit_tests.sh --lib --warnings
50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# directories (by name)

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

/_yardoc/

/InstalledFiles/
/build/
/coverage/
/doc/
/lib/bundler/man/
/old-gems/
/pkg/
/rdoc/
/scratch/
/spec/reports/
/test/tmp/
/test/version_tmp/
/tmp/
/vendor/bundle/

# directories (by pattern)

# files (by name)

.DS_Store
.repl_history
.ruby-version
.rvmrc

/spec/examples.txt

# files (by pattern)

*~
*.*~
.dat*
*.b64
*.bridgesupport
*.gem
*.rbc
*.scc
*.suo
*.swp
*.tmp
*.zip
2 changes: 2 additions & 0 deletions .ruby-version-exclusions
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1.8.7-p375
1.9.3-p551
1 change: 1 addition & 0 deletions .sis/project_name.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
recls-helpers.Ruby
70 changes: 70 additions & 0 deletions .vimrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
" Synesis Ruby project .vimrc — aligned with .vscode/settings.json (2-space Ruby)

set nocompatible
filetype indent plugin on
syntax enable
set autoindent
set backspace=indent,eol,start
set hlsearch
set incsearch
set number

" files.insertFinalNewline
set eol
set fixeol

" editor.renderWhitespace: all
set list
set listchars=tab:->,trail:-,extends:>,precedes:<,nbsp:+

" editor.detectIndentation: false — global defaults (editor.tabSize: 2, insertSpaces: true)
set colorcolumn=76
set expandtab
set shiftwidth=2
set softtabstop=2
set tabstop=2

" colorcolumn draws a full-column tint in Vim (not a VS Code-style 1px line).
" Keep it subtle via the ColorColumn highlight group; reapply after colorscheme changes.
if has('termguicolors')
" set termguicolors
endif

function! s:ConfigureColorColumn() abort
highlight ColorColumn ctermbg=236 guibg=#2a2a2a cterm=NONE gui=NONE
endfunction

call s:ConfigureColorColumn()
autocmd ColorScheme * call s:ConfigureColorColumn()

" files.trimTrailingWhitespace
autocmd BufWritePre * %s/\s\+$//e

augroup sis_c_cxx
autocmd!

" [c] / [cpp]
autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76

" [rust]
autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76

" [cmake]
autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4

" [shellscript]
autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76

" [bat]
autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [json] / [markdown] / [yaml] / [ruby]
autocmd FileType json,markdown,yaml,ruby setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2

" [python]
autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76

" [toml]
autocmd FileType toml setlocal noexpandtab tabstop=2 shiftwidth=2 softtabstop=2
augroup END

Loading
Loading