shiny_json_logic 0.1.5 → 0.1.6
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/ci.yml +29 -0
- data/CONTRIBUTING.md +40 -0
- data/Gemfile.lock +3 -1
- data/README.md +10 -2
- data/SECURITY.md +14 -0
- data/lib/shiny_json_logic/version.rb +1 -1
- data/shiny_json_logic.gemspec +1 -0
- metadata +18 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b8a8110c84c6c3c200990803fee38794b6eca329633637a30f4a7f4c06eee95
|
|
4
|
+
data.tar.gz: 714e59c4620f1d3af97f026185d6a1e2131c7b2d3f6c6093a23334edf32b47b9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0147aaeda5d79d78786840aa872172c7369f14c5cb6281de4662cef2c9afbf9b299d13262a59244a451738e53c632cffa57dfd749b0256f239d970b9e4711da
|
|
7
|
+
data.tar.gz: 6e70bebb46e6fed627138f8fc84d91cc4d2db44fb88df32ceea8f65a6f09233907c7c1383950bf6c8baf42ab18ad21f7fc83842f8222f476d77a1853a7bdfa81
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [master]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
ruby: ["2.7", "3.0", "3.2", "3.3", "4.0"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
|
|
21
|
+
- name: Set up Ruby
|
|
22
|
+
uses: ruby/setup-ruby@v1
|
|
23
|
+
with:
|
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
|
25
|
+
bundler: default
|
|
26
|
+
bundler-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Run tests
|
|
29
|
+
run: bundle exec rspec
|
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Contributing to ShinyJsonLogic
|
|
2
|
+
|
|
3
|
+
Thanks for contributing to Shiny!!
|
|
4
|
+
|
|
5
|
+
## Quick start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bin/setup
|
|
9
|
+
bundle exec rspec
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## What we’re looking for
|
|
13
|
+
|
|
14
|
+
- Spec alignment improvements
|
|
15
|
+
- Missing operators
|
|
16
|
+
- Edge-case tests
|
|
17
|
+
- Performance improvements (with tests)
|
|
18
|
+
|
|
19
|
+
## Bug reports
|
|
20
|
+
|
|
21
|
+
Please include:
|
|
22
|
+
|
|
23
|
+
- The JSON Logic rule (as Ruby Hash or JSON)
|
|
24
|
+
- The data input
|
|
25
|
+
- Expected output
|
|
26
|
+
- Actual output
|
|
27
|
+
- Ruby version (`ruby -v`) and gem version
|
|
28
|
+
|
|
29
|
+
A minimal reproduction is ideal.
|
|
30
|
+
|
|
31
|
+
## Adding an operator
|
|
32
|
+
|
|
33
|
+
1. Implement the operator in `lib/shiny_json_logic/operations/`.
|
|
34
|
+
2. Add focused specs under `spec/` (and/or add cases to the compatibility suite if present).
|
|
35
|
+
3. Keep behavior predictable and aligned with JSON Logic semantics.
|
|
36
|
+
4. Avoid adding runtime dependencies.
|
|
37
|
+
|
|
38
|
+
## Code style
|
|
39
|
+
|
|
40
|
+
Keep changes small and explicit. Prefer tests that document behavior.
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
shiny_json_logic (0.1.
|
|
4
|
+
shiny_json_logic (0.1.6)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
@@ -10,6 +10,7 @@ GEM
|
|
|
10
10
|
coderay (1.1.3)
|
|
11
11
|
diff-lcs (1.5.0)
|
|
12
12
|
method_source (1.0.0)
|
|
13
|
+
ostruct (0.6.3)
|
|
13
14
|
pry (0.14.1)
|
|
14
15
|
coderay (~> 1.1)
|
|
15
16
|
method_source (~> 1.0)
|
|
@@ -34,6 +35,7 @@ PLATFORMS
|
|
|
34
35
|
DEPENDENCIES
|
|
35
36
|
bundler
|
|
36
37
|
byebug
|
|
38
|
+
ostruct
|
|
37
39
|
pry
|
|
38
40
|
rake
|
|
39
41
|
rspec (~> 3.0)
|
data/README.md
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
# ShinyJsonLogic ✨
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
[](https://github.com/luismoyano/shiny-json-logic-ruby/actions/workflows/ci.yml)
|
|
4
|
+
[](https://badge.fury.io/rb/shiny_json_logic)
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
> **A boring, correct, and production-ready JSON Logic implementation for Ruby. ✨**
|
|
5
8
|
|
|
6
9
|
**ShinyJsonLogic** is a **pure Ruby**, **zero-dependency** implementation of the JSON Logic specification.
|
|
7
10
|
|
|
@@ -178,3 +181,8 @@ https://github.com/luismoyano/shiny_json_logic
|
|
|
178
181
|
MIT License.
|
|
179
182
|
|
|
180
183
|
Use it. Fork it. Ship it. (:
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
> Shine bright like a Ruby 💎
|
|
188
|
+
|
data/SECURITY.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
Only the latest released version is supported with security fixes.
|
|
6
|
+
|
|
7
|
+
## Reporting a Vulnerability
|
|
8
|
+
|
|
9
|
+
Please report security issues privately.
|
|
10
|
+
|
|
11
|
+
- Preferred: open a private report via GitHub Security Advisories for this repository.
|
|
12
|
+
- Alternative: open a GitHub issue **without** sensitive details and ask for a private contact channel.
|
|
13
|
+
|
|
14
|
+
Do not disclose vulnerabilities publicly until they have been reviewed and addressed.
|
data/shiny_json_logic.gemspec
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shiny_json_logic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luis Moyano
|
|
@@ -80,6 +80,20 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: ostruct
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
83
97
|
description: "\n ShinyJsonLogic is a pure-Ruby, zero-runtime-dependency implementation
|
|
84
98
|
of the JSON Logic specification. Ruby 2.7+ compatible, actively maintained, test-driven,
|
|
85
99
|
and designed for strict spec alignment and predictable behavior. It currently offers
|
|
@@ -90,6 +104,7 @@ executables: []
|
|
|
90
104
|
extensions: []
|
|
91
105
|
extra_rdoc_files: []
|
|
92
106
|
files:
|
|
107
|
+
- ".github/workflows/ci.yml"
|
|
93
108
|
- ".gitignore"
|
|
94
109
|
- ".idea/.gitignore"
|
|
95
110
|
- ".idea/modules.xml"
|
|
@@ -98,11 +113,13 @@ files:
|
|
|
98
113
|
- ".rspec"
|
|
99
114
|
- ".travis.yml"
|
|
100
115
|
- CHANGELOG.md
|
|
116
|
+
- CONTRIBUTING.md
|
|
101
117
|
- Gemfile
|
|
102
118
|
- Gemfile.lock
|
|
103
119
|
- LICENSE.txt
|
|
104
120
|
- README.md
|
|
105
121
|
- Rakefile
|
|
122
|
+
- SECURITY.md
|
|
106
123
|
- bin/console
|
|
107
124
|
- bin/setup
|
|
108
125
|
- lib/core_ext/array.rb
|