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 +4 -4
- data/.github/workflows/spec.yml +67 -4
- data/CHANGELOG.md +13 -0
- data/Gemfile.lock +18 -10
- data/README.legacy.md +533 -0
- data/README.md +24 -444
- data/docs/adapters.md +25 -1
- data/docs/configuration.md +12 -1
- data/docs/index.md +4 -4
- data/docs/usage.md +68 -2
- data/lib/rokaki/filter_model/basic_filter.rb +8 -0
- data/lib/rokaki/filter_model/nested_filter.rb +3 -2
- data/lib/rokaki/filter_model/nested_like_filters.rb +27 -18
- data/lib/rokaki/filter_model.rb +44 -0
- data/lib/rokaki/filterable.rb +3 -1
- data/lib/rokaki/version.rb +1 -1
- data/rokaki.gemspec +5 -2
- metadata +39 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e754206bd6927db93fa0977aed409762b9bc9aa2a663c5b0d94977c2d18ba284
|
|
4
|
+
data.tar.gz: 9df4b1d7d067be43ac1df89f1b5962b2950b91e6bc5e915817cde2ef625f55f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bf35a2999e21604de1d4daa615042036b0f16b651e251f569b4a13706d9e0e0c17022d0856303dfa71183b2c77af03631e3cae83e3b4cb790c855d47980ccc1c
|
|
7
|
+
data.tar.gz: ad6b7c1e51bfee821d54923ccf6447ed91b0633bc084d0cd0adbd6a901d36200025334b3415c53814f62c0cf644bbb8e5a6e1a8418c1c8bac9cdf5add470e8f8
|
data/.github/workflows/spec.yml
CHANGED
|
@@ -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
|
-
#
|
|
52
|
-
|
|
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.
|
|
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.
|
|
34
|
-
bigdecimal (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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|