rokaki 0.13.0 → 0.15.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: 2659a359499939511a45107cc281e2aecce654ecf587f668e9de52d6fd8e3424
4
- data.tar.gz: 4a5dfa2b6eef83fb731bb558575bdd5072b2c5ff2f4dc3670b11cae9487447ff
3
+ metadata.gz: e754206bd6927db93fa0977aed409762b9bc9aa2a663c5b0d94977c2d18ba284
4
+ data.tar.gz: 9df4b1d7d067be43ac1df89f1b5962b2950b91e6bc5e915817cde2ef625f55f0
5
5
  SHA512:
6
- metadata.gz: a120036a6621d1ca69631d95fccd5fa3fac82cbb4a630bffcc5a5ea87ec026ef416fda109964eec929d1c8874af7a4dc08e06bab2cd1789779332ae9796b645e
7
- data.tar.gz: 656df3353ae9593cdeaa75ce0b0111728fbbb420d8c4885928fcc334369ceaa07ea09f78a49b93b3ab45ea8d5767b81f9280cd9cf55260690a0a34270947c7ab
6
+ metadata.gz: bf35a2999e21604de1d4daa615042036b0f16b651e251f569b4a13706d9e0e0c17022d0856303dfa71183b2c77af03631e3cae83e3b4cb790c855d47980ccc1c
7
+ data.tar.gz: ad6b7c1e51bfee821d54923ccf6447ed91b0633bc084d0cd0adbd6a901d36200025334b3415c53814f62c0cf644bbb8e5a6e1a8418c1c8bac9cdf5add470e8f8
@@ -35,21 +35,67 @@ jobs:
35
35
  - 1433:1433
36
36
  # No built-in healthcheck; we'll wait in a step using nc
37
37
 
38
+ oracle:
39
+ image: gvenzl/oracle-free:23-slim
40
+ env:
41
+ ORACLE_PASSWORD: "oracle"
42
+ APP_USER: ROKAKI
43
+ APP_USER_PASSWORD: rokaki
44
+ ports:
45
+ - 1521:1521
46
+
38
47
  steps:
39
48
  - uses: actions/checkout@v2
40
49
 
41
50
  - name: Install system dependencies
42
51
  run: |
43
52
  sudo apt-get update
44
- sudo apt-get install -y build-essential libpq-dev default-libmysqlclient-dev freetds-dev netcat-openbsd
53
+ sudo apt-get install -y build-essential libpq-dev default-libmysqlclient-dev freetds-dev netcat-openbsd unzip curl libaio1t64 libaio-dev libsqlite3-dev
54
+ sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
45
55
 
46
56
  - name: Set up Ruby
47
57
  uses: ruby/setup-ruby@v1
48
58
  with:
49
- # Not needed with a .ruby-version file
50
59
  ruby-version: 3.3.0
51
- # runs 'bundle install' and caches installed gems automatically
52
- bundler-cache: true
60
+ bundler-cache: false # we'll run bundle after Instant Client is present
61
+
62
+ - name: Install Oracle Instant Client (ZIP Basic Lite + SDK)
63
+ run: |
64
+ set -e
65
+ sudo mkdir -p /opt/oracle && cd /opt/oracle
66
+ # Download current 23.5 ZIPs directly from Oracle
67
+ curl -fL -o ic-basic.zip https://download.oracle.com/otn_software/linux/instantclient/2326000/instantclient-basic-linux.x64-23.26.0.0.0.zip
68
+ curl -fL -o ic-sdk.zip https://download.oracle.com/otn_software/linux/instantclient/2326000/instantclient-sdk-linux.x64-23.26.0.0.0.zip
69
+ sudo unzip -q -o ic-basic.zip
70
+ sudo unzip -q -o ic-sdk.zip
71
+ ls /opt/oracle
72
+ cd /opt/oracle/instantclient_23_26 && sudo ln -s ../instantclient_23_26 lib
73
+ cd /opt/oracle/instantclient_23_26 && sudo ln -s sdk/include include
74
+ IC_DIR=/opt/oracle/instantclient_23_26
75
+ echo "OCI_DIR=$IC_DIR" | sudo tee -a $GITHUB_ENV
76
+ echo "OCI_LIB_DIR=$IC_DIR" | sudo tee -a $GITHUB_ENV
77
+ echo "OCI_INC_DIR=$IC_DIR/sdk/include" | sudo tee -a $GITHUB_ENV
78
+ echo "LD_LIBRARY_PATH=$IC_DIR:$LD_LIBRARY_PATH" | sudo tee -a $GITHUB_ENV
79
+
80
+ - name: Bundle install (after Instant Client)
81
+ id: bundleInstallAfterInstantClient
82
+ env:
83
+ ORACLE_HOME: /opt/oracle/instantclient_23_26
84
+ OCI_DIR: ${{ env.OCI_DIR }}
85
+ OCI_LIB_DIR: ${{ env.OCI_LIB_DIR }}
86
+ OCI_INC_DIR: ${{ env.OCI_INC_DIR }}
87
+ LD_LIBRARY_PATH: ${{ env.LD_LIBRARY_PATH }}
88
+ run: |
89
+ ls /opt/oracle/instantclient_23_26
90
+ bundle config set build.ruby-oci8 "--with-instant-client-dir=/opt/oracle/instantclient_23_26 --with-instant-client-include=/opt/oracle/instantclient_23_26/sdk/include --with-instant-client-lib=/opt/oracle/instantclient_23_26"
91
+ bundle install --jobs 4 --retry 3
92
+
93
+ - name: Archive Build Artifact
94
+ if: failure() && steps.bundleInstallAfterInstantClient.outcome == 'failure'
95
+ uses: actions/upload-artifact@v4
96
+ with:
97
+ name: build-mkmf-log
98
+ path: /opt/hostedtoolcache/Ruby/3.3.0/x64/lib/ruby/gems/3.3.0/extensions/x86_64-linux/3.3.0/ruby-oci8-2.2.14/mkmf.log
53
99
 
