alula-ruby 2.36.1 → 2.38.0

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: 154981cfc160269723494980c506e36e8d2d57b2c783d0e4a0acddaed9178f40
4
- data.tar.gz: 0fcb3761e56a08fdd4c10d3fe40862f64d2d0f4b6eb14ed02e103c9eb9244691
3
+ metadata.gz: d178966cc232fd80bb88738afe420d01bf3b0efeae55c5e28ae7512d28033f55
4
+ data.tar.gz: 81201b4fa8d01c79af8676a553ac5005cb3c672538018e220acefae68d93a393
5
5
  SHA512:
6
- metadata.gz: ac1159abe8d5d0c98af879b25738f02f3dd18e77cc00d3bff4310962d59d2d4cf56a7e586a00abcdcfb38494c233f9b2c267a4bb12a4bfdefb0dbdf1d0939cc0
7
- data.tar.gz: e86fd3d7b7e26c151851a599ba36d270140af8f61db44c985eb802ca62a3fce4292853aa1427646f53fd16bb3df242f37148516c014e61a12cfa901fbc2ab733
6
+ metadata.gz: 5f833fde8e763ee83126f999ff68d03a74627193d1a4c83b33a503f8718115a811207c26085bcfb7c9f1132c8e0fd71f2f4cfb340a743f0160e08fd487997e14
7
+ data.tar.gz: 3fbb5b4fcc43a35b31efeb1d16095217f04de7012bd770f83805012de3d2ef0e4dee3c233929e25e91bc5efb0149cb1fdd53ff3e8e5cb3359db4f3c0925bf6a7
data/.circleci/config.yml CHANGED
@@ -29,17 +29,54 @@ jobs:
29
29
  - run:
30
30
  name: Bring up the Core API
31
31
  command: make up
32
+ # `make up` reports only "container is unhealthy", so surface the container's
33
+ # own output. `|| true` throughout because steps run under `bash -eo pipefail`.
32
34
  - run:
33
- name: Install Ruby 3.4.4
35
+ name: Core API diagnostics on failure
36
+ when: on_fail
37
+ command: |
38
+ COMPOSE="docker compose --profile app -f alula-docker-compose.yml"
39
+ echo "--- container status ---"
40
+ $COMPOSE ps || true
41
+ CID=$($COMPOSE ps -q ipdapi || true)
42
+ if [ -n "$CID" ]; then
43
+ echo "--- ipdapi last healthcheck probe ---"
44
+ docker inspect --format '{{json .State.Health}}' "$CID" || true
45
+ fi
46
+ echo "--- ipdapi logs ---"
47
+ $COMPOSE logs --no-color --tail=200 ipdapi || true
48
+ - run:
49
+ name: Install Ruby 4.0.6
34
50
  command: |
35
51
  wget -O ruby-install-0.9.3.tar.gz https://github.com/postmodern/ruby-install/releases/download/v0.9.3/ruby-install-0.9.3.tar.gz
36
52
  tar -xzvf ruby-install-0.9.3.tar.gz
37
53
  cd ruby-install-0.9.3 && sudo make install
38
- sudo ruby-install --system ruby 3.4.4
54
+ sudo ruby-install --system ruby 4.0.6
55
+ # rbenv's shims precede /usr/local/bin, so without this the job runs rbenv's
56
+ # global Ruby instead of the one installed above. Keep $PATH single-quoted
57
+ # (shellcheck SC2016) so it expands when later steps source BASH_ENV.
58
+ - run:
59
+ name: Put the installed Ruby ahead of rbenv on PATH
60
+ command: echo 'export PATH=/usr/local/bin:$PATH' >> "$BASH_ENV"
61
+ - run:
62
+ name: Verify the expected Ruby is active
63
+ command: |
64
+ ruby -v
65
+ ruby -e 'exit(RUBY_VERSION == "4.0.6")' || {
66
+ echo "ERROR: expected Ruby 4.0.6, got $(ruby -v). which ruby: $(which ruby)"
67
+ exit 1
68
+ }
69
+ # Ruby 4.0 ships Bundler 4 by default, so assert rather than install. The system
70
+ # gem dir is root-owned, so gems go in the workspace instead.
39
71
  - run:
