Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
21 changes: 16 additions & 5 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

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

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

- 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 @@ -87,7 +94,7 @@ jobs:
- name: Gem build and install smoke
shell: bash
run: |
gem build libCLImate.gemspec
gem build libclimate-ruby.gemspec
gem install --local libclimate-ruby-*.gem
ruby -e "require 'libclimate/version'; abort('VERSION missing') unless defined?(LibCLImate::VERSION); puts LibCLImate::VERSION"

Expand All @@ -102,13 +109,17 @@ jobs:
uses: actions/checkout@v4

- 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
12 changes: 12 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
# libCLImate.Ruby - Changes <!-- omit in toc -->


## 0.17.3 - 19th August 2026

* library source **Home:** URLs now use `https`;
* renamed **libCLImate.gemspec** to **libclimate-ruby.gemspec** so the filename stem matches `spec.name`;
* **libclimate-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**; `gem build libclimate-ruby.gemspec`;
* 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**: dropped Downloads / GitHub-release badges; nested **Dependencies** (Efferent / Afferent); listed **oss-src-tools** as a runtime dependent; dropped the broken **xqsr3** related-project URL;
* **EXAMPLES.md** example links are repo-relative (`./examples/…`);


## 0.17.2 - 15th August 2026

* added `# frozen_string_literal: true` to all **lib/** sources;
Expand Down
8 changes: 4 additions & 4 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# libCLImate.Ruby Examples <!-- omit in toc -->
# libCLImate.Ruby - Examples <!-- omit in toc -->

|Name|Source & Description|Summary|
|---|---|---|
|**show_usage_and_version**|[examples/show_usage_and_version.rb](/examples/show_usage_and_version.rb)<br/>[examples/show_usage_and_version.md](/examples/show_usage_and_version.md)|Simple example supporting ```--help``` and ```--version```|
|**flag_and_option_specifications**|[examples/flag_and_option_specifications.rb](/examples/flag_and_option_specifications.rb)<br/>[examples/flag_and_option_specifications.md](/examples/flag_and_option_specifications.md)|Example illustrating various kinds of *flag* and *option* specifications|
|**flag_and_option_specifications**|[examples/flag_and_option_specifications.from_DATA.rb](/examples/flag_and_option_specifications.from_DATA.rb)<br/>[examples/flag_and_option_specifications.from_DATA.md](/examples/flag_and_option_specifications.from_DATA.md)|Example illustrating various kinds of *flag* and *option* specifications loaded from the ``__END__``/``DATA`` section of the program file as **YAML**|
|**show_usage_and_version**|[examples/show_usage_and_version.rb](./examples/show_usage_and_version.rb)<br/>[examples/show_usage_and_version.md](./examples/show_usage_and_version.md)|Simple example supporting ```--help``` and ```--version```|
|**flag_and_option_specifications**|[examples/flag_and_option_specifications.rb](./examples/flag_and_option_specifications.rb)<br/>[examples/flag_and_option_specifications.md](./examples/flag_and_option_specifications.md)|Example illustrating various kinds of *flag* and *option* specifications|
|**flag_and_option_specifications.from_DATA**|[examples/flag_and_option_specifications.from_DATA.rb](./examples/flag_and_option_specifications.from_DATA.rb)<br/>[examples/flag_and_option_specifications.from_DATA.md](./examples/flag_and_option_specifications.from_DATA.md)|Example illustrating various kinds of *flag* and *option* specifications loaded from the ``__END__``/``DATA`` section of the program file as **YAML**|


<!-- ########################### end of file ########################### -->
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
22 changes: 0 additions & 22 deletions Gemfile.lock

This file was deleted.

3 changes: 2 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

| Date | News Item |
| ------------------ | ----------------------------------------------------------------------------------------------- |
| 19th August 2026 | [**libCLImate.Ruby** 0.17.3](https://github.com/synesissoftware/libCLImate.Ruby/releases/tag/0.17.3) |
| 15th August 2026 | [**libCLImate.Ruby** 0.17.2](https://github.com/synesissoftware/libCLImate.Ruby/releases/tag/0.17.2) |
| 30th July 2026 | [**libCLImate.Ruby** 0.17.1](https://github.com/synesissoftware/libCLImate.Ruby/releases/tag/0.17.1) |
| 30th July 2026 | **libCLImate.Ruby** 0.17.0.2 released |
| 6th March 2025 | **libCLImate.Ruby** 0.17.0.1 released |
| 5th March 2025 | **libCLImate.Ruby** 0.17.0.1 released |
| 10th August 2024 | **libCLImate.Ruby** 0.17.0 released |
| 1st December 2023 | **libCLImate.Ruby** 0.16.0.1 released |
| 1st December 2023 | **libCLImate.Ruby** 0.16.0 released |
Expand Down
58 changes: 43 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ libCLImate, for 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/libclimate-ruby.svg)](https://badge.fury.io/rb/libclimate-ruby)
[![Gem Downloads](https://img.shields.io/gem/dt/libclimate-ruby.svg)](https://rubygems.org/gems/libclimate-ruby)
[![GitHub release](https://img.shields.io/github/v/release/synesissoftware/libCLImate.Ruby.svg)](https://github.com/synesissoftware/libCLImate.Ruby/releases/latest)
[![Last Commit](https://img.shields.io/github/last-commit/synesissoftware/libCLImate.Ruby)](https://github.com/synesissoftware/libCLImate.Ruby/commits/master)
[![Ruby](https://github.com/synesissoftware/libCLImate.Ruby/actions/workflows/ruby.yml/badge.svg)](https://github.com/synesissoftware/libCLImate.Ruby/actions/workflows/ruby.yml)

Expand All @@ -21,6 +19,12 @@ libCLImate, for 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 @@ -115,25 +119,49 @@ Defect reports, feature requests, and pull requests are welcome on https://githu

### Dependencies

This library has efferent dependencies on:

* the [**CLASP.Ruby**](https://github.com/synesissoftware/CLASP.Ruby) library; and
* the [**xqsr3**](https://github.com/synesissoftware/xqsr3) library.
#### Efferent (fan-out)

It has no known afferent dependencies.
Libraries upon which **libCLImate.Ruby** depends:


##### Runtime Dependencies (aka "Normal Dependencies")

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


##### Development Dependencies

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


#### Afferent (fan-in)

Projects that depend on **libCLImate.Ruby**:


##### Runtime dependents

* [**oss-src-tools**](https://github.com/mwsis/oss-src-tools);


##### Development dependents

* \<none>;


### Related projects

* [**CLASP**](https://github.com/synesissoftware/CLASP/)
* [**CLASP.Go**](https://github.com/synesissoftware/CLASP.Go/)
* [**CLASP.js**](https://github.com/synesissoftware/CLASP.js/)
* [**CLASP.NET**](https://github.com/synesissoftware/CLASP.NET/)
* [**CLASP.Python**](https://github.com/synesissoftware/CLASP.Python/)
* [**CLASP.Ruby**](https://github.com/synesissoftware/CLASP.Ruby/)
* [**libCLImate** (C/C++)](https://github.com/synesissoftware/libCLImate)
* [**libCLImate.Go** (Go)](https://github.com/synesissoftware/libCLImate.Go)
* [**xqsr3**](https://github.com/synesissoftware.com/libCLImate.Ruby-xml/)
* [**CLASP**](https://github.com/synesissoftware/CLASP/);
* [**CLASP.Go**](https://github.com/synesissoftware/CLASP.Go/);
* [**CLASP.js**](https://github.com/synesissoftware/CLASP.js/);
* [**CLASP.NET**](https://github.com/synesissoftware/CLASP.NET/);
* [**CLASP.Python**](https://github.com/synesissoftware/CLASP.Python/);
* [**CLASP.Ruby**](https://github.com/synesissoftware/CLASP.Ruby/);
* [**libCLImate** (C/C++)](https://github.com/synesissoftware/libCLImate);
* [**libCLImate.Go**](https://github.com/synesissoftware/libCLImate.Go);


### License
Expand Down
15 changes: 6 additions & 9 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
# libCLImate.Ruby - TODO <!-- omit in toc -->


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

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


## Functional improvements

* [ ] Take `make_abort_message_()` to non-`public` again;
Expand All @@ -20,8 +13,12 @@

## Packaging improvements

* [ ] GitHub Actions;
* [ ] Rename gemspec so the filename stem matches `spec.name` (`libCLImate.gemspec` → **libclimate-ruby.gemspec**);
* [x] ~~~GitHub Actions~~~;
* [x] ~~~rename gemspec so the filename stem matches `spec.name` (`libCLImate.gemspec` → **libclimate-ruby.gemspec**)~~~;
* [x] ~~~obtain a **run_all_unit_tests.sh** (from **misc-dev-scripts**) that skips `tput` when `$TERM` is unset or stdout is not a TTY (CI: `tput: No value for $TERM and no -T specified`)~~~;
* [x] ~~~**libclimate-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**~~~;
* [x] ~~~**Gemfile** sets `lockfile false` when Bundler supports it; stop tracking **Gemfile.lock**; CI uses `bundler-cache: false` because Bundler 4 then writes no lockfile and **ruby/setup-ruby** cache cats **Gemfile.lock**~~~;
* [x] ~~~after the packaging/boilerplate/CI baseline: bump **VERSION** and align **CHANGES**/**NEWS**~~~;