54
100
  - name: Wait for databases to be ready
55
101
  shell: bash
@@ -63,7 +109,24 @@ jobs:
63
109
  for i in {1..120}; do
64
110
  nc -z 127.0.0.1 1433 && echo "SQL Server up" && break || sleep 1
65
111
  done
112
+ for i in {1..180}; do
113
+ nc -z 127.0.0.1 1521 && echo "Oracle up" && break || sleep 1
114
+ done
66
115
 
67
116
  - name: Run tests
117
+ env:
118
+ POSTGRES_HOST: 127.0.0.1
119
+ POSTGRES_USERNAME: postgres
120
+ POSTGRES_PASSWORD: postgres
121
+ SQLSERVER_HOST: 127.0.0.1
122
+ SQLSERVER_PORT: 1433
123
+ SQLSERVER_USERNAME: sa
124
+ SQLSERVER_PASSWORD: 5QL5£rv£r
125
+ ORACLE_HOST: 127.0.0.1
126
+ ORACLE_PORT: 1521
127
+ ORACLE_DATABASE: /freepdb1
128
+ ORACLE_USERNAME: ROKAKI
129
+ ORACLE_PASSWORD: rokaki
130
+ LD_LIBRARY_PATH: ${{ env.LD_LIBRARY_PATH }}
68
131
  run: |
69
132
  ./spec/ordered_run.sh
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### 0.15.0 — 2025-10-27
2
+ - Add first-class SQLite support: adapter-aware LIKE behavior with OR expansion for arrays.
3
+ - Added SQLite badge in README.
4
+ - Updated documentation: adapters, configuration, index and usage; noted SQLite default in-memory config and env override `SQLITE_DATABASE`.
5
+ - Internal: introduced `generic_like` helper for generic adapters (used by SQLite); no breaking changes for other adapters.
6
+
1
7
  ### 0.13.0 — 2025-10-25
2
8
  - Add block-form DSL parity across both FilterModel and Filterable (`filter_map do ... end` with `like`, `ilike`, `nested`, and `filters`).
3
9
  - Support circumfix affix synonyms: `:parafix`, `:confix`, `:ambifix` (treated as `:circumfix`).
@@ -15,3 +21,10 @@
15
21
 
16
22
  ### 0.10.0 and earlier
17
23
  - Core DSL: Filterable and FilterModel modes, LIKE matching with prefix/suffix/circumfix, nested filters, and adapter-aware SQL for Postgres/MySQL.
24
+
25
+ ### 0.14.1 — 2025-10-25
26
+ - Oracle enabled by default in tests and CI; added Oracle service and Instant Client install in GitHub Actions (Ubuntu 24.04: use libaio1t64, Instant Client ZIP install).
27
+ - Removed `ORACLE_ENABLED` flag from runner; Oracle suite runs in `./spec/ordered_run.sh` by default.
28
+ - ActiveRecord 8 support: relaxed dev dependency to `>= 7.1, < 9.0`.
29
+ - Added dynamic runtime listener tests (anonymous classes) across all adapters and documentation section.
30
+ - Simplified README with concise overview and links to GitHub Pages; moved legacy content to `README.legacy.md`.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rokaki (0.13.0)
4
+ rokaki (0.15.0)
5
5
  activesupport