40
- name: Install bundler and gems
72
+ name: Install gems
41
73
  command: |
42
- gem install bundler
74
+ bundle -v
75
+ ruby -e 'require "bundler"; exit(Bundler::VERSION.start_with?("4."))' || {
76
+ echo "ERROR: expected Bundler 4.x, got $(bundle -v)"
77
+ exit 1
78
+ }
79
+ bundle config set --local path vendor/bundle
43
80
  bundle install
44
81
  - run:
45
82
  name: Execute test suite
@@ -14,10 +14,10 @@ jobs:
14
14
 
15
15
  steps:
16
16
  - uses: actions/checkout@v2
17
- - name: Set up Ruby 3.4
17
+ - name: Set up Ruby 4.0
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: '3.4'
20
+ ruby-version: '4.0.6'
21
21
 
22
22
  - name: Publish to GPR
23
23
  run: |
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /.bundle/
2
+ /vendor/
2
3
  /.yardoc
3
4
  /_yardoc/
4
5
  /coverage/
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.4
1
+ 4.0.6
data/Dockerfile CHANGED
@@ -1,6 +1,4 @@
1
- FROM ruby:3.3.6-alpine
2
-
3
- RUN gem install bundler
1
+ FROM ruby:4.0.6-alpine
4
2
 
5
3
  RUN apk add bash git build-base jq curl
6
4
 
data/Gemfile CHANGED
@@ -5,8 +5,6 @@ gemspec
5
5
 
6
6
  group :development do
7
7
  platforms :mri do
8
- gem "byebug"
9
8
  gem "pry"
10
- gem "pry-byebug"
11
9
  end
12
10
  end
data/VERSION.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  | Version | Date | Description |
4
4
  | ------- | ------------| --------------------------------------------------------------------------- |
5
+ | v2.38.0 | 2026-08-10 | Upgrade Ruby to 4.0.6; require Ruby >= 4.0; declare logger and base64; move ostruct to a dev dependency; drop byebug |
6
+ | v2.37.0 | 2026-08-06 | Upgrade Ruby to 3.4.10 and Bundler to 4.0.18; raise minimum Ruby to 3.4 |
5
7
  | v2.36.1 | 2026-06-16 | Eliminated the polynomial-ReDoS backtracking pattern flagged by CodeQL |
6
8
  | v2.36.0 | 2026-06-16 | Upgrade httparty gem to v0.24 |
7
9
  | v2.35.0 | 2026-05-21 | Add acl field to Receiver model (M2M-TCP receivers) |
@@ -101,7 +101,14 @@ services:
101
101
  interval: 5s
102
102
  retries: 10
103
103
  start_period: 30s
104
- test: apk add curl && curl -s http://localhost/public/v1/healthcheck/default || exit -1
104
+ # Use node to reach the healthcheck endpoint: curl and a package manager to
105
+ # install it are not guaranteed in this image, but node always is — the
106
+ # entrypoint runs `node app/main.js`.
107
+ test:
108
+ - CMD
109
+ - node
110
+ - -e
111
+ - "require('http').get('http://localhost/public/v1/healthcheck/default', r => process.exit(r.statusCode < 400 ? 0 : 1)).on('error', () => process.exit(1))"
105
112
  timeout: 10s
106
113
  image: 613707345027.dkr.ecr.us-east-1.amazonaws.com/api/ipdapi:staging
107
114
  networks:
data/alula.gemspec CHANGED
@@ -7,7 +7,7 @@ require "alula/version"
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = "alula-ruby"
9
9
  spec.version = Alula::VERSION
10
- spec.required_ruby_version = ">= 3.3.0"
10
+ spec.required_ruby_version = ">= 4.0.0"
11
11
  spec.summary = "Ruby bindings for the Alula API"
12
12
 
13
13
  spec.authors = ["Titus Johnson"]
@@ -25,7 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ["lib"]
26
26
 
27
27
  spec.add_dependency 'httparty', '~> 0.24'
