shiny_json_logic 0.1.4 → 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/CHANGELOG.md +4 -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 +6 -11
- metadata +23 -11
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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.1.5] - 2026-01-25
|
|
6
|
+
### Changed
|
|
7
|
+
- Improve RubyGems gem description (no runtime changes).
|
|
8
|
+
|
|
5
9
|
## [0.1.4] - 2026-01-25
|
|
6
10
|
### Changed
|
|
7
11
|
- Improve RubyGems metadata and gem description (no runtime changes).
|
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
|
@@ -10,16 +10,10 @@ Gem::Specification.new do |spec|
|
|
|
10
10
|
spec.email = ["moyano@hey.com"]
|
|
11
11
|
|
|
12
12
|
spec.summary = "Production-ready JSON Logic for Ruby that just works: zero deps, Ruby 2.7+, high spec alignment."
|
|
13
|
-
spec.description =
|
|
14
|
-
ShinyJsonLogic is a pure-Ruby, zero-runtime-dependency implementation of the JSON Logic specification.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- Actively maintained and test-driven
|
|
18
|
-
- Designed for spec alignment and predictable behavior
|
|
19
|
-
- Highest support for JSON Logic operations within the Ruby ecosystem
|
|
20
|
-
|
|
21
|
-
JSON Logic lets you represent decisions as data, so rules can be stored, transmitted, and evaluated safely.
|
|
22
|
-
DESC
|
|
13
|
+
spec.description = %q{
|
|
14
|
+
ShinyJsonLogic is a pure-Ruby, zero-runtime-dependency implementation of the JSON Logic specification. Ruby 2.7+ compatible, actively maintained, test-driven, and designed for strict spec alignment and predictable behavior. It currently offers the highest support for JSON Logic operations in the Ruby ecosystem.
|
|
15
|
+
}
|
|
16
|
+
|
|
23
17
|
spec.homepage = "https://github.com/luismoyano/shiny-json-logic-ruby"
|
|
24
18
|
spec.license = "MIT"
|
|
25
19
|
|
|
@@ -29,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
|
29
23
|
"homepage_uri" => spec.homepage,
|
|
30
24
|
"source_code_uri" => spec.homepage,
|
|
31
25
|
"documentation_uri" => "#{spec.homepage}#readme",
|
|
32
|
-
"changelog_uri" => "#{spec.homepage}/blob/
|
|
26
|
+
"changelog_uri" => "#{spec.homepage}/blob/master/CHANGELOG.md",
|
|
33
27
|
"rubygems_mfa_required" => "true"
|
|
34
28
|
}
|
|
35
29
|
|
|
@@ -48,4 +42,5 @@ Gem::Specification.new do |spec|
|
|
|
48
42
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
49
43
|
spec.add_development_dependency 'byebug'
|
|
50
44
|
spec.add_development_dependency 'pry'
|
|
45
|
+
spec.add_development_dependency 'ostruct'
|
|
51
46
|
end
|
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,21 +80,31 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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'
|
|
97
|
+
description: "\n ShinyJsonLogic is a pure-Ruby, zero-runtime-dependency implementation
|
|
98
|
+
of the JSON Logic specification. Ruby 2.7+ compatible, actively maintained, test-driven,
|
|
99
|
+
and designed for strict spec alignment and predictable behavior. It currently offers
|
|
100
|
+
the highest support for JSON Logic operations in the Ruby ecosystem.\n "
|
|
92
101
|
email:
|
|
93
102
|
- moyano@hey.com
|
|
94
103
|
executables: []
|
|
95
104
|
extensions: []
|
|
96
105
|
extra_rdoc_files: []
|
|
97
106
|
files:
|
|
107
|
+
- ".github/workflows/ci.yml"
|
|
98
108
|
- ".gitignore"
|
|
99
109
|
- ".idea/.gitignore"
|
|
100
110
|
- ".idea/modules.xml"
|
|
@@ -103,11 +113,13 @@ files:
|
|
|
103
113
|
- ".rspec"
|
|
104
114
|
- ".travis.yml"
|
|
105
115
|
- CHANGELOG.md
|
|
116
|
+
- CONTRIBUTING.md
|
|
106
117
|
- Gemfile
|
|
107
118
|
- Gemfile.lock
|
|
108
119
|
- LICENSE.txt
|
|
109
120
|
- README.md
|
|
110
121
|
- Rakefile
|
|
122
|
+
- SECURITY.md
|
|
111
123
|
- bin/console
|
|
112
124
|
- bin/setup
|
|
113
125
|
- lib/core_ext/array.rb
|
|
@@ -162,7 +174,7 @@ metadata:
|
|
|
162
174
|
homepage_uri: https://github.com/luismoyano/shiny-json-logic-ruby
|
|
163
175
|
source_code_uri: https://github.com/luismoyano/shiny-json-logic-ruby
|
|
164
176
|
documentation_uri: https://github.com/luismoyano/shiny-json-logic-ruby#readme
|
|
165
|
-
changelog_uri: https://github.com/luismoyano/shiny-json-logic-ruby/blob/
|
|
177
|
+
changelog_uri: https://github.com/luismoyano/shiny-json-logic-ruby/blob/master/CHANGELOG.md
|
|
166
178
|
rubygems_mfa_required: 'true'
|
|
167
179
|
post_install_message:
|
|
168
180
|
rdoc_options: []
|