6
6
 
7
7
  GEM
@@ -13,6 +13,10 @@ GEM
13
13
  activemodel (= 8.0.3)
14
14
  activesupport (= 8.0.3)
15
15
  timeout (>= 0.4.0)
16
+ activerecord-oracle_enhanced-adapter (8.0.0)
17
+ activerecord (~> 8.0.0)
18
+ ruby-oci8
19
+ ruby-plsql (>= 0.6.0)
16
20
  activerecord-sqlserver-adapter (8.0.9)
17
21
  activerecord (~> 8.0.0)
18
22
  tiny_tds
@@ -30,8 +34,8 @@ GEM
30
34
  tzinfo (~> 2.0, >= 2.0.5)
31
35
  uri (>= 0.13.1)
32
36
  base64 (0.3.0)
33
- benchmark (0.4.1)
34
- bigdecimal (3.2.3)
37
+ benchmark (0.5.0)
38
+ bigdecimal (3.3.1)
35
39
  byebug (12.0.0)
36
40
  coderay (1.1.3)
37
41
  concurrent-ruby (1.3.5)
@@ -42,7 +46,7 @@ GEM
42
46
  database_cleaner-core (2.0.1)
43
47
  diff-lcs (1.6.2)
44
48
  drb (2.2.3)
45
- factory_bot (6.5.5)
49
+ factory_bot (6.5.6)
46
50
  activesupport (>= 6.1.0)
47
51
  ffi (1.17.2-aarch64-linux-gnu)
48
52
  ffi (1.17.2-aarch64-linux-musl)
@@ -81,7 +85,7 @@ GEM
81
85
  logger (1.7.0)
82
86
  lumberjack (1.4.2)
83
87
  method_source (1.1.0)
84
- minitest (5.25.5)
88
+ minitest (5.26.0)
85
89
  mysql2 (0.5.7)
86
90
  bigdecimal
87
91
  nenv (0.3.0)
@@ -108,19 +112,21 @@ GEM
108
112
  ffi (~> 1.0)
109
113
  reline (0.6.2)
110
114
  io-console (~> 0.5)
111
- rspec (3.13.1)
115
+ rspec (3.13.2)
112
116
  rspec-core (~> 3.13.0)
113
117
  rspec-expectations (~> 3.13.0)
114
118
  rspec-mocks (~> 3.13.0)
115
- rspec-core (3.13.5)
119
+ rspec-core (3.13.6)
116
120
  rspec-support (~> 3.13.0)
117
121
  rspec-expectations (3.13.5)
118
122
  diff-lcs (>= 1.2.0, < 2.0)
119
123
  rspec-support (~> 3.13.0)
120
- rspec-mocks (3.13.5)
124
+ rspec-mocks (3.13.6)
121
125
  diff-lcs (>= 1.2.0, < 2.0)
122
126
  rspec-support (~> 3.13.0)
123
127
  rspec-support (3.13.6)
128
+ ruby-oci8 (2.2.14)
129
+ ruby-plsql (0.8.0)
124
130
  securerandom (0.4.1)
125
131
  shellany (0.0.1)
126
132
  sqlite3 (2.7.4-aarch64-linux-gnu)
@@ -147,7 +153,7 @@ GEM
147
153
  bigdecimal (~> 3)
148
154
  tzinfo (2.0.6)
149
155
  concurrent-ruby (~> 1.0)
150
- uri (1.0.3)
156
+ uri (1.0.4)
151
157
 
152
158
  PLATFORMS
153
159
  aarch64-linux
@@ -164,7 +170,8 @@ PLATFORMS
164
170
  x86_64-linux-musl
165
171
 
166
172
  DEPENDENCIES
167
- activerecord
173
+ activerecord (>= 7.1, < 9.0)
174
+ activerecord-oracle_enhanced-adapter (~> 8.0.0)
168
175
  activerecord-sqlserver-adapter
169
176
  bundler (~> 2.0)
170
177
  database_cleaner-active_record
@@ -178,6 +185,7 @@ DEPENDENCIES
178
185
  rake (~> 13.0)
179
186
  rokaki!
180
187
  rspec (~> 3.0)
188
+ ruby-oci8
181
189
  sqlite3
182
190
  tiny_tds
183
191