28
- spec.add_dependency 'ostruct'
28
+ # logger and base64 are required by lib/ but are no longer default gems (base64
29
+ # since Ruby 3.4, logger since 4.0), so they must be declared or a consumer whose
30
+ # bundle lacks them gets a LoadError on `require 'alula'`.
31
+ spec.add_dependency 'base64'
32
+ spec.add_dependency 'logger'
29
33
  spec.add_dependency 'request_store', '~> 1.0'
30
34
 
31
35
  spec.add_development_dependency "activesupport"
@@ -35,6 +39,8 @@ Gem::Specification.new do |spec|
35
39
  spec.add_development_dependency "guard-rspec"
36
40
  #spec.add_development_dependency "nokogiri", "~> 1.16.7"
37
41
  spec.add_development_dependency "nokogiri", ">= 1.19", "< 1.20"
42
+ # OpenStruct is used only by specs and bin/genresource, never by lib/.
43
+ spec.add_development_dependency "ostruct"
38
44
  spec.add_development_dependency "rake", "~> 13.2"
39
45
  spec.add_development_dependency "rspec", "~> 3.13"
40
46
  spec.add_development_dependency "simplecov", "~> 0.22.0"
data/bin/docparse CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "./lib/parser"
4
- require "byebug"
5
4
  require "nokogiri"
6
5
  require "yaml"
7
6
  require "json"
data/bin/genresource CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "./lib/parser"
4
- require "byebug"
4
+ require "ostruct"
5
5
  require "yaml"
6
6
  require "json"
7
7
  require 'active_support/inflector'
data/bin/testauth CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "bundler/setup"
4
4
  require "alula"
5
- require 'byebug'
6
5
  require 'dotenv/load'
7
6
 
8
7
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'date'
4
+
3
5
  module Alula
4
6
  module Dcp
5
7
  module ResourceAttributes
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'date'
4
+
3
5
  module Alula
4
6
  module Dcp
5
7
  class ResourceState
@@ -1,3 +1,5 @@
1
+ require 'erb'
2
+
1
3
  module HTTParty
2
4
  module HashConversions
3
5
  # @param key<Object> The key for the param.
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  # A mixin pulled into ImportedResources with which to define resource methods
2
4
  module Alula
3
5
  module ResourceAttributes
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'time'
4
+
3
5
  require_relative '../helpers/jwt_helper'
4
6
 
5
7
  module Alula
data/lib/alula/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alula
4
- VERSION = '2.36.1'
4
+ VERSION = '2.38.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alula-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.36.1
4
+ version: 2.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Titus Johnson
@@ -24,7 +24,21 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0.24'
26
26
  - !ruby/object:Gem::Dependency
27
- name: ostruct
27
+ name: base64
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: logger
28
42
  requirement: !ruby/object:Gem::Requirement
29
43
  requirements:
30
44
  - - ">="
@@ -133,6 +147,20 @@ dependencies:
133
147
  - - "<"
134
148
  - !ruby/object:Gem::Version
135
149
  version: '1.20'
150
+ - !ruby/object:Gem::Dependency
151
+ name: ostruct
152
+ requirement: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ type: :development
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
136
164
  - !ruby/object:Gem::Dependency
137
165
  name: rake
138
166
  requirement: !ruby/object:Gem::Requirement
@@ -202,7 +230,6 @@ files:
202
230
  - ".gitignore"
203
231
  - ".rspec"
204
232
  - ".ruby-version"
205
- - ".travis.yml"
206
233
  - Dockerfile
207
234
  - Gemfile
208
235
  - Guardfile
@@ -413,14 +440,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
413
440
  requirements:
414
441
  - - ">="
415
442
  - !ruby/object:Gem::Version
416
- version: 3.3.0
443
+ version: 4.0.0
417
444
  required_rubygems_version: !ruby/object:Gem::Requirement
418
445
  requirements:
419
446
  - - ">="
420
447
  - !ruby/object:Gem::Version
421
448
  version: '0'
422
449
  requirements: []
423
- rubygems_version: 3.6.9
450
+ rubygems_version: 4.0.16
424
451
  specification_version: 4
425
452
  summary: Ruby bindings for the Alula API
426
453
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.2
7
- before_install: gem install bundler -v 2.0.1