<!-- ########################### end of file ########################### -->
4 changes: 2 additions & 2 deletions lib/libclimate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Top-level include for libclimate.Ruby library
#
# Created: 13th July 2015
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/libCLImate.Ruby
# Home: https://github.com/synesissoftware/libCLImate.Ruby
#
# Copyright (c) 2015-2016, Matthew Wilson and Synesis Software
# All rights reserved.
Expand Down
4 changes: 2 additions & 2 deletions lib/libclimate/climate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Definition of the ::LibCLImate::Climate class
#
# Created: 13th July 2015
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/libCLImate.Ruby
# Home: https://github.com/synesissoftware/libCLImate.Ruby
#
# Author: Matthew Wilson
#
Expand Down
4 changes: 2 additions & 2 deletions lib/libclimate/libclimate.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Main file for libclimate.Ruby library
#
# Created: 13th July 2015
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/libCLImate.Ruby
# Home: https://github.com/synesissoftware/libCLImate.Ruby
#
# Copyright (c) 2015-2024, Matthew Wilson and Synesis Software
# All rights reserved.
Expand Down
6 changes: 3 additions & 3 deletions lib/libclimate/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Purpose: Version for libclimate.Ruby library
#
# Created: 13th July 2015
# Updated: 15th August 2026
# Updated: 19th August 2026
#
# Home: http://github.com/synesissoftware/libCLImate.Ruby
# Home: https://github.com/synesissoftware/libCLImate.Ruby
#
# Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems
# Copyright (c) 2015-2019, Matthew Wilson and Synesis Software
Expand Down Expand Up @@ -45,7 +45,7 @@
module LibCLImate

# Current version of the libCLImate.Ruby library
VERSION = '0.17.2'
VERSION = '0.17.3'

private
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i } # :nodoc:
Expand Down
Loading
